Aller au contenu principal

6. Demande de Jeton (Token Request)

Le paramètre de demande de jeton authorization_details peut être utilisé pour spécifier les détails d'autorisation qu'un client souhaite que l'AS attribue à un jeton d'accès. L'AS vérifie si l'octroi sous-jacent (dans le cas des types d'octroi authorization_code, refresh_token, etc.) ou la politique du client (dans le cas du type d'octroi client_credentials) permet l'émission d'un jeton d'accès avec les détails d'autorisation demandés. Sinon, l'AS refuse la demande avec le code d'erreur invalid_authorization_details (similaire à invalid_scope).

6.1. Comparaison des Détails d'Autorisation (Comparing Authorization Details)

De nombreuses actions dans le protocole OAuth permettent à l'AS et au RS de prendre des décisions de sécurité en fonction de savoir si la demande demande "plus" ou "moins" qu'une demande précédente existante. Par exemple, lors du rafraîchissement d'un jeton, le client peut demander un nouveau jeton d'accès avec "moins de permissions" que ce qui avait été précédemment autorisé par le propriétaire de la ressource. Le jeton d'accès demandé transmettra les permissions réduites, mais l'autorisation précédente du propriétaire de la ressource n'est pas modifiée par de telles demandes.

Étant donné que la sémantique des champs dans authorization_details sera spécifique à l'implémentation d'une API donnée ou d'un ensemble d'API, il n'existe pas de mécanisme standardisé pour comparer deux demandes de détails d'autorisation arbitraires. Un AS ne devrait pas s'appuyer sur une simple comparaison d'objets dans la plupart des cas, car l'intersection de certains champs au sein d'une demande pourrait avoir des effets secondaires sur les droits d'accès accordés, en fonction de la façon dont l'API a été conçue et déployée. C'est un effet similaire aux valeurs de scope utilisées avec certaines API.

Lors de la comparaison d'une nouvelle demande à une demande existante, un AS peut utiliser les mêmes techniques de traitement que celles utilisées pour accorder la demande en premier lieu pour déterminer si un propriétaire de ressource doit autoriser la demande. Les détails de cette comparaison dépendent de la définition du type de demande d'autorisation et sont en dehors de la portée de cette spécification, mais des modèles courants peuvent être appliqués.