Unterschied zwischen dem "Kennwortfluss des Ressourceneigentümers" und dem "Clientberechtigungsfluss"
Den Unterschied zwischen dem "Resource Owner Password Flow" und die "Client-Anmeldeinformationen Flow" scheint mir unklar. Der ehemalige scheint uns die Kennwort-Anmeldeinformationen für den server für die überprüfung, während der letztere hat mit dem server authentifizieren, die in gewisser Weise auch, aber die spec nicht angeben, welche Methode hier verwendet wird. Ist dieser Fluss entwickelt für cookie-sessions? Die Skillung nicht wirklich einen klaren Anwendungsfall.
Aus der OAuth-2.0-spec:
+---------+ +---------------+
| | | |
| |>--(A)- Client Authentication --->| Authorization |
| Client | | Server |
| |<--(B)---- Access Token ---------<| |
| | | |
+---------+ +---------------+
Figure 6: Client Credentials Flow
und
+----------+
| 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
InformationsquelleAutor der Frage ln e | 2014-02-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die client-Anmeldeinformationen flow erfordert nur die client_id und client_secret. Besitzer der Ressource flow erfordert das Passwort des Benutzers.
Die client-Anmeldeinformationen flow ermöglicht einer Anwendung, um eine token-w/out den Kontext des Benutzers.
InformationsquelleAutor der Antwort user3287829
Ein gutes Beispiel dafür wäre die folgende:
Nehme an, du bist ein Statistik-Firma namens AllStats, hat seine eigene user-base, wo jeder Benutzer hat seinen eigenen Benutzernamen und Passwort. AllStats hat seine eigene bestehende website, die dogfoods eigene API. Allerdings AllStats will nun den release einer mobilen app.
Da die mobile app wird von einem 1st-party-Anwendung (siehe: entwickelt von AllStats), der Resource Owner Password Fluss macht eine Menge Sinn. Sie möchten, dass der Benutzer einen Bildschirm (Benutzername, Kennwort), fließt mit der app statt treten Sie über einen auth-server (und dann wieder zurück in die app). Die Benutzer Vertrauen in die Anwendung, wenn Sie geben Sie Ihren Benutzernamen/Passwort, weil es ein 1st-party-app.
Ich schaue es gerne an den Resource Owner Password Fließen, wie ein Fluss, der 1st-party-app-Entwickler verwenden würde, in der Erwägung, dass die Client-Anmeldeinformationen Strömung eine Strömung, die 3rd-party-app-Entwickler nutzen würde.
Vorstellen, wenn die Facebook-app notwendig, die Sie verwenden die Client-Anmeldeinformationen Flow statt nur präsentieren Sie sich mit einem Benutzernamen/Passwort-Formular. Scheint ein wenig seltsam, ja?
Wenn nun stellen Sie sich vor Sie laden ein 3rd-party-app hatte Facebook-integration. Ich könnte mir vorstellen, dass Sie (und die meisten Menschen) wäre sehr misstrauisch, wenn die app Sie dazu auffordert für eine Benutzername - /Kennwort-anstelle der Verwendung der Client-Credential Flow-UI.
FWIW, dies ist nicht zu sagen, dass 1st-party-apps nicht verwenden, wird der Client Credential Flow. Aber eher, um zu versuchen und zeichnen ein real-world-Szenario (und die Allgemeine Generalisierung) bei der Resource Owner Password Flow verwendet werden würde.
InformationsquelleAutor der Antwort StephenPAdams
Neben user3287829 Antwort. Ich will Folgendes hinzufügen.
Als RFC sagte über die Client-Berechtigung erteilen.
Den client registriert werden muss, ist der in der authorization server im Voraus. und
Authorization
umfasst die client-Anmeldeinformationen, die vom server authentifiziert werden.InformationsquelleAutor der Antwort Joe.wang
darüber hinaus in Bezug auf die überwachung, Ressourcen-Eigentümer ist der bessere Weg, da kann man identifizieren, indem access_token, die bestimmten Benutzer ruft Ihren api, durch die client-Anwendung, während client_credential identifiziert nur die Anwendung " client
InformationsquelleAutor der Antwort Eduardo Fabricio