Claims

Claims worden eerst verwerkt in de authenticatiemethode en daarna in de app registratie, waar het mogelijk is te bepalen welke claims worden doorgegeven naar de volgende stap en claim transforms en claim tasks uit te voeren.

Alle claim vergelijkingen zijn case sensitive.

Het claim proces start in de authenticatiemethode wanneer een gebruiker authenticeert. Daar is het mogelijk om claim transforms en claim tasks uit te voeren en te configureren welke claims moeten worden doorgegeven naar de volgende stap. Daarna gaat het claim proces verder in de app registratie, waar het ook mogelijk is claim transforms uit te voeren en te configureren welke claims moeten worden uitgegeven aan de applicatie / API.

In een Client Credentials Grant scenario wordt het claim proces alleen in de app registratie uitgevoerd. Hetzelfde geldt voor claim transforms en de configuratie van welke claims moeten worden uitgegeven aan de applicatie / API.

Kies voor waarden binnen FoxIDs _local: voor één transformatieset, _internal: voor de huidige authenticatiestroom inclusief applicatietransformaties, of _session: voor latere browseraanmeldingen via dezelfde authenticatiemethode. Deze gereserveerde claims worden niet aan applicaties uitgegeven. Zie Lokale, interne en sessieclaims, inclusief hoe u een sessiewaarde naar een interne claim kopieert voor applicatietransformaties.

Authentication method

In zowel een OpenID Connect als SAML 2.0 authenticatiemethode worden claims doorgegeven door ze toe te voegen aan de lijst Forward claims. Alle claims worden doorgegeven als een wildcard * wordt toegevoegd aan de lijst Forward claims.

De volgende claims identificeren de laatst gebruikte authenticatiemethode. Ze worden standaard doorgestuurd en kunnen in de app registratie worden gelezen en gebruikt in claim transforms en claim tasks:

  • auth_method bevat de naam van de authenticatiemethode, die uniek is binnen de omgeving.
  • auth_method_type bevat het type authenticatiemethode: login, oidc, oauth2, saml2, wsfed, env_link of ext_login.
  • auth_profile_method bevat de naam van het geselecteerde profiel van de authenticatiemethode. Deze claim wordt opgenomen wanneer een profiel wordt gebruikt.

Een sub claim en tokens ontvangen van een externe Identity Provider worden genest met een pipe (|) na de naam van de authenticatiemethode. Voorbeelden:

  • Een externe sub met de waarde afeda2a3-c08b-4bbb-ab77-35138dd2ef2d krijgt de geneste waarde the-auth-method|afeda2a3-c08b-4bbb-ab77-35138dd2ef2d
  • Een externe access token met de waarde eyJhG.cRwczov...nNjb3B.lIjoi wordt toegevoegd in de access_token claim met de geneste waarde the-auth-method|eyJhG.cRwczov...nNjb3B.lIjoi
  • Als de externe OpenID Provider een refresh token retourneert, kan dit worden doorgestuurd in de refresh_token claim met de geneste waarde the-auth-method|refresh-token-value

Application registration

In zowel een OpenID Connect, OAuth 2.0 en SAML 2.0 app registratie worden claims uitgegeven aan de applicatie / API door ze toe te voegen aan de lijst Issue claims. Alle claims worden uitgegeven aan de applicatie / API als een wildcard * wordt toegevoegd aan de lijst Issue claims.

Een OpenID Connect app registratie kan onderscheiden of een claim alleen in de access token of ook in de ID token wordt uitgegeven.

Een OpenID Connect en OAuth 2.0 app registratie kan claims ook doorgeven via een scope. Dit wordt gedaan door de claim(s) toe te voegen aan de lijst Voluntary claims van een scope. De claims worden dan uitgegeven als de client applicatie om de scope vraagt. Een OpenID Connect app registratie kan ook in de vrijwillige scope claims onderscheiden of een claim alleen in de access token of ook in de ID token wordt uitgegeven.

Typen claimwaarden

Typen van JWT claimwaarden, waaronder JSON-objecten, arrays, booleans en getallen, blijven behouden wanneer claims door een Map transformatie worden gekopieerd of via sessies, Extended UI en OAuth grants worden doorgegeven. OpenID Connect UserInfo retourneert deze waarden met hun overeenkomstige JSON-typen.

Transformaties die nieuwe tekst produceren, zoals regexmapping en samenvoeging, produceren tekenreekswaarden.

JWT/SAML claimmapping behoudt waardetypen zoals booleans en getallen. Bij mapping van JWT naar SAML worden JSON-waarden als tekst in tekenreeksattributen doorgegeven. Bij mapping van SAML naar JWT worden tekenreekswaarden met geldige JSON-objecten of arrays omgezet in JSON-claims.

Geïmpersoneerde identiteiten

Een authenticatiemethode kan een andere gebruiker selecteren met een Impersonation transformatie. Applicatietransformaties ontvangen vervolgens de claims van de doelgebruiker en een act claim die de oorspronkelijk geauthenticeerde gebruiker identificeert. _impersonate: claims bereiden de selectie binnen de transformaties van de authenticatiemethode voor; lokale hulpclaims behouden hun gereserveerde namen onder dit voorvoegsel.

In JWT's is act een JSON-object, bijvoorbeeld {"sub":"original-user"}. De standaard SAML-mapping is http://schemas.foxids.com/ws/identity/claims/act, wat kan worden overschreven in de claimmappings van de omgeving. Selecteer de gemapte claim in Issue claims van de SAML-applicatie of gebruik * om de JSON-tekst uit te geven. Wanneer een SAML-attribuut met deze JSON-tekst terug naar act wordt gemapt, geeft FoxIDs het als JSON-object in het JWT uit.

Beschermde claims

FoxIDs beheert claims die sessies, de geldigheid van tokens en de routering tussen authenticatiemethoden bepalen. Deze beschermde claims kunnen niet worden geconfigureerd als uitvoer van claim transforms, worden gebruikt in aangepaste JWT/SAML claim mappings of worden voorzien van statische waarden.

De beschermde JWT claimnamen zijn:

  • sid, iss, aud, exp, nbf, iat en auth_time.
  • client_id, azp, scope, nonce, at_hash en c_hash.
  • auth_method, auth_method_type, auth_profile_method en auth_method_issuer.

De overeenkomstige SAML claimtypen voor sessie-index, authenticatietijdstip, client-ID en authenticatiemethode zijn ook beschermd. De ingebouwde protocoltoewijzingen van FoxIDs blijven beschikbaar.

Transforms kunnen beschermde claims lezen en hun waarden naar aangepaste claims kopiëren. Een beschermde claim kan ook worden geselecteerd in een lijst met door te geven of uit te geven claims zonder statische waarden op te geven.

Dezelfde beperkingen gelden voor aangepaste claims van interne en externe gebruikers, initiële claims voor de tenantgebruiker, claims op knooppunten in de toegangsstructuur, uitvoerclaims van dynamische UI-elementen en statische claims voor applicaties en scopes.

Beschermde claims die worden geretourneerd door een Claims API, een API voor validatie van Extended UI, een External Login API of een Directory Connector API, worden verwijderd. Bestaande beschermde claims in de flow blijven behouden. Geselecteerde beschermde claims kunnen als invoer naar deze API's worden gestuurd.