Oauth2, - Bereiche und Benutzer-Rollen
Ich eine Frage Stelle konzeptionell hier wie ich versuche zu verstehen, die Beziehung zwischen den Bereichen und Benutzer-Rollen in eine OAuth2-basierten system.
Als ich die Umsetzung einer API, ich soll der Zugriff auf bestimmte Ressourcen durch die Verwendung von scopes auf die Ressourcen. Ich verstehe die Nutzung von access-Token auf Anfrage Ressourcen, und ich glaube, mein Verständnis richtig zu sein, dass Sie geben Sie Ihre Bereich(s) bei der Beantragung der Zugangs-token.
Was, ich bin nicht völlig sicher ist, wie die Einschränkung des scopes funktionieren würde, basierend auf spezifischen Rollen, die ein Benutzer authentifiziert ist. Nehmen wir an, Bob ist ein admin und Sue ist ein normaler Benutzer. Wir haben einige Ressourcen, die geschützt durch eine is_admin Umfang. Was hält Sue von der Beantragung (und empfangen) is_admin Umfang in Ihren access token?
Ich bin denken, dass was passieren sollte ist die folgende:
- Bob authentifiziert.
- Bob ' s Rollen sah sich nach seinen Authentifizierung abgeschlossen ist. Seine "admin" - Rolle hat die "is_admin" Zielfernrohr.
- Bob bittet um ein Zugangs-token, mit der alle Bereiche erfasst, die aus seinen verschiedenen Rollen
- Bob ist automatisch gegeben, diese Bereiche für seine access-token
Ist es bis zu meinem Aufruf der app zu erzwingen, nur senden Fragen für den Umfang Bobs muss? Oder gibt es etwas, das mir fehlt es mit Bezug auf die Bereiche?
Kann mir bitte jemand mich aufklären mit einigen einfachen Beispielen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
In OAuth2, gibt es folgende Rollen:
Verstehen, OAuth2, ist es notwendig, darüber nachzudenken, wie ein Protokoll für den Zugriff auf Rechte-delegation aus einer Quelle, die Eigentümer zu einer Client-Anwendung. Also die Haupt-use-case ist: die Client-Anwendung zugreifen möchte, die Ressourcen-server. Um das zu tun, muss die Clientanwendung einen access token ausgestellt von der Auth-provider und autorisiert durch den Resource owner (wird authentifiziert, indem Sie die Auth-provider).
In Ihrer Beschreibung, die Client-Anwendung fehlt. Nehmen wir an, es ist eine frontend-Anwendung für Ihre API. Es muss ein access-token mit Bereichen
admin-user-scope
oderregular-user-scope
. So ist es umleiten Benutzer (Ressource owner), um die Auth-provider anfordert, beide Bereiche.Den Auth-provider authentifiziert den Benutzer und fordert ihn/Sie für eine Zustimmung zur Gewährung von einigen der angeforderten Bereiche, die der Client-Anwendung. Die Auth-provider können entfernen Sie einige Bereiche - zum Beispiel die
admin-user-scope
für nicht-admins. Die Auth-provider kann dem Nutzer die Möglichkeit zu entfernen, einige Bereiche zu.Die Client-Anwendung erhält ein access-token (oder grant) mit Bereichen in einem redirect-URI. Wenn die gewährten Bereiche unterscheiden sich von den angefragten Bereiche, die Auth-provider sendet eine Liste der gewährten Spielräume (die
scope
URL-parameter) zusammen mit der access-token, so dass die Client-Anwendung weiß, welche Aktionen Sie ausführen können mit der access-token.Dann die client-Anwendung kann auf die Ressource zugreifen, server und Resource-server stellt sicher, dass die bereitgestellten access-token enthält die erforderlichen Bereiche. Die Resource-server verwendet die OAuth2 Introspektion Endpunkt zur Validierung der tokoen und eine Liste seiner Bereiche.