Introduktion

Formålet med dette dokument er at beskrive SOSI STS-implementationen. Det forudsættes at læseren har forudgående kendskabtil STS’ens rolle - specifikt i relation til ”Den Gode Web Service” [R3] og de standarder den baserer sig på. Detaljeringsgraden henvender sig til læseren, der har behov for en overordnet introduktion til implementationen, herunder systemkontekst (afsnit 2), opdeling i komponenter (afsnit 3) og datamodellen (afsnit 4). Desuden berøres deployment afhængigheder (afsnit 5).

Arkitekturoverblik

Figur 1: STS-afhængigheder og eksterne snitflader

Eksterne snitflader

STS’ens primære funktion er udstedelse af SOSI ID-kort, som beskrevet i ”Den GodeWeb Service” (se afsnittet ”STS-Kommunikation” i [R3]). Til serialisering/deserialisering og signering af web service kald anvendes STS SOSI Seal biblioteket, som skitseret i ”The SOSI Library Programmers Guide” (se ”Use case 3: How to issue an ID-card ” i [R1]). Desuden tilbyder STS’en web services
til veksling til og fra SOSI ID-kort.

Sekundært udstiller STS’en administrativ funktionalitet, det vil sige operationel status, ACL konfiguration, log adgang og cache kontrol, gennem et simpelt webbaseret interface.

SecurityTokenService

Service til udstedelse af SOSI ID-kort. Anvendelsen af STS er beskrevet i ”Den GodeWeb Service” (se afsnittet ”STS-Kommunikation” i [R3]). SOSI Seal biblioteket benyttes af STS til serialisering/deserialisering af web service kaldet samt signering af udstedte ID-kort. For nærmere information om anvendelsen af denne service se "Use case 1: How to authenticate an ID-card"i ”The SOSI Library Programmers Guide” ([R1]).

OIOSaml2Sosi

Service til veksling af OIOSAML-assertion (NemLogin token) til SOSI ID-kort. For nærmere information om anvendelsen af denne service se "Use case 9: Exchange an OIOSAML assertion to an IDCard at a STS"i ”The SOSI Library Programmers Guide” ([R1]).

Sosi2OIOSaml

Service til veksling af SOSI ID-kort til OIOSAML assertion (NemLogin token). For nærmere information om anvendelsen af denne service se "Use case 11: Exchange an IDCard to an encrypted OIOSAML assertion at a STS"i ”The SOSI Library Programmers Guide” ([R1]).

Bst2Idws

Service til veksling af et OIOSAML bootstraptoken (NemLogin token) udstedt på baggrund af et borgercertifikat til et identitytoken rettet mod anvendelse hos en given tredjepart (audience). Forespørgslen indeholder et "Claim"vedrørende borgerens cpr-nummer, som valideres med anvendelse af pid-cpr service hos Nets

Saml2Idws

Service til veksling af et krypteret OIOSAML token (NemLogin token) udstedt på baggrund af et borgercertifikat til et identitytoken rettet mod anvendelse hos en given tredjepart (audience). Forespørgslen indeholder et "Claim"vedrørende borgerens cpr-nummer, som valideres op mod cpr nummer angivet i OIOSaml token.

Afhængigheder

STS’en afhænger af en række eksterne komponenter i forbindelse med udstedelse af ID-kort:

Logisk arkitektur

STS består af en række komponenter (eller services), som konfigureres via Spring. For nærmere detaljer omkring konfigurationen henvises til installationsvejlednignen (se [R2]). Komponenterne indkapsler følgende funktionalitet:

En væsentlig komponent for STS er SOSI Seal-biblioteket, der indtager en central rolle i forbindelse med udstedelse af ID-kortet (se også Figur 3). Seal anvendes som et tredjeparts bibliotek af STS.

Figur 2: Komponenter anvendt af STS

Komponentinteraktion

Komponenterne anvendes af STS ved udstedelsen af ID-kort. Sekvensdiagrammet i Figur 3 viser et typisk forløb med anvendelse af komponenterne, som STS gennemløber i forbindelse med udstedelse af MOCES signeret ID-kort, hvor resultatet er en succesfuld udstedelse af et STS signeret ID-kort.

Figur 3: STS-udstedelse af MOCES signeret ID-kort

Andre scenarier gennemløber en delmængde af de komponentinteraktioner der er illustreret i figuren. Således består udstedelsen
af skridtene:

  1. Deserialisering web service request og verifikation af signatur
  2. Check af ID-kort, f.eks. version og autentifikationsniveau
  3. Spærrelistecheck af signerende og STS-certifikat
  4. ACL-verifikation blacklisting af certifikater)
  5. Check af certifikat til CPR-tilknytning
  6. Check af autorisation knyttet til CPR
  7. Signering af ID-kort med STS-certifikat
  8. Serialisering af web service response

Skridt 5 og 6 foretages kun, såfremt ID-kortet er signeret med et MOCES-certifikat. Alle verifikationsskridtene kan afbryde forløbet, hvilket resulterer i, at et fejlsvar med passende information returneres til kalderen.

Komponentsnitflader


Figur 4: Komponent-interfaces i STS

OcesCrlService

Check af OCES-spærrelistecheck:

Sker op mod en lokal kopi af revokationslister, vedligeholdt af NSP-platformen.

OcesCvrRidService

Validering eller oslag af CPR-nummer ud fra et MOCES certifikats ”subject serial number” (SSN), hvor den relevante service
afgøres udfra certifikatets issuer, f.eks. OCES1 vs OCES2:

OcesPidService

Validering af CPR-nummer ud fra et POCES-certifikats ”subject serial number” (SSN):

AclService

Gennem denne komponent afgøres på baggrund af certifikat information og system navn om ID-kort kan udstedes. Udstiller
følgende operationer:

Whitelisting anvendes ikke længere, mens det stadig er muligt at blackliste enkelte certifikater.

AuthorizationService

Verificerer og beriger ID-kort med autorisation ID udfra CPR-nummer:

Sker op mod en lokal kopi af autorisationsregisteret, vedligeholdt af NSP-platformen.

Datamodel

STS-anvendelse af database begrænser sig primært til læsning af konfigurationsdata og persistering af cachede værdier til (se Figur 5), og består af følgende tabeller: