Que sont les jetons de support et token_type dans OAuth 2?


140

J'essaie d'implémenter le flux d' informations d'identification de propriétaire de ressource et de mot de passe à partir de la spécification OAuth 2. J'ai du mal à comprendre la token_typevaleur renvoyée avec une réponse valide. Dans la spécification, tous les exemples montrent "token_type":"example"mais dit que cela devrait être

token_type REQUIS. Le type de jeton émis comme décrit dans la section 7.1 . La valeur est insensible à la casse.

Quelqu'un pourrait-il me l'expliquer?

Réponses:


158

token_typeest un paramètre dans Access Token generate appel au serveur d'autorisation qui représente essentiellement la façon dont un access_token sera généré et présenté pour les appels d'accès aux ressources. Vous fournissez token_type dans l'appel de génération de jeton d'accès à un serveur d'autorisation.

Si vous donnez Bearer(Par défaut sur la plupart des implémentations), un access_tokenest généré et vous est renvoyé. Le porteur peut être simplement compris comme «donner accès au porteur de ce jeton». Un jeton valide et aucune question posée. D'autre part, si vous choisissez Macet sign_type(par défaut hmac-sha-1sur la plupart des implémentations), le jeton d'accès est généré et conservé comme secret dans Key Manager en tant qu'attribut, et un secret chiffré est renvoyé commeaccess_token

Oui, vous pouvez utiliser votre propre implémentation de token_type, mais cela n'a peut-être pas beaucoup de sens car les développeurs devront suivre votre processus plutôt que les implémentations standard d'OAuth.


28
Je trouve que "donner accès au porteur de ce jeton" facilite la compréhension. C'est l'équivalent de l'émission d'un chèque «donner de l'argent au porteur du chèque».
NVM

@NVM Merci pour la suggestion, c'est certainement logique. J'ai mis à jour la même chose.
Abhishek Tyagi

33

N'importe qui peut définir "token_type" comme une extension OAuth 2.0, mais actuellement le type de jeton "porteur" est le plus courant.

https://tools.ietf.org/html/rfc6750

En gros, c'est ce que Facebook utilise. Leur mise en œuvre est cependant un peu en retard par rapport aux dernières spécifications.

Si vous voulez être plus sécurisé que Facebook (ou aussi sécurisé que OAuth 1.0 qui a "signature"), vous pouvez utiliser le type de jeton "mac".

Cependant, ce sera difficile car les spécifications mac évoluent toujours rapidement.

https://tools.ietf.org/html/draft-ietf-oauth-v2-http-mac-05


14

Informations d'en-tête Mozilla MDN

Jeton au porteur
Un jeton de sécurité avec la propriété que toute partie en possession du jeton (un «porteur») peut utiliser le jeton de toutes les manières que toute autre partie en possession de celui-ci peut utiliser. L'utilisation d'un jeton au porteur n'exige pas que le porteur prouve la possession du matériel de clé cryptographique (preuve de possession).

Le jeton de support ou le jeton d'actualisation est créé pour vous par le serveur d'authentification. Lorsqu'un utilisateur authentifie votre application (client), le serveur d'authentification va alors générer pour votre Bearer Token (jeton d'actualisation) que vous pouvez ensuite utiliser pour obtenir un jeton d'accès.

Le jeton porteur est normalement une sorte de valeur cryptique créée par le serveur d'authentification, il n'est pas aléatoire, il est créé en fonction de l'utilisateur qui vous donne accès et du client auquel votre application a accès.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.