Jeton d’identifiant personnalisé (Custom ID token)
Introduction
Jeton d’identifiant (ID token) est un type spécial de jeton défini par le protocole OpenID Connect (OIDC). Il sert d’attestation d’identité émise par le serveur d’autorisation (Logto) après qu’un utilisateur s’est authentifié avec succès, transportant des revendications sur l’identité de l’utilisateur authentifié.
Contrairement aux jetons d’accès (Access tokens) qui sont utilisés pour accéder à des ressources protégées, les jetons d’identifiant sont spécifiquement conçus pour transmettre l’identité de l’utilisateur authentifié aux applications clientes. Ce sont des JSON Web Tokens (JWTs) qui contiennent des revendications sur l’événement d’authentification et l’utilisateur authentifié.
Fonctionnement des revendications du jeton d’identifiant
Dans Logto, les revendications du jeton d’identifiant sont divisées en deux catégories :
- Revendications OIDC standard : Définies par la spécification OIDC, ces revendications sont entièrement déterminées par les portées demandées lors de l’authentification.
- Revendications étendues : Revendications étendues par Logto pour transporter des informations d’identité supplémentaires, contrôlées par un modèle à double condition (Portée + Bascule).
Revendications OIDC standard
Les revendications standard sont entièrement régies par la spécification OIDC. Leur inclusion dans le jeton d’identifiant dépend uniquement des portées que votre application demande lors de l’authentification. Logto ne propose aucune option pour désactiver ou exclure sélectivement des revendications standard individuelles.
Le tableau suivant montre la correspondance entre les portées standard et leurs revendications correspondantes :
| Portée | Revendications |
|---|---|
openid | sub |
profile | name, family_name, given_name, middle_name, nickname, preferred_username, profile, picture, website, gender, birthdate, zoneinfo, locale, updated_at |
email | email, email_verified |
phone | phone_number, phone_number_verified |
address | address |
Par exemple, si votre application demande les portées openid profile email, le jeton d’identifiant inclura toutes les revendications des portées openid, profile et email.
Revendications étendues
Au-delà des revendications OIDC standard, Logto étend des revendications supplémentaires qui transportent des informations d’identité spécifiques à l’écosystème Logto. Ces revendications étendues suivent un modèle à double condition pour être incluses dans le jeton d’identifiant :
- Condition de portée : L’application doit demander la portée correspondante lors de l’authentification.
- Bascule dans la console : L’administrateur doit activer l’inclusion de la revendication dans le jeton d’identifiant via Logto Console.
Les deux conditions doivent être satisfaites simultanément. La portée sert de déclaration d’accès au niveau du protocole, tandis que la bascule sert de contrôle d’exposition au niveau du produit — leurs responsabilités sont claires et non substituables.
Portées et revendications étendues disponibles
| Portée | Revendications | Description | Inclus par défaut |
|---|---|---|---|
custom_data | custom_data | Données personnalisées stockées sur l’utilisateur | |
identities | identities, sso_identities | Identités sociales et SSO liées de l’utilisateur | |
roles | roles | Rôles attribués à l’utilisateur | ✅ |
urn:logto:scope:organizations | organizations | Identifiants des organisations de l’utilisateur | ✅ |
urn:logto:scope:organizations | organization_data | Données d’organisation de l’utilisateur | |
urn:logto:scope:organization_roles | organization_roles | Affectations de rôles d’organisation de l’utilisateur | ✅ |
Configurer dans Logto Console
Pour activer les revendications étendues dans le jeton d’identifiant :
- Accédez à Console > JWT personnalisé.
- Activez les revendications que vous souhaitez inclure dans le jeton d’identifiant.
- Assurez-vous que votre application demande les portées correspondantes lors de l’authentification.
Ressources associées
Jeton d’accès personnaliséOpenID Connect Core - Jeton d’identifiant