Arbete pågår
Revisionshistorik
Version | Datum | Författare | Kommentar |
---|---|---|---|
0.1 |
| Upprättad | |
0.2 |
| Former user (Deleted) | Utkast |
0.3 |
| Former user (Deleted) | Information om filtrering av authorizationScope |
Sammanfattning
Vid klientregistrering anges vilka attribut (claims) som skall finnas tillgängliga för klienten vid en autentiseringsbegäran.
Vid autentiseringsbegäran anges vilka attribut (claims) som efterfrågas, och huruvida de är tvingande (essential) eller inte.
Tillgängliga claims och scopes
- Claim = attribut
- Scope = en samling av claims
Attributlistan visar vilka claims och scopes som kan levereras av IdP. Notera att varje claim ingår i ett scope.
Klientregistrering
Vid klientregistrering anges vilka claims som är godkända för IdP att släppa ifrån sig till klienten.
Scopet "openid" och de claims som ingår däri är obligatoriska och behöver inte specificeras. Övriga tillåtna attribut kan anges ett och ett som claims eller gruppvis som scopes. Vid registreringen sparas allting som enskilda claims oavsett.
Autentiseringsbegäran
Autentiseringsbegäran måste specificera vilka attribut som skall returneras efter en lyckad autentisering.
Attributbegäran görs via två fält i autentiseringsbegäran: scope och/eller claims.
De begärda attributen filtreras och IdP returnerar endast de begärda attribut som är godkända i klientregistreringen enligt ovan.
Begärda claims eller scopes som inte finns definierade i Attributlistan ignoreras av IdP.
scope
https://openid.net/specs/openid-connect-core-1_0.html#ScopeClaims
Det obligatoriska "openid"-scopet i autentiseringsbegäran kan kompletteras med ytterligare scopes.
scope = openid commission authorization_scope personal_identity_number
De claims som ingår i begärda scopes levereras både i id-token i autentiseringssvaret och går att hämta från UserInfo-endpointen.
claims
https://openid.net/specs/openid-connect-core-1_0.html#ClaimsParameter
- Begärs ett och ett.
- Anges separat huruvida attributet skall returneras i svarets id-token och/eller levereras från UserInfo-endpointen.
- Kan markeras som essential, d.v.s. tvingande.
- Motsvarar fältet "isRequired" i SAML
- Om IdP inte kan leverera ett tvingande attribut så kommer den signalera att inloggningen misslyckades.
claims = { "userinfo" : { "given_name" : null, "mobileTelephoneNumber" : { "essential" : true }, "healthCareUnitName" : { "essential" : true }, "commissionRight" : null }, "id_token" : { "healthCareUnitHsaId" : { "essential" : true }, "healthCareUnitName" : null } }
Filtrering av authorization_scope
Styrning av vilka authorization_scope som returneras görs genom att skicka med ett value-attribut under authorizationScope i claims request. Värdet jämförs med underattributet authorizationScopeCode och icke-matchande resultat filtreras bort. Detta kan användas tillsammans med essential-flaggan för att direkt kräva att en användare har en roll inom rätt behörighetsområde för att få utföra en inloggning.
"authorizationScope" : [{ "authorizationScopePropertyName" : "Tjänstesupport", "authorizationScopeName" : "Säkerhetstjänster", "authorizationScopeCode" : "BIF", "authorizationScopePropertyCode" : "BIF;002", "authorizationScopeDescription" : "HSA Domain description", "authorizationScopePropertyDescription" : "Tjänstesupport Beskrivning", "adminCommissions" : [{ "adminCommissionHsaId" : "SE1804231406", "sector" : [{ "sectorFlag" : true, "name" : "SE111-JLL", "unitHsaId" : "SE111-JLL" },{ "sectorFlag" : false, "name" : "SE111-IVA-NAME", "unitHsaId" : "SE111-IVA" } ], "adminCommissionResponsibleOrganisation" : "232100-0214" } ]
claims = { "userinfo" : { "authorizationScope" : { "value" : "BIF", "essential" : true } }, "id_token" : { "authorizationScope" : { "value" : "BIF", "essential" : true } } }
claims = { "userinfo" : { "authorizationScope" : { "value" : ["SYS1", "SYS2"] } }, "id_token" : { "authorizationScope" : { "value" : ["SYS1", "SYS2"] } } }
Uppdragsval
Vilka attribut som begärts styr huruvida IdP kommer att presentera ett uppdragsval för användaren eller inte.