UI Expand | ||||||
---|---|---|---|---|---|---|
| ||||||
|
UI Expand | ||
---|---|---|
| ||
SAML
SAML-standarden er et XML-baseret rammeværk til udveksling af sikkerhedsinformationer mellem forskellige online parter. Sikkerhedsinformationen udtrykkes i form af portable SAML påstande (assertions), som er digitalt signerede XML-strukturer, der udveksles mellem de kommunikerende parter.
SAML-standarden omfatter tillige en web single sign-on profil (Web SSO), som beskriver mekanismer for udvekslingen af SAML assertions i et web-miljø, således at en tjenesteudbyders web-server kan opnå autentificering af en bruger gennem omdirigering af brugerens browser via en identitetsyders web-server. Det er også i autentificeringsprocessen muligt at sende information om brugeren i form af attributter, som fx kan anvendes til autorisation. Tjenesteudbyderen kaldes i SAML-sammenhæng en SP (Service Provider) mens identitetsudbyderen kaldes en IdP (Identity Provider).
Forud for at kommunikation med SAML Web SSO kan finde sted er det nødvendigt at udveksle metadata for tjenesteudbyders SAML SP og Unilogin Broker. Metadata er beskrevet i SAML standarden og fastlægger de involverede certifikater og andre informationer nødvendige for kommunikationen, såsom end-points for SP’ens Assertion Consumer Service og IdP’ens Single Sign On Service.
Eksternt Testmiljø (ET)
- Metadata (til tjenester): https://et-broker.unilogin.dk/auth/realms/broker/protocol/saml-stil/descriptor
Produktion
- Metadata (til tjenester): https://broker.unilogin.dk/auth/realms/broker/protocol/saml-stil/descriptor
Test af tilslutning
Aftestning kan ske ved tilslutning til Unilogins eksterne testmiljø.
For at blive oprettet på det eksterne testmiljø skal følgende være opfyldt:
- TEST-SAML-Metadata-filen skal navngives på formen supportsagsnummer_test_saml_metadata.xml (fx infrasup-98765_test_saml_metadata.xml)
Bemærk at før tjenesten kan komme på produktionsmiljøet skal følgende være opfyldt:
- Der skal indsendes en erklæring om at login i tjenesten via Unilogin alene tjener et relevant formål i forhold til skoler og institutioner. Herunder eksempler på skoler og institutioner der anvender tjenesten.
- PROD-SAML-Metadata-filen skal navngives på formen supportsagsnummer_saml_metadata.xml (fx infrasup-98765_saml_metadata.xml)
- Integrationen til Unilogin Broker skal overholde protokolprofilen OIOSAML 3.0.3. Herunder at der anvendes OCES3 systemcertifikater.
- Slutteligt skal der anmodes om en tilslutning af tjenesten til "Unilogin SAML" på tilslutning.stil.dk
Kommunikation af ønsket sikringsniveau
Ønske om et givet sikringsniveau kommunikeres fra tjenestens SAML SP til Unilogin Broker i <AuthnContextClassRef> i SAML <AuthnRequest>. Værdierne skal følge specifikationen af Unilogin-føderationens sikringsniveauer. Tjenesten modtager de opnåede sikringsniveauer som attributter i <Assertion>-delen af SAML <Response>.
SAML
Unilogin Broker sender et tjenestespecifikt pseudonym for den indloggede bruger i <NameID>, eksempelvis "G-91552a74-b560-4057-ade9-083b94da07e6".
Derudover medsendes følgende attributter i <Assertion>:
Attribut-navn | Værdi |
---|---|
dk:unilogin:uniid | Unilogin brugernavnet af hensyn til bagudkompatibilitet (Udfases i takt med udbredelsen af pseudonymisering i Unilogin) |
dk:unilogin:aktoergruppe | Brugerens valgte aktørgruppe i Unilogin ud fra de registrerede tilknytninger i SkoleGrunddata. |
dk:unilogin:loa | Sikringsniveau i Unilogin (EnFaktor, VoksenVerificeret eller ToFaktor) |
dk:gov:saml:attribute:AssuranceLevel | Sikringsniveau i forhold til OIOSAML 2.0.9 afledt af ovenstående Unilogin sikringsniveau (2, 2 eller 3) |
https://data.gov.dk/concept/core/nsis/loa | Sikringsniveau i NSIS 2.0.1 / OIOSAML 3.0 sikringsniveau (Low, Substantial eller High) (Indføres i takt med udbredelsen af NSIS i IdP'er) |
Feltspecifikation
Vi skal bruge metadata om tjenesten for at oprette forbindelse mellem tjenesten og Unilogin Brokeren.
Skabelon for SP metadata kan hentes her sp-metadata-skabelon.xml
Følgende parametre kan findes i skabelonen. Parametre markeret som krav skal udfyldes. Resterende kan udfyldes efter behov.
Parameter | Type | Værdi | Eksempel | Krav |
---|---|---|---|---|
EntityID | uri |
| "https://tjeneste.domæne.dk/min-tjeneste" | X |
AssertionConsumerService | url |
| Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" | X |
NameIDFormat | string | Transient eller persistent | urn:oasis:names:tc:SAML:2.0:nameid-format:transient | X |
SingleLogoutService | url |
| Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" |
|
Eksempel på udfyldt metadata
Kodeblok | ||
---|---|---|
| ||
<md:EntityDescriptor entityID="https://min.tjeneste.dk"
xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<md:SPSSODescriptor AuthnRequestsSigned="true"
WantAssertionsSigned="true"
protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<md:KeyDescriptor use="signing">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>MIIGmDCCBMygAwIBA............u6OD1TJ7xqRgRP</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</md:KeyDescriptor>
<md:KeyDescriptor use="encryption">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>MIIGmDCCBMygAwIBA............u6OD1TJ7xqRgRP</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</md:KeyDescriptor>
<md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Location="https://min.tjeneste.dk/login"
index="0"/>
<md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"
Location="https://min.tjeneste.dk/login"
index="1"/>
<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</md:NameIDFormat>
<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Location="https://min.tjeneste.dk/logout"/>
<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"
Location="https://min.tjeneste.dk/logout"/>
</md:SPSSODescriptor>
</md:EntityDescriptor> |
...
Uddrag | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|