2017-06-09 1 views
0

Wenn ich eine /token Anfrage gefolgt von einer /authorize Anfrage für Open Id Connect Server sende, weiß ich, dass es erforderlich ist, scope=openid für /authorize Anruf einzustellen. Meine Frage ist, ist es erforderlich für /token Anruf auch?In OIDC ist Scope = Openid nicht für/Token-Aufruf erforderlich?

In OIDC spec sagt nichts darüber.

3.1.3.1. Token anfordern

Ein Kunde macht einen Token Antrag stellt seine Genehmigung erteilen (in Form eines Autorisierungscode) mit dem Token-Endpunkt mit dem grant_type Wert authorization_code, wie in Abschnitt 4.1.3 von OAuth 2.0 beschrieben [ RFC6749]. Wenn der Kunde ein Client-Vertrauliche, dann Sie muss die Token Endpoint Authentifizierung unter Verwendung des Authentifizierungs- Verfahren zu seinen client_id registriert, wie in Abschnitt 9 beschrieben

der Client die Parameter an den Token-Endpunkt sendet die HTTP POST Methode und die Form Serialisierung, nach Abschnitt 13.2, wie beschrieben in Abschnitt 4.1.3 von OAuth 2.0 [RFC6749].

Wenn das der Fall ist, wie funktioniert /token Endpunkt Implementierung erkennen, ob eine Anforderung ODIC oder OAuth2 ist? Woher weiß es, ob es eine id_token senden sollte oder nicht?

Antwort

1

Die Token-Anfrage wird mit einer sogenannten Zuteilung durchgeführt, die der Client typischerweise (und in Ihrem Fall) einen Autorisierungscode vorlegen muss. In einem bestimmten Kontext wird eine Berechtigung erteilt, und der Autorisierungsserver verfolgt diesen Kontext.

In Ihrem Fall würde der Autorisierungsserver verfolgen, dass der Code auf einer Autorisierungsanfrage ausgegeben wurde, die den Bereich "openid" enthielt, und dieser Bereich wurde vom Benutzer gewährt. Wenn also der Code am Token-Endpunkt eingelöst wird, ist in der Antwort ein id_token enthalten.

+0

Verstanden. Vielen Dank. – Bee

0

In OpenID Connect Core 1.0 incorporating errata set 1 Abschnitt: 3.1.2.1. Authentifizierungs Anfrage

OpenID Connect verwendet folgende OAuth 2.0 Anforderungsparameter mit der Autorisierungscode Fluss:

Umfang ERFORDERLICH. OpenID Connect-Anfragen MÜSSEN den Openid-Gültigkeitsbereich enthalten. Wenn der openid-Bereichswert nicht vorhanden ist, ist das Verhalten völlig unspezifiziert. Andere Gültigkeitsbereiche können vorhanden sein. Scope-Werte , die von einer Implementierung nicht verstanden werden, SOLLTEN ignoriert werden. Siehe Abschnitte 5.4 und 11 für zusätzliche Bereichswerte, die in dieser Spezifikation definiert sind.

Das „muss die openid Umfang Wert enthalten“, die der entscheidende Faktor ist, dass dies eine OpenID Connect Anfrage ist.

Es gibt nichts in der Token-Anforderung, die sich von OAuth 2.0 unterscheidet. Die Authentifizierungsanforderung, die der erste ist, ruft den Autorisierungsendpunkt mit dem Gültigkeitsbereich = openid auf, und der Berechtigungscode, der zurückgegeben wird, ist die Berechtigung zum Erhalten des Zugriffstokens und des ID-Tokens. Wie in 3.1.3.3 angegeben. Erfolgreiche Tokenantwort

Nach Erhalt und Validierung einer gültigen und autorisierten Tokenanforderung vom Client gibt der Autorisierungsserver eine erfolgreiche Antwort zurück, die ein ID-Token und ein Access Token enthält.

+0

Die Frage bezieht sich NICHT auf die Authentifizierungsanforderung, sondern auf die Tokenanforderung. – Bee

Verwandte Themen