Logo Logo
GitHub Designed by Logto

Qu’est-ce qu’une réclamation (claim) ?

Une réclamation (claim) est une paire nom-valeur qui transmet des informations spécifiques. Par exemple, dans un objet JSON :

{
  "sub": "foo",
  "email": "[email protected]"
}

Dans cet exemple, sub est une réclamation qui représente l’identifiant du sujet avec la valeur foo, et email est une réclamation qui représente l’adresse email avec la valeur [email protected].

Nous utilisons sujet au lieu de utilisateur parce que sans une définition claire, le sujet (sub) peut représenter un utilisateur, un appareil, ou toute entité.

Utilisations des réclamations (claims)

Les réclamations sont largement utilisées dans divers contextes, tels que :

Réclamations standards

Dans JWT et OIDC, il y a des réclamations standards définies par les spécifications. Certaines réclamations standards courantes incluent :

  • iss : L’issuer du token. Par exemple, si le Serveur d'autorisation (Authorization server) qui a émis le token est https://example.com, dans la plupart des cas, la réclamation iss sera la même (https://example.com).
  • sub : Le sujet du token. Il représente l’entité à laquelle le token se rapporte. Par exemple, dans un ID token, la réclamation sub représente généralement l’identifiant de l’utilisateur.
  • aud : L’audience du token. Elle indique les destinataires pour lesquels le token est destiné. Par exemple, si le token est destiné à accéder à une API à https://api.example.com, la réclamation aud sera la même (https://api.example.com).
  • exp : Le temps d’expiration du token. Il indique quand le token ne devrait plus être accepté pour traitement.
  • nbf : Le temps “not before” du token. Il indique quand le token devrait commencer à être accepté pour le traitement.
  • iat : Le temps d’émission du token. Il indique quand le token a été émis.
  • jti : L’ID JWT du token. Il fournit un identifiant unique pour le token.

OIDC définit également des réclamations standards supplémentaires pour les informations utilisateur. Voir Réclamations dans la spécification OIDC pour plus de détails.

Réclamations personnalisées

En plus des réclamations standards, vous pouvez définir des réclamations personnalisées pour représenter des informations spécifiques à l’application. Par exemple, vous pouvez inclure une réclamation role pour représenter le rôle de l’utilisateur dans l’application.

Les réclamations personnalisées peuvent être espacées de noms avec des Identificateurs Uniformes de Ressource (URIs) pour éviter les conflits avec d’autres réclamations. Par exemple :

{
  "https://example.com/claims/role": "admin"
}

Dans cet exemple, la réclamation role est espacée de nom avec https://example.com/claims/ pour assurer son unicité. Alternativement, vous pouvez définir votre propre Nom Uniforme de Ressource (URN) pour les réclamations personnalisées :

{
  "urn:example:claims:role": "admin"
}

Dans cet exemple, la réclamation role est espacée de nom avec urn:example:claims:.

Voir aussi