Que sont les Tokens Bearer et token_type dans OAuth 2?

J’essaie d’implémenter le stream Resource Owner & Password Credentials de la spécification OAuth 2. J’ai du mal à comprendre la valeur token_type qui est renvoyée avec une réponse valide. Dans la spécification, tous les exemples montrent "token_type":"example" mais dit qu’il devrait être

token_type REQUIRED. Le type du jeton émis comme décrit à la section 7.1 . La valeur est insensible à la casse.

Quelqu’un pourrait-il me l’expliquer?

token_type est un paramètre dans Access Token generate call to Authorization server qui représente essentiellement la façon dont un access_token sera généré et présenté pour les appels d’access aux ressources. Vous fournissez token_type dans l’appel de génération de jeton d’access à un serveur d’autorisation.

Si vous donnez Bearer (par défaut sur la plupart des implémentations), un access_token est généré et vous est renvoyé. Le porteur peut simplement être compris comme “donner access au porteur de ce jeton”. Un jeton valide et aucune question posée. D’autre part, si vous choisissez Mac et sign_type (par défaut, hmac-sha-1 sur la plupart des implémentations), le jeton d’access est généré et conservé comme secret dans Key Manager en tant qu’atsortingbut, et un secret chiffré est renvoyé en tant que access_token

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

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

Fondamentalement, c’est ce que Facebook utilise. Leur implémentation est un peu en retrait 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 la spécification Mac évolue encore rapidement.

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

Informations d’en-tête MDN Mozilla

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 toute manière que n’importe quelle autre partie en possession de ce jeton. L’utilisation d’un jeton porteur ne nécessite pas que le porteur prouve la possession de matériel de clé cryptographique (preuve de possession).

Le jeton de jeton ou d’actualisation de support est créé pour vous par le serveur d’authentification. Lorsqu’un utilisateur authentifie votre application (client), le serveur d’authentification va et génère pour vous un jeton porteur (jeton d’actualisation) que vous pouvez ensuite utiliser pour obtenir un jeton d’access.

Le Token Bearer est normalement une sorte de valeur cryptique créée par le serveur d’authentification, il n’est pas aléatoire car il est créé en fonction de l’utilisateur qui vous donne access et du client auquel votre application a access.