Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Table of Contents
outlinetrue

Dokumenthistorik


Version

Dato

Ansvarlig

Beskrivelse

16.7.2018KSROpdateret på baggrund af Fuldmagtsprojektet
26.7.2018KSROpdateret med information om JWT support



Introduktion

Dette dokument indeholder en vejledning til driften af SOSI-STS

...

Følgende er en oversigt over STS snitflader og kravene til adgang til disse.


Begreber

BegrebForklaring
AnvendersystemDet IT-system som anvender en STS snitflade
BrugerDen bruger som via et klient IT-system anvender STS
TrustHvem stoler vi på som signerende part på en indgående billet.
ModtagerHvilke systemer kan anvende den billet der udstedes af STS.


Disse begreber benyttes i snitfladerne nedenfor.


SnitfladeAnvendersystemBrugerTrustModtager

/sts/services/SecurityTokenService

/sts/services/NewSecurityTokenService

Alle som har netværksmæssig adgangSystem eller medarbejderIndgående id-kort skal være signeret af "brugeren selv".Alle DGWS-services
/sts/services/OIOSaml2Sosi

Alle som har netværksmæssig adgang.

Hele SOAP besked skal være signeret med et vilkårligt OCES2-certifikat.

Alle medarbejdere

OIOSaml assertion skal være signeret af trusted part (i test-new-nemLogin-idp.keystore).

I praksis NemLog-In

Alle DGWS-services
/sts/services/Sosi2OIOSamlAlle som har netværksmæssig adgangAlle medarbejdereId-kort skal være signeret af STS (udstedt af /NewSecurityTokenService)

Modtager-system skal være konfigureret (i tabellen iboConfig).

/sts/services/Bst2Idws

Offentlig nøgle for anvender-system skal være WL (i tabellen audienceConfiguration).

Dele af SOAP besked skal være signeret med denne nøgle.

Alle borgere

Bootstrap token skal være signeret af trusted part (i test-new-nemLogin-idp.keystore).

I praksis NemLog-In

Modtager-system skal være konfigureret (i tabellen audienceConfiguration).
/sts/services/JWTIdws

Offentlig nøgle for anvender-system skal være WL (i tabellen audienceConfiguration).

Dele af SOAP besked skal være signeret med denne nøgle.

Alle borgere

JWT skal være signeret af trusted part (i test-jwt-idp-trust.jks). kid skal pege på det rigtige alias i denne.

Issuer skal være konfigureret i services.xml

Modtager-system skal være konfigureret (i tabellen audienceConfiguration).

JWT suport skal være aktiveret (i tabellen audienceConfiguration)


Java keystores.

Der benyttes et antal java keystores i løsningen. Disse er typisk placerede i folderen /pack/sts Disse beskrives nedenfor.

NavnKort beskrivelseKommentarer
teststs-1.keystoreSTS keystoreFil baseret keystore der indeholder STS eget certifikat. Benyttes kun i test-miljøer uden LUNA integration
testtdc.keystoreTruststore for Digst services.Truststore i forhold til PID/CVR-RID services. Benyttes i NSP-miljøer ikke fra wildfly, men er opsat i Traffic-manager i stedet. I lokale testmiljøer benyttes den i stedet fra wildfly
nsp-test-rid.jksKeystore i forhold til backend services.Benyttes til at identificere os (STS) i forhold til backend services som PID, CVR-RID og fuldmagt. Benyttes dels fra Traffic-manager (PID, CVR-RID), dels fra NSP (er opsat via global system-property af hensyn til fuldmagt).
test-new-nemLogin-idp.keystoreTruststore til NBO og borger billetomvekslingIndeholder de idp'er (primært nemlogin) vi stoler på som udstedere af de billetter vi omveksler.
test-jwt-idp-trust.jksTruststore til JWT billetomvekslingIndeholder de idp'er (primært nemlogin) vi stoler på som udstedere af de billetter vi omveksler. STS-2.5.3


Konfiguration medarbejder services

...

Omveksling fra ID-kort til OIOSaml assertions kræver konfiguration gemt i databasen i tabellen sts_audconf.iboConfig; disse er:

FeltBeskrivelsePåkrævet
audienceidentifikation af modtagersystemet som en URI, der skal være på normalform jvf. tidligere afsnitJa
publicKeyden offentlige nøgle som anvendes til kryptering af den omvekslede token. Bemærk at indholdet er tilgivende overfor line-breaks og whitespaces, så der kan formateres valgfrit.Ja
recipientURLden URL hvor modtagersystemet kan nåes på.Ja
includeBSTom ID-kort/bootstrap token skal inkluderes i den svarede assertion. (ja/nej)Ja
deliveryNotOnOrAfterOffsetoffset i tid fra omvekslingstidspunkt, der bruges til opsætning af gyldighed af udstede assertion.Ja
notBeforeOffsetoffset i tid fra omvekslingstidspunkt, der bruges til opsætning af gyldighed af udstede assertion.Ja
notOnOrAfterOffsetoffset i tid fra omvekslingstidspunkt, der bruges til opsætning af gyldighed af udstede assertion.Ja
idCardMaxAgeMinsmaksimal alder på id-kortetNej (default er 1440 min)

Konfiguration i database er altid den gældende — det er ikke nødvendigt at genstarte før ændringer træder i kraft.

...

Følgende felter er relevante

FeltBeskrivelse
sourceKan benyttes til at identificere hvor de konkrete roller ligger. Pt. er eneste benyttede værdi 'NationalFederation'
externalNameDet navn hvorunder rollen optræder i den eksterne kilde, f.eks. 'nspLaegesekretaer'
codeDen kode der indgår i id-kortet, f.eks. 40001
valueDen tekst-værdi der indgår i id-kortet, f.eks. Laegesekretaer


Konfiguration i database er altid den gældende — det er ikke nødvendigt at genstarte før ændringer træder i kraft - der kan dog være op til 10 minutters forsinkelse.

Eksempel-SQL:

Code Block
languagesql
use sts_audconf;
insert into roleDefinitions (source, externalName, code, value) values ('NationalFederation', 'nspPlejeAssR3', '41003', 'PlejeAssR3');

Dynamisk konfiguration. Opsætning af trust af nationale roller.

Nationale roller som beskrevet ovenfor valideres som udgangspunkt mod de roller der fremfindes i SEB. Det er dog muligt at tillade enkelte udvalgte cvr-numre (f.eks. regioner) at angive roller i id-kortet uden at få disse valideret via SEB. Dette styres via tabellen sts_audconf.trustedCvr.

FeltBeskrivelse
cvrEt cvr nummer der tillades adgang uden validering af nationale roller.
endpointDet endpoint hvortil funktionaliteten kan benyttes. Mulige værdier er 'STS' (svarende til SecurityTokenService) og 'NBO' (svarende til OIOSaml2Sosi)

Af sikkerhedsmæssige årsager anbefales funktionaliteten pt kun benyttes for 'STS'.

...

Konfigurationen består af et antal indgange på "map-format", audience, attribute, attribute_value. For et givet audience (f.eks. https://fmk) kan der være følgende indgange

atributeNameBeskrivelse
lifetimeAngiver gyldighed af det udstedte token, f.eks. 3600 (s). Tilstedeværelsen af denne "aktiverer" det givne audience
certificate.xxxAngiver ssn for et certifikat der har mulighed for at benytte servicen. Dette certifikat benyttes af anvender til at signere hele beskeden (beskeden har så bl.a. en Assertion, typisk signeret af NemLog-in). Der kan (og vil) være flere certifikater pr. audience, hvilket blot betyder at flere anvendere kan tilgå det. Disse skal blot have forskellige xxx navne.  Suffikset er ligegyldigt og tjener alene til støtte for den som kigger på konfigurationen.
jwtScopeAktiverer JWT (Json web token) support for dette audience. Omveksling kan kun foretages hvis det indgående JWT indeholder det pågældende jwtScope.

Konfiguration i database er altid den gældende — det er ikke nødvendigt at genstarte før ændringer træder i kraft.

...

Følgende tabel viser STS’ens sla logpunkter samt tilhørende navn. De enkelte logpunkter beskrives i detaljer i det følgende.

IDNavnBeskrivelse
200
AbstractStsRequestHandler.request
Alle forespørgelser, der modtages rammer dette logpunkt.
210
SecurityTokenService.issueIdCard
Når et IDKort signeres, vil dette logpunkt blive ramt.
220
WsOcesCvrRidService.findRelatedCpr
Ved opslag til CVR-RID tjenesten vil dette logpunkt blive ramt.
221
WsOcesPidService.isRelated
Ved opslag til PID tjenesten vil dette logpunkt blive ramt.
222
ProcurationWebService.getProcurationPrivileges
Ved opslag til Fuldmagt tjenesten vil dette logpunkt blive ramt.
250
NboRequestHandler.serialize
Ved omveksling mellem  OIOSaml tokens (NemLogin tokens) til SOSI
idkort vil dette log punkt blive brugt.
260
SignatureProvider.sign
Dette logpunkt kaldes når STS signerer enten et id-kort eller en IDWS billet.
270
NboIdwsRequestHandler.convert
Dette logpunkt ved omveksling af andet token til et borger-IDWS-token