J'essaie d'implémenter le flux informations d'identification du propriétaire de la ressource et du mot de passe à partir de la spécification OAuth 2. Je ne parviens pas à 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 que cela devrait être
type de jeton OBLIGATOIRE. Le type du jeton émis comme décrit dans 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 pour générer un appel au serveur d'autorisations, qui représente essentiellement la manière dont un access_token sera généré et présenté pour les appels d'accès aux ressources. Vous fournissez le type de jeton dans l'appel de génération de jeton d'accès à un serveur d'autorisation.
Si vous donnez Bearer
(valeur par défaut pour la plupart des implémentations), un _access_token
_ est généré et vous est renvoyé. Le porteur peut être simplement compris comme "donne accès au porteur de ce jeton". Un jeton valide et aucune question posée. Par contre, si vous choisissez Mac
et _sign_type
_ (par défaut _hmac-sha-1
_ sur la plupart des implémentations), le jeton d'accès est généré et conservé en tant qu'attribut dans le gestionnaire de clés, et un secret crypté est renvoyé en tant que _access_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 de OAuth.
N'importe qui peut définir "type de jeton" en tant qu'extension OAuth 2.0, mais le type de jeton "porteur" est actuellement le plus courant.
https://tools.ietf.org/html/rfc675
Fondamentalement, c'est ce que Facebook utilise. Leur mise en œuvre est cependant un peu en retard par rapport à la dernière spécification.
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 continue à changer rapidement.
Informations d'en-tête Mozilla MDN
Jeton au porteur
Un jeton de sécurité avec le bien que toute partie en possession du jeton (un "porteur") peut utiliser le jeton de la manière que toute autre partie en possession du jeton peut. L'utilisation d'un jeton porteur ne nécessite pas qu'un porteur prouve la possession de matériel de clé cryptographique (preuve de possession).
Le jeton porteur 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 génère un jeton support (jeton d'actualisation) que vous pouvez ensuite utiliser pour obtenir un jeton d'accès.
Le jeton de 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 l'accès et du client auquel votre application a accès.