image
image
image
image
image
image

Jeton daccès url oauth2

Les

clients de demande

d’autorisation dirigeront le navigateur d’un utilisateur vers le serveur d’autorisation pour commencer le processus OAuth. Les clients peuvent utiliser soit le type d’octroi de code d’autorisation, soit l’octroi implicite. En plus du type d’octroi spécifié par le paramètre, la demande comportera un certain nombre d’autres paramètres pour indiquer les spécificités de la demande.

L’application côté serveur décrit comment les clients créent l’URL d’autorisation de votre service. La première fois que le serveur d’autorisation voit l’utilisateur, c’est cette demande d’autorisation, l’utilisateur est dirigé vers le serveur avec les paramètres de requête définis par le client. À ce stade, le serveur d’autorisation devra valider la demande et présenter l’interface d’autorisation, permettant à l’utilisateur d’approuver ou de refuser la demande.

Paramètres de la requête

Les paramètres suivants sont utilisés pour commencer la demande d’autorisation. Par exemple, si l’URL du serveur d’autorisation est alors le client créera une URL comme la suivante et dirigera le navigateur de l’utilisateur vers celle-ci :

https://authorization-server.com/auth?response_type=code &client_id=29352735982374239857 &redirect_uri=https ://example-app.com/callback &scope=create+delete &state=xcoivjuywkdkhvusuye3kch

response_type

sera définie sur , indiquant que l’application s’attend à recevoir un code d’autorisation en cas de succès.

Il s’agit de l’identificateur public de l’application.

(facultatif)

Ce n’est pas requis par la spécification, mais votre service doit l’exiger. Cette URL doit correspondre à l’une des URL que le développeur a enregistrées lors de la création de l’application, et le serveur d’autorisation doit rejeter la demande si elle ne correspond pas.

(facultatif)

La demande peut avoir une ou plusieurs valeurs d’étendue en indiquant l’accès supplémentaire demandé par l’application. Le serveur d’autorisation devra afficher les étendues demandées à l’utilisateur.

(recommandé)

Le paramètre est utilisé par l’application pour stocker des données spécifiques à une demande et/ou empêcher les attaques CSRF. Le serveur d’autorisation doit renvoyer la valeur d’état non modifiée à l’application.

PKCE

Si le serveur d’autorisation prend en charge l’extension PKCE (décrite dans PKCE), les paramètres et seront également présents. Ceux-ci doivent être mémorisés par le serveur d’autorisation entre l’émission du code d’autorisation et l’émission du jeton d’accès.

Vérification de la demande d’autorisation

Le serveur d’autorisation doit d’abord vérifier que le dans la demande correspond à une application valide.

Si votre serveur permet aux applications d’enregistrer plus d’une URL de redirection, il y a deux étapes pour validation de l’URL de redirection. Si la demande contient un paramètre, le serveur doit confirmer qu’il s’agit d’une URL de redirection valide pour cette application. S’il n’y a pas de paramètre dans la requête et qu’une seule URL a été enregistrée, le serveur utilise l’URL de redirection précédemment enregistrée. Sinon, si aucune URL de redirection ne figure dans la requête et qu’aucune URL de redirection n’a été enregistrée, il s’agit d’une erreur.

Si le n’est pas valide, le serveur doit rejeter la demande immédiatement et afficher l’erreur à l’utilisateur plutôt que de le rediriger vers l’application.

URL de redirection non valide

Si le serveur d’autorisation détecte un problème avec l’URL de redirection, il doit informer l’utilisateur du problème au lieu de le rediriger. L’URL de redirection peut être invalide pour un certain nombre de raisons, notamment :

  • le paramètre d’URL de redirection est manquant
  • le paramètre d’URL de redirection n’était pas valide, Par exemple, s’il s’agit d’une chaîne qui n’est pas analysée en tant qu’URL
  • ,
  • l’URL de redirection ne correspond pas à l’une des URL de redirection enregistrées pour l’application

Dans ces cas, le serveur d’autorisation doit afficher une erreur à l’utilisateur l’informant du problème. Le serveur ne doit pas rediriger l’utilisateur vers l’application. Cela permet d’éviter ce que l’on appelle une « attaque de redirection ouverte ». Le serveur ne doit rediriger l’utilisateur vers l’URL de redirection que si celle-ci a été enregistrée.

Autres erreurs

Toutes les autres erreurs doivent être gérées en redirigeant l’utilisateur vers l’URL de redirection avec un code d’erreur dans la chaîne de requête. Consultez la section Réponse d’autorisation pour plus de détails sur la façon de répondre avec une erreur.

S’il manque le paramètre dans la requête ou si la valeur de ce paramètre est autre que ou , le serveur peut renvoyer une erreur.

Depuis le Le serveur d’autorisation peut demander aux clients de spécifier s’ils sont publics ou confidentiels, il peut rejeter les demandes d’autorisation qui ne sont pas autorisées. Par exemple, si le client a spécifié qu’il s’agissait d’un client confidentiel, le serveur peut rejeter une demande qui utilise le type d’octroi de jeton. Lorsque vous refusez pour cette raison, utilisez le code d’erreur .

Le serveur d’autorisation doit rejeter la demande s’il existe des valeurs d’étendue qu’il ne reconnaît pas. Dans ce cas, le serveur peut rediriger vers l’URL de rappel avec le code d’erreur.

Le serveur d’autorisation doit stocker la valeur « state » (et les valeurs PKCE) de cette demande afin de l’inclure dans la réponse d’autorisation. Le serveur ne doit pas modifier ou faire d’hypothèses sur ce que contient la valeur d’état, car c’est purement pour le bénéfice du client.