Aller au contenu principal

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 :

  1. 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.
  2. 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éeRevendications
openidsub
profilename, family_name, given_name, middle_name, nickname, preferred_username, profile, picture, website, gender, birthdate, zoneinfo, locale, updated_at
emailemail, email_verified
phonephone_number, phone_number_verified
addressaddress

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 :

  1. Condition de portée : L’application doit demander la portée correspondante lors de l’authentification.
  2. 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éeRevendicationsDescriptionInclus par défaut
custom_datacustom_dataDonnées personnalisées stockées sur l’utilisateur
identitiesidentities, sso_identitiesIdentités sociales et SSO liées de l’utilisateur
rolesrolesRôles attribués à l’utilisateur
urn:logto:scope:organizationsorganizationsIdentifiants des organisations de l’utilisateur
urn:logto:scope:organizationsorganization_dataDonnées d’organisation de l’utilisateur
urn:logto:scope:organization_rolesorganization_rolesAffectations de rôles d’organisation de l’utilisateur

Configurer dans Logto Console

Pour activer les revendications étendues dans le jeton d’identifiant :

  1. Accédez à Console > JWT personnalisé.
  2. Activez les revendications que vous souhaitez inclure dans le jeton d’identifiant.
  3. Assurez-vous que votre application demande les portées correspondantes lors de l’authentification.
Jeton d’accès personnalisé

OpenID Connect Core - Jeton d’identifiant