Page History
...
I følgende dokumentation anvendes en række begreber. Den følgende liste er en liste af disse samt forklaring.
| Begreb | Forklaring |
|---|---|
| Anvendersystem | Det IT-system som anvender en STS snitflade |
| Bruger | Den bruger som via et klient IT-system anvender STS |
| Trust | Hvem stoler vi på som signerende part på en indgående billet. |
| Modtager | Hvilke systemer kan anvende den billet der udstedes af STS. |
Oversigt over snitflader og adgang
...
| Snitflade | Anvendersystem | Bruger | Trust | Modtager | ||
|---|---|---|---|---|---|---|
| DGWS | ||||||
/sts/services/SecurityTokenService /sts/services/NewSecurityTokenService | Alle som har netværksmæssig adgang | System eller medarbejderIndgående id-kort skal være signeret af "brugeren selv". | Alle DGWS-services | |||
| Medarbejderomveksling | ||||||
| /sts/services/Sosi2OIOSaml | Alle som har netværksmæssig adgang | Alle medarbejdereId-kort skal være signeret af STS (udstedt af /NewSecurityTokenService) | Modtager-system skal være konfigureret (i tabellen iboConfig). | |||
| /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/BST2SOSI | Alle som har netværksmæssig adgang | Alle medarbejdere | Bootstrap token skal være signeret af trusted part (konfigureret i database tabellen sts_audconf.trustedIdpConfiguration). Lokal IdP, SEB eller NemLog-in | Alle DGWS-services | Alle DGWS-services | |
| Borgeromveksling | ||||||
| /sts | Borgeromveksling | /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 (konfigureret i database tabellen sts_audconf.trustedIdpCitizenConfiguration). I praksis NemLog-In eller SEB | 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 Modtager-system 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). konfigureret (i tabellen audienceConfiguration). JWT suport skal være aktiveret JWT suport skal være aktiveret (i tabellen audienceConfiguration) | |||
| /sts/services/JWT2OIOSaml | 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 | Modtager-system skal være konfigureret (i tabellen audienceConfiguration). JWT suport skal være aktiveret (i tabellen audienceConfiguration) | |||
Selve konfiguration i forhold til de enkelte snitflader er beskrevet nedenfor.
...
DGWS snitfladerne dækker de to omvekslingsservices i tabellen nedenfor. I forhold til opsætning og konfiguration er de to snitflader ens, hvorfor de behandles samlet i det følgende.
| Snitflade | Trust og konfiguration |
|---|---|
| DGWS | |
/sts/services/SecurityTokenService /sts/services/NewSecurityTokenService |
|
Trustmodellen for DGWS er baseret på, at anvenderen signerer det indgådende Idkort idkort ved anvendelse af et certifikat udstedt af CA rodcertifikat i den fællesoffentlige føderation. Disse rodcertifikater vedligeholdes som en del af SEAL.JAVA biblioteket og skal derfor ikke konfigureres særskilt i STS.
Derudover indeholder STS databasen tabellen sts_audconf.trustedCvr, som indeholder de CVR numre, der er whitelistet i STS:
| Felt | Beskrivelse | Påkrævet |
|---|---|---|
| cvr | CVR nummre for af anvender. | Ja |
| endpoint | Den service, der whitelistes. | Ja |
Opsætning af nyt anvendersystem
...
| Code Block | ||||
|---|---|---|---|---|
| ||||
USE sts_audconf;
insert into trustedCvr (cvr, endpoint) values ('46837428', 'STS'); |
...
Trustmodellen og opsætningen for de enkelte snitflader er opsummeret i nedenstående tabel og uddybet i de underliggende afsnit:
| Snitflade | Trust og opsætning |
|---|---|
| Medarbejderomveksling | |
| /sts/services/Sosi2OIOSaml |
|
| |
| /sts/services/OIOSaml2Sosi |
|
| |
| /sts/services/BST2SOSI |
|
|
Opsætning af Sosi2OIOSaml
Den generelle konfiguration for denne service ligger i services.xml på bean iboRequestHandler og består af følgende:
| Property | Beskrivelse |
|---|---|
| validateEnvelopeSignature | Om envelope signaturen på requests skal valideres |
| checkTargetCertificate | Om gyldigheden af certifikat svarende til publicKey (i nedenstående tabel) skal tjekkes før den benyttes |
| emptyAttributeValue | Værdi, der skal bruges til at erstatte tomme attributter på den genererede OIO Saml Assertion |
...
| Felt | Beskrivelse | Påkrævet |
|---|---|---|
| audience | identifikation Identifikation af modtagersystemet som en URI, der skal være på normalform. | Ja |
| publicKey | den Den offentlige nøgle som anvendes til kryptering af den omvekslede token. Bemærk at indholdet er tilgivende overfor tilgivende overfor line-breaks og whitespaces, så der kan formateres valgfrit. | Ja |
| recipientURL | den Den URL hvor modtagersystemet kan nåes på. | Ja |
| includeBST | om ID-kortOm idkort/bootstrap token skal inkluderes i den svarede assertion. (ja/nej) | Ja |
| deliveryNotOnOrAfterOffset | offset Offset i tid fra omvekslingstidspunkt, der bruges til opsætning af gyldighed af udstede assertion. | Ja |
| notBeforeOffset | offset Offset i tid fra omvekslingstidspunkt, der bruges til opsætning af gyldighed af udstede assertion. | Ja |
| notOnOrAfterOffset | offset Offset i tid fra omvekslingstidspunkt, der bruges til opsætning af gyldighed af udstede assertion. | Ja |
| idCardMaxAgeMins | maksimal Maksimal alder på id-kortet | Nej (default er 1440 min) |
Tilføjelse af nyt audience
Tilføjelse af ny anvender
Ovenstående tabel skal kun opdateres hvis servicen skal benyttes for et audience, der ikke allerede er konfigureret. I så fald, tilføjes en ny række i tabellen for det nye audience.
...
Der kan tilføjes nye audience ved indsættelse af en ny række i tabellen iboConfig.
| Code Block | ||||
|---|---|---|---|---|
| ||||
USE sts_audconf;
INSERT INTO `iboConfig`
(audience,
publicKey,
recipientURL,
includeBST,
deliveryNotOnOrAfterOffset,
notBeforeOffset,
notOnOrAfterOffset,
idCardMaxAgeMins)
VALUES
('/ststest3', 'MIIGiDCCBLygAwIBAgIUGesSd7YL6KygrTfmyrVc1/w+wJYwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMGsxLTArBgNVBAMMJERlbiBEYW5za2UgU3RhdCBPQ0VTIHVkc3RlZGVuZGUtQ0EgMTETMBEGA1UECwwKVGVzdCAtIGN0aTEYMBYGA1UECgwPRGVuIERhbnNrZSBTdGF0MQswCQYDVQQGEwJESzAeFw0yMTA0MjgxMTM4NTZaFw0yNDA0MjcxMTM4NTVaMIGeMRUwEwYDVQQDDAxWT0NFU19neWxkaWcxNzA1BgNVBAUTLlVJOkRLLU86RzpjNzBiMDIwNy0xNjJlLTRkM2QtYTdmMS1hMTlhOGUwN2Q5OWIxJjAkBgNVBAoMHVRlc3RvcmdhbmlzYXRpb24gbnIuIDk0MzU0OTY5MRcwFQYDVQRhDA5OVFJESy05NDM1NDk2OTELMAkGA1UEBhMCREswggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDMMqgvofQWw4oSUQgGydEZ/hljSZJGdbcaCJHhOawOeVF7I+ISedVayJfGptLk1iW5d92OWbINZzMW6sK6J+kcZeW+xzdwkSV42AJu7kfYw0tgkPwX+5pZbAAEYxgNbUfSEBeBTGWMn5RDIsKkryElrJ5pgmKVxvRURnG3MAieYxges8sYZyKIT3IFsAvn+cymIQ9ObvcpjOib7FMyjoxanwoDm5oRC+AxaC4nRls5gbljrDtu5CuqkOTWajnyFyvMGbDJYagT6IwLRAGFRuGGFdzK9JOZi8X5Zk8e98Fg2O2/DzvIv15bmocpCsSu8gp2fjryYBjdK2eEO2E7uyohd2xBMFwaTop18PVQz1wXA9i3o3VGbcga2+/aIjjgBNnstDzujthgDHu+ib/WlwVAkYU5jVrQQJF3GsVxEQ0oWcNYMQvkF+K7U4YJiiWzXHr2wzC/36xQmZR6i3U626f86J0jHZGm6K4Xo6+5jXBblIhy/XYFhDXqHUooJSxmRxUCAwEAAaOCAYYwggGCMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUfyif2XGZQuJ159c1di5NCCVtdl4wewYIKwYBBQUHAQEEbzBtMEMGCCsGAQUFBzAChjdodHRwOi8vY2ExLmN0aS1nb3YuZGsvb2Nlcy9pc3N1aW5nLzEvY2FjZXJ0L2lzc3VpbmcuY2VyMCYGCCsGAQUFBzABhhpodHRwOi8vY2ExLmN0aS1nb3YuZGsvb2NzcDAhBgNVHSAEGjAYMAgGBgQAj3oBATAMBgoqgVCBKQEBAQMHMDsGCCsGAQUFBwEDBC8wLTArBggrBgEFBQcLAjAfBgcEAIvsSQECMBSGEmh0dHBzOi8vdWlkLmdvdi5kazBFBgNVHR8EPjA8MDqgOKA2hjRodHRwOi8vY2ExLmN0aS1nb3YuZGsvb2Nlcy9pc3N1aW5nLzEvY3JsL2lzc3VpbmcuY3JsMB0GA1UdDgQWBBTMXLy9NQtbqHed6JtCTmjx4/aUZTAOBgNVHQ8BAf8EBAMCBeAwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgA4IBgQA9MCrGkd1WfucACqjxSCnpoBqYRHTXrKYjSIarHnjaUMEXMZOixgIi6rk9jdiAX2L+6aY/lee++LejbfR2Immry+w50EpgIGI7jsJ/7ggSN5ySpu6lZpZcZ4KfB2Lx1CYH8AVWgQXDtOrvIGKQxSWY0qwey4M5weBhUGPDrEpu/7k3mMqIIZF1x5CtlrWJZ+bVm9Ohh+f8Yf7scWb14iciA0H85PRAXOvWoN13od2a35mqZqBMaW+4ExvmXailbEmuS1Smr1mcKNVP4ABeW/Oh621VEwChB/OnRpsp5+TjDxenoFQ9vPJm/M/zAke1G3U7Yje0qyi7ke8JxTtMqH0hP8O43WGlloL1NfvXXzigZTGrmVxcPB7HSHPzTINXfF/sqXmBfaHuUuIJqScwDNqwKoJQQLKeE8hhLFYmRdZ+HvgeIzv6aAbfp0h5vpwwpfNjhENuYGSjkI8nzoFmcmQgjXFt1o2xqlVSCU4rZLtqpMKDCnWFPFvblhmkHx7vcVE=',
'/ststest/login',
true,
0,
0,
3600000,
null); |
Tilføjelse af ny anvender
Ovenstående tabel skal kun opdateres hvis servicen skal benyttes for et audience, der ikke allerede er konfigureret. I så fald, tilføjes en ny række i tabellen for det nye audience.
OIOSaml2Sosi
Den generelle konfiguration for denne service ligger i services.xml på bean nboConfiguration:
| Property | Beskrivelse |
|---|---|
| fuzzyTime | Antal millisekunder tilbage i tid createdDate skal sættes på resulterende idkort |
| idCardDuration | Antal millisekunder det resulterende idkort er gyldigt |
| allowedDriftInSeconds | Antal sekunder tidsbegrænsninger i indgående token må afvige med. (NotBefore, NotOnOrAfter attributterne) |
| trustedVault | Keystore med trusted eksterne idp'er |
| cprTrustCertificates | SubjectSerialNumber på eksterne idp'er hvor medsendte cpr-nummer ikke skal valideres |
Trust til eksterne idp'er er sat op i test-new-nemLogin-idp.keystore (trustedVault i konfigurationen). Se afsnittet om Java keystores.
Tilføjelse af ny trusted IdP
Hvis der skal tilføjes trust til en ny idp, skal det opdateres i test-new-nemLogin-idp.keystore, som beskrevet i afsnittet om Java keystores.
Evt. kan property cprTrustCertificates opdateres.
Tilføjelse af ny anvender
BST2SOSI
Den generelle konfiguration for denne service ligger i services.xml på bean nboConfigurationBST2SOSIRequestHandler:
| Property | Beskrivelse |
|---|---|
| allowedDriftInSeconds | Antal sekunder tidsbegrænsninger i indgående token må afvige med. (NotBefore, NotOnOrAfter attributterne) |
| allowedAudience | Gyldigt audience i indgående bootstraptoken |
| fuzzyTime | Antal millisekunder tilbage i tid createdDate skal sættes på resulterende idkort |
| idCardDuration | Antal millisekunder det resulterende idkort | er gyldigt
| allowedDriftInSeconds | Antal sekunder tidsbegrænsninger i indgående token må afvige med. (NotBefore, NotOnOrAfter attributterne) |
| trustedVault | Keystore med trusted eksterne idp'er |
| cprTrustCertificates | SubjectSerialNumber på eksterne idp'er hvor medsendte cpr-nummer ikke skal valideres |
Trust til eksterne idp'er er sat op i test-new-nemLogin-idp.keystore (trustedVault i konfigurationen). Se afsnittet om Java keystores.
Tilføjelse af ny anvender
Hvis der skal tilføjes trust til en ny idp, skal det opdateres i test-new-nemLogin-idp.keystore, som beskrevet i afsnittet om Java keystores.
Evt. kan property cprTrustCertificates opdateres.
BST2SOSI
Den generelle konfiguration for denne service ligger i services.xml på bean BST2SOSIRequestHandler:
...
Omvekslingen kræver også konfiguration for hver issuer i databasen i tabellen sts_audconf.trustedIdpConfiguration:
...
Gyldige attributter i tabellen er:
...
Eventuel anvendt krypteringsnøgle til token (en issuer kan have flere krypteringsnøgler med forskellige xxx navne). Suffikset er ligegyldigt og tjener alene til støtte for den som kigger på konfigurationen.
...
Angiver SubjectSerialNumber (ssn) for et certifikat der har mulighed for at benytte servicen. Dette certifikat benyttes af anvender til at signere hele beskeden. Sættes issuer til "*" vil certifikatet være gyldigt for alle issuers.
Der kan være flere certifikater pr. issuer, 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.
Bemærk: Benyttes kun hvis whitelist-checks er slået til (property whitelistValidation)
...
| er gyldigt | |
| whitelistValidation | Om whitelist-checks af anvender certifikater skal være slået til eller fra |
Omvekslingen kræver også konfiguration for hver issuer i databasen i tabellen sts_audconf.trustedIdpConfiguration:
| Felt | Beskrivelse |
|---|---|
| issuer | Identifikation på udstederen af bootstraptokens |
| attribute | Attribut navn |
| attribute_value | Attribut værdi |
| comment | Valgfri kommentar - specielt brugbart til whitelist indgange uden identifikation af organisationen |
Gyldige attributter i tabellen er:
| atribute | Beskrivelse |
|---|---|
| encryptionKey.xxx | Eventuel anvendt krypteringsnøgle til token (en issuer kan have flere krypteringsnøgler med forskellige xxx navne). Suffikset er ligegyldigt og tjener alene til støtte for den som kigger på konfigurationen. |
| tokenProfile | Anvendt tokenprofil. OIOH3BST (lokal IdP udstedt), OIOH2BST (SEB udstedt) eller OIO3BST (NemLog-in3 STS udstedt). |
| validateHOK | Angivelse af om holder-of-key (HoK) validering af requests skal udføres (true, false) |
| certificate.xxx | Angiver SubjectSerialNumber (ssn) for et certifikat der har mulighed for at benytte servicen. Dette certifikat benyttes af anvender til at signere hele beskeden. Sættes issuer til "*" vil certifikatet være gyldigt for alle issuers. Der kan være flere certifikater pr. issuer, 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. Bemærk: Benyttes kun hvis whitelist-checks er slået til (property whitelistValidation) |
| signingKey.xxx | Nøgle til trusted certifikat til signering af BST tokenet (en issuer kan have flere trusted certifikater med forskellige xxx navne). |
Tilføjelse af ny anvender
Er der tale om en ny issuer, skal der tilføjes rækker til ovenfor nævnte tabel for hver attribut.
Er issuer allerede i tabellen, skal der oprettes:
- Evt. en ny encryptionKey.xxx attribut med krypteringsnøglen (hvis den ikke allerede er til stede).
- En ny certificate.xxx attribut med ssn for anvendercertifikatet
- En ny signingKey.xxx attribut med nøglen til certifikatet der bruges til signering af bootstraptokenet (hvis det ikke allerede er til stede).
Nationale roller
Ved udstedelse af id-kort, enten på baggrund af selv-signeret id-kort eller ved omveksling af NemLog-in token, er det muligt at anvende nationale roller. De gyldige roller opsættes i tabellen sts_audconf.roleDefinitions.
Nationale roller vil optræde i id-kortet som en rolle på formen urn:dk:healthcare:national-federation-role:code:40001:value:Laegesekretaer
Følgende felter er relevante
| Felt | Beskrivelse |
|---|---|
| source | Kan benyttes til at identificere hvor de konkrete roller ligger. Pt. er eneste benyttede værdi 'NationalFederation' |
| externalName | Det navn hvorunder rollen optræder i den eksterne kilde, f.eks. 'nspLaegesekretaer' |
| code | Den kode der indgår i id-kortet, f.eks. 40001 |
| value | Den 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 | ||
|---|---|---|
| ||
use sts_audconf;
insert into roleDefinitions (source, externalName, code, value) values ('NationalFederation', 'nspPlejeAssR3', '41003', 'PlejeAssR3'); |
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.
| Felt | Beskrivelse |
|---|---|
| cvr | Et cvr nummer der tillades adgang uden validering af nationale roller. |
| endpoint | Det 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'.
Konfiguration af borgeromvekslinger
| Snitflade | Trust og opsætning |
|---|---|
| Borgeromveksling | |
| /sts/services/Bst2Idws | Bootstrap token skal være signeret af trusted part (konfigureret i database tabellen sts_audconf.trustedIdpCitizenConfiguration). I praksis NemLog-In eller SEB |
| /sts/services/JWTIdws | 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 |
| /sts/services/JWT2OIOSaml | 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 |
Bst2Idws
Omveksling fra Bootstrap token til identitytoken
Tilføjelse af ny anvender
Er der tale om en ny issuer, skal der tilføjes rækker til ovenfor nævnte tabel for hver attribut.
Er issuer allerede i tabellen, skal der oprettes:
- Evt. en ny encryptionKey.xxx attribut med krypteringsnøglen (hvis den ikke allerede er til stede).
- En ny certificate.xxx attribut med ssn for anvendercertifikatet
- En ny signingKey.xxx attribut med nøglen til certifikatet der bruges til signering af bootstraptokenet (hvis det ikke allerede er til stede).
Nationale roller
Ved udstedelse af id-kort, enten på baggrund af selv-signeret id-kort eller ved omveksling af NemLog-in token, er det muligt at anvende nationale roller. De gyldige roller opsættes i tabellen sts_audconf.roleDefinitions.
Nationale roller vil optræde i id-kortet som en rolle på formen urn:dk:healthcare:national-federation-role:code:40001:value:Laegesekretaer
Følgende felter er relevante
...
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 | ||
|---|---|---|
| ||
use sts_audconf;
insert into roleDefinitions (source, externalName, code, value) values ('NationalFederation', 'nspPlejeAssR3', '41003', 'PlejeAssR3'); |
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.
...
Af sikkerhedsmæssige årsager anbefales funktionaliteten pt kun benyttes for 'STS'.
Konfiguration af borgeromvekslinger
Bst2Idws
Omveksling fra Bootstrap token til identitytoken (også tidligere kaldet webapotek løsning) benyttes til at veksle et Bootstraptoken udstedet af NemLog-in på vegne af en borger, til et identitytoken, der kan benyttes til login i FMK-online (og senere formentlig også MinLog2 og Fælles stamkort)og til borgersnitflader (IDWS snitflader) udbudt af f.eks. MinLog2, MinSpærring og Dokumentdelingsservicen.
Den generelle konfiguration for denne service ligger i services.xml på bean nboConfiguration, ligesom for OIOSaml2Sosi omvekslingen. Til denne omveksling benyttes dog kun de to properties fuzzyTime og allowedDriftInSeconds.
...