Différence entre les “Ressources Propriétaire de Flux de mots de Passe” et le “Client les informations d'Identification de Flux”
La différence entre les "Ressources Propriétaire de Flux de mots de Passe" et le "Client les informations d'Identification de Flux" ne semble pas clair pour moi. Le premier semble en avant le mot de passe des informations d'identification pour le serveur à des fins de vérification, tandis que les seconds ne s'authentifier auprès du serveur, d'une certaine façon aussi, mais la spec ne précise pas quelle méthode est utilisée ici. Est ce flux conçu pour les cookies de session? La spec n'est pas vraiment fournir un clair de cas d'utilisation.
OAuth 2.0 spec:
+---------+ +---------------+
| | | |
| |>--(A)- Client Authentication --->| Authorization |
| Client | | Server |
| |<--(B)---- Access Token ---------<| |
| | | |
+---------+ +---------------+
Figure 6: Client Credentials Flow
et
+----------+
| Resource |
| Owner |
| |
+----------+
v
| Resource Owner
(A) Password Credentials
|
v
+---------+ +---------------+
| |>--(B)---- Resource Owner ------->| |
| | Password Credentials | Authorization |
| Client | | Server |
| |<--(C)---- Access Token ---------<| |
| | (w/Optional Refresh Token) | |
+---------+ +---------------+
Figure 5: Resource Owner Password Credentials Flow
Vous devez vous connecter pour publier un commentaire.
Le client les informations d'identification de flux nécessite uniquement la client_id et client_secret. Le Propriétaire de la Ressource débit nécessite le mot de passe utilisateur.
Les informations d'identification du client débit permet à une application d'obtenir un jeton w/out le contexte de l'utilisateur.
Un bon exemple de ceci serait la suivante:
Supposons que vous êtes un statistiques de la société appelée AllStats qui dispose de sa propre base d'utilisateurs, où chaque utilisateur dispose de son propre nom d'utilisateur et mot de passe. AllStats a son propre site web qui dogfoods sa propre API. Cependant, AllStats veut maintenant sortir une application mobile.
Depuis l'application mobile sera une 1ère partie de l'application (voir: développé par AllStats), le Propriétaire de la Ressource Flux de mots de Passe fait beaucoup de sens. Vous aurez envie à l'utilisateur d'obtenir un écran (nom d'utilisateur, mot de passe) que les flux avec l'app au lieu de coups de pied sur un auth server (et puis de nouveau dans l'app). Les utilisateurs de confiance de l'application lorsqu'ils entrer leur nom d'utilisateur/mot de passe parce que c'est une 1ère partie app.
J'aime regarder le Propriétaire de la Ressource Flux de mots de Passe comme un flux de cette 1ère partie de l'app et les développeurs de l'utiliser, alors que le Client les informations d'Identification de Flux, un flux de 3ème partie, les développeurs d'applications serait de l'utiliser.
Imaginez si le Facebook app requis pour utiliser les informations d'Identification du Client Débit au lieu de simplement vous présenter avec un nom d'utilisateur/mot de passe formulaire. Semblerait un peu bizarre, non?
Maintenant, imaginez si vous téléchargez une 3ème partie app qui avait Facebook de l'intégration. J'imagine que vous (et la plupart des gens) serait très circonspect si l'application vous demande d'entrer un nom d'utilisateur/mot de passe au lieu d'utiliser les informations d'Identification du Client Débit de l'INTERFACE utilisateur.
FWIW, ce n'est pas à dire que la 1ère partie apps ne pas utiliser les informations d'Identification du Client Débit. Mais plutôt d'essayer et peindre un scénario réel (et l'ensemble de la généralisation) de quand les Ressources Propriétaire de Flux de mots de Passe serait utilisé.
Outre user3287829 de réponse. Je tiens à ajouter le suivant.
Comme le RFC dit à propos des informations d'Identification du Client de subvention.
Le client doit être enregistré dans le serveur d'autorisation à l'avance. et
Authorization
comprend les informations d'identification du client qui sera authentifié par le serveur.en outre, en termes d'audit, de ressources propriétaire est la meilleure façon de faire, parce que vous pouvez les identifier par access_token spécifiques de l'utilisateur est d'appeler votre api par le biais de l'application cliente, tout en client_credential identifie uniquement le client de l'application