Claims
Claims behandlas först i autentiseringsmetoden och sedan i applikationsregistreringen, där det är möjligt att avgöra vilka claims som skickas vidare till nästa steg och att göra claim transforms och claim tasks.
Alla claim jämförelser är case sensitive.
Claim processen startar i autentiseringsmetoden när en användare autentiserar. Där är det möjligt att göra claim transforms och claim tasks och konfigurera vilka claims som ska skickas vidare till nästa steg. Därefter fortsätter claim processen i applikationsregistreringen där det också är möjligt att göra claim transforms och konfigurera vilka claims som ska utfärdas till applikationen / API.
I ett Client Credentials Grant scenario görs claim processen endast i applikationsregistreringen. Detsamma gäller claim transforms och konfigurationen av vilka claims som ska utfärdas till applikationen / API.
För värden som används inom FoxIDs väljer du _local: för en transformationsuppsättning, _internal: för det aktuella autentiseringsflödet inklusive applikationens transforms eller _session: för senare webbläsarinloggningar via samma autentiseringsmetod. Dessa reserverade claims utfärdas inte till applikationer. Se Lokala, interna och sessionsclaims, inklusive hur ett sessionsvärde kopieras till ett internt claim för applikationens transforms.
Authentication method
I både en OpenID Connect och SAML 2.0 autentiseringsmetod skickas claims vidare genom att lägga till dem i listan Forward claims. Alla claims skickas vidare om en wildcard * läggs till i listan Forward claims.
Följande claims identifierar den senast använda autentiseringsmetoden. De vidarebefordras som standard och kan läsas i applikationsregistreringen och användas i claim transforms och claim tasks:
auth_methodinnehåller autentiseringsmetodens namn, som är unikt inom miljön.auth_method_typeinnehåller autentiseringsmetodens typ:login,oidc,oauth2,saml2,wsfed,env_linkellerext_login.auth_profile_methodinnehåller namnet på den valda profilen för autentiseringsmetoden. Detta claim tas med när en profil används.
Ett sub claim och tokens mottagna från en extern Identity Provider nästlas med ett pipe (|) efter autentiseringsmetodens namn.
Exempel:
- Ett externt
submed värdetafeda2a3-c08b-4bbb-ab77-35138dd2ef2dfår det nästlade värdetthe-auth-method|afeda2a3-c08b-4bbb-ab77-35138dd2ef2d - Ett externt access token med värdet
eyJhG.cRwczov...nNjb3B.lIjoiläggs till iaccess_tokenclaim med det nästlade värdetthe-auth-method|eyJhG.cRwczov...nNjb3B.lIjoi - Om den externa OpenID Provider returnerar ett refresh token kan det vidarebefordras i
refresh_tokenclaim med det nästlade värdetthe-auth-method|refresh-token-value
Application registration
I både en OpenID Connect, OAuth 2.0 och SAML 2.0 applikationsregistrering utfärdas claims till applikationen / API genom att lägga till dem i listan Issue claims. Alla claims utfärdas till applikationen / API om en wildcard * läggs till i listan Issue claims.
En OpenID Connect applikationsregistrering kan skilja om ett claim endast utfärdas i access token eller också i ID token.
En OpenID Connect och OAuth 2.0 applikationsregistrering kan också skicka claims vidare via ett scope. Detta görs genom att lägga till claim(s) i ett scopes lista Voluntary claims. Claims utfärdas då om klient applikationen begär scopet.
En OpenID Connect applikationsregistrering kan också i de frivilliga scope claims skilja om ett claim endast utfärdas i access token eller också i ID token.
Typer för claimvärden
JWT claimvärden behåller sina typer, inklusive JSON-objekt, arrayer, booleska värden och tal, när claims kopieras av en Map transformation eller förs genom sessioner, Extended UI och OAuth grants. OpenID Connect UserInfo returnerar värdena med motsvarande JSON-typer.
Transformationer som skapar ny text, såsom regexmappning och sammanfogning, skapar strängvärden.
JWT/SAML claimmappning bevarar värdetyper som booleska värden och tal. Vid mappning från JWT till SAML överförs JSON-värden som text i strängattribut. Vid mappning från SAML till JWT blir strängvärden med giltiga JSON-objekt eller arrayer till JSON-claims.
Impersonerade identiteter
En autentiseringsmetod kan välja en annan användare med en Impersonation transformation. Applikationstransformationer får då målanvändarens claims och ett act claim som identifierar den ursprungligen autentiserade användaren. _impersonate: claims förbereder valet i autentiseringsmetodens transformationer; lokala hjälpclaims behåller sina reserverade namn under detta prefix.
I JWT:er är act ett JSON-objekt, exempelvis {"sub":"original-user"}. Dess standardmappning i SAML är http://schemas.foxids.com/ws/identity/claims/act, vilket kan ändras i miljöns claimmappningar. Välj det mappade claimet i SAML-applikationens Issue claims, eller använd *, för att utfärda JSON-texten. När ett SAML-attribut med denna JSON-text mappas tillbaka till act utfärdar FoxIDs det som ett JSON-objekt i JWT:n.
Skyddade claims
FoxIDs hanterar claims som styr sessioner, tokens giltighet och routning mellan autentiseringsmetoder. Dessa skyddade claims kan inte konfigureras som utdata från claim transforms, användas i anpassade JWT/SAML claim mappings eller tilldelas statiska värden.
Följande JWT claims är skyddade:
sid,iss,aud,exp,nbf,iatochauth_time.client_id,azp,scope,nonce,at_hashochc_hash.auth_method,auth_method_type,auth_profile_methodochauth_method_issuer.
Motsvarande SAML claimtyper för sessionsindex, autentiseringstidpunkt, klient-ID och autentiseringsmetod är också skyddade. FoxIDs inbyggda protokollmappningar är fortsatt tillgängliga.
Transforms kan läsa skyddade claims och kopiera deras värden till anpassade claims. En skyddad claim kan också väljas i en lista över claims som ska vidarebefordras eller utfärdas, utan att ange statiska värden.
Samma begränsningar gäller för anpassade claims på interna och externa användare, inledande claims för tenantens användare, claims på noder i åtkomststrukturen, utdataclaims från dynamiskt UI samt statiska claims för applikationer och scopes.
Skyddade claims som returneras av ett Claims API, ett API för validering av Extended UI, ett External Login API eller ett Directory Connector API tas bort. Befintliga skyddade claims i flödet behålls. Utvalda skyddade claims kan skickas till dessa API:er som indata.