Aller au contenu principal

3. Requesting a JWT Access Token (Demande d'un jeton d'accès JWT)

Un serveur d'autorisation peut émettre un jeton d'accès JWT en réponse à tout octroi d'autorisation défini par [RFC6749] et les extensions ultérieures destinées à produire un jeton d'accès.

Si la demande inclut un paramètre "resource" (tel que défini dans [RFC8707]), la revendication "aud" du jeton d'accès JWT résultant devrait (SHOULD) avoir la même valeur que le paramètre "resource" dans la demande.

Exemple de demande ci-dessous :

GET /as/authorization.oauth2?response_type=code
&client_id=s6BhdRkqt3
&state=xyz
&scope=openid%20profile%20reademail
&redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb
&resource=https%3A%2F%2Frs.example.com%2F HTTP/1.1
Host: authorization-server.example.com

Figure 1 : Demande d'autorisation avec les paramètres Resource et Scope

Une fois échangé, le code obtenu à partir de la demande ci-dessus produira un jeton d'accès JWT sous la forme indiquée ci-dessous :

En-tête :

{"typ":"at+JWT","alg":"RS256","kid":"RjEwOwOA"}

Revendications :

{
"iss": "https://authorization-server.example.com/",
"sub": "5ba552d67",
"aud": "https://rs.example.com/",
"exp": 1639528912,
"iat": 1618354090,
"jti": "dbe39bf3a3ba4238a513f51d6e1691c4",
"client_id": "s6BhdRkqt3",
"scope": "openid profile reademail"
}

Figure 2 : L'en-tête et l'ensemble de revendications JWT d'un jeton d'accès JWT

Le serveur d'autorisation ne doit pas (MUST NOT) émettre un jeton d'accès JWT si l'autorisation accordée par le jeton serait ambiguë. Voir la Section 5 pour plus de détails sur les cas courants susceptibles de conduire à une ambiguïté et les stratégies qu'un serveur d'autorisation peut mettre en œuvre pour les prévenir.

Si la demande n'inclut pas de paramètre "resource", le serveur d'autorisation doit (MUST) utiliser un indicateur de ressource par défaut dans la revendication "aud". Si un paramètre "scope" est présent dans la demande, le serveur d'autorisation devrait (SHOULD) l'utiliser pour déduire la valeur de l'indicateur de ressource par défaut à utiliser dans la revendication "aud". Le mécanisme par lequel les portées sont associées aux valeurs d'indicateur de ressource par défaut est hors du champ d'application de cette spécification. Si les valeurs du paramètre "scope" font référence à différentes valeurs d'indicateur de ressource par défaut, le serveur d'autorisation devrait (SHOULD) rejeter la demande avec "invalid_scope" comme décrit dans la Section 4.1.2.1 de [RFC6749].