Her beskrives baggrundsviden for kodeeksemplet, og hvad der kræves for at få det til at virke.
Testen i kodeeksemplet kalder SF1520, og printer svaret som JSON.
I mappen Certificates
findes certifikater til integration med Serviceplatform.
Mappen Client
indeholder certifikatet til klienten der bruges i dette eksempel. Den består derfor af både public (kit-test.cer
) og private (kit-test.pem
) key.
Dette certifikat er brugt til at lave en serviceaftale med testkommunen Korsbæk, om at SF1520 må kaldes. Hvordan dette er gjort, beskrives nedenfor.
kit-test.pem
er af sikkerhedsmæssige grunde tom, og fremsendes separat.
Mappen Service
indeholder certifikatet som bruges af services på Serviceplatformen, herunder SF1520. Hentet fra Digitaliseringskataloget hjemmeside.
Mappen STS
indeholder certifikatet for Serviceplatformens STS, inklusiv en udgave tilføjet OCES rod- og udstedende certifikat (så 3 certifikater i alt). For at indikere denne tilføjelse, er "with_chain" tilføjet til filnavnet, som ellers beholder filnavnet som hentet fra Digitaliseringskataloget hjemmeside. Denne tilføjelse gør, at man blot kan tilføje denne ene fil til sit trust store, for at stole på STS'en.
For at kunne kalde SF1520, skal der oprettes en serviceaftale i KOMBITs Serviceplatform, som beskrevet i dokumentationen der kan findes på Serviceplatformens hjemmeside. I dette eksempel benyttes en serviceaftale der er lavet med den fiktive testkommune "Korsbæk", så der kan kaldes med certifikatet kit-test.cer/pem.
Et eksempel der viser hvordan dette er lavet, kan findes her.
Klienten er genereret på forhånd, og ligger under Connected Services
. Her vises hvordan det er gjort.
Installer nyeste dotnet-svcutil (seneste stabile version 2.1.0 virker ikke):
dotnet new tool-manifest # Hvis ny solution uden manifest
dotnet tool install --local dotnet-svcutil --version 8.0.0-preview1.24619.5
og generér klienten ud fra WSDL for SF1520 (kør fra dette repos rod):
dotnet dotnet-svcutil WsdlForIntegrations/PersonBaseDataExtendedService/wsdl/token/PersonBaseDataExtendedService.wsdl -o PersonBaseDataExtendedService --outputDir "Connected Services/PersonBaseDataExtendedService" --reference kombit-sf1520-example.csproj
Se dotnet-svcutil -h
for dokumentation af de forskellige argumenter.
Se dokumentation af .NET tools for yderligere detaljer.
Certifikatet "Certificates/STS/ADG_EXTTEST_Adgangsstyring_1_with_chain.cer"
skal installeres i trust store på det system der afvikler kaldet. Skal kaldet f.eks. afvikles i en Docker container, skal certifikatet mountes ind i containerens trust store.
ADG_EXTTEST_Adgangsstyring_1_with_chain.cer
indeholder samme certifikat som ADG_EXTTEST_Adgangsstyring_1.cer
, blot med rod- og intermediate-certifikat tilføjet.
Udover CPR-nummeret benyttet i eksemplet, findes der en liste af CPR numre for Korsbæk-borgere på ovenstående link, som det er ok at teste med. Af en eller anden grund fremgår det fulde CPR nummer ikke af listen, men man kan f.eks. benytte følgende:
- Kirsten Hansentest (0909065000): Et barn i Korsbæk
- Frederik Arne Hansentest (1008810000): Det er Kirstens far