Berechtigungsendpunkt für OpenID Connect aufrufen
In OpenID Connect führt der Berechtigungsendpunkt die Authentifizierung und die Berechtigung eines Benutzers durch.
Vorbereitende Schritte
Informationen zu diesem Vorgang
Der Berechtigungsendpunkt akzeptiert eine Authentifizierungsanforderung, die Parameter einschließt, die von den Spezifikationen vonOAuth 2.0 und OpenID Connect 1.0 definiert werden.
Im Berechtigungscodeablauf wird der Berechtigungsendpunkt für die Authentifizierung und die Berechtigung verwendet und gibt einen Berechtigungsgrant an den Client zurück. Dieser Berechtigungsgrant kann dann in einer Anforderung vom Client an den Tokenendpunkt übergeben werden. Der Client erhält dafür ein ID-Token, ein Zugriffstoken und ein Aktualisierungstoken. Im impliziten Ablauf führt der Berechtigungsendpunkt zwar noch die Authentifizierung und die Berechtigung durch, gibt aber in seiner Antwort auch ein ID-Token und ein Zugriffstoken direkt an den Client zurück. Es findet keine Interaktion mit dem Tokenendpunkt statt.
Ein Liberty-Server mit aktiviertem OpenID Connect hat unter der folgenden URL Zugriff auf den OpenID Connect-Berechtigungsendpunkt:
https://server.example.com:443/oidc/endpoint/<Providername>/authorize
Wenn Sie einen Proxy für den Zugriff auf OpenID Connect Provider (OP) verwenden müssen, muss der Wert, den Sie für eine beliebige auf OP bezogene URL-Eigenschaft eingeben, den Proxy-Host und Port und nicht den Host und Port des externen OP enthalten.
In den meisten Fällen können Sie den OP-Host und Port durch den Proxy-Host und Port ersetzen. Die URL, die Sie eingeben, muss für die RP und den Client (Browser oder Anwendung) sichtbar sein. Weitere Informationen darüber, wie Sie die richtige zu verwendende URL ermitteln, erhalten Sie von Ihrem Proxy-Administrator.
Der Client in diesem Beispiel erwartet, dass der SSL-Port auf 443 gesetzt ist.
Vorgehensweise
Ergebnisse
Der OpenID Connect-Provider versucht, den Benutzer zu authentifizieren und zu berechtigen, wenn er eine Anforderung vom Client erhält.
Wenn die Authentifizierung und die Berechtigung erfolgreich verlaufen, setzt der OpenID Connector-Provider im Berechtigungscodeablauf einen Berechtigungscode ab und schließt ihn als Parameter in eine OAuth 2.0-Berechtigungsantwort an den Client ab. Wenn die ursprüngliche Anforderung state enthalten hat, enthält die Berechtigungsantwort auch den genauen state-Wert, der in die ursprüngliche Anforderung aufgenommen wurde. Mit dem Format application/x-www-form-urlencoded werden die Parameter code und state als Abfrageparameter dem redirect_uri-Wert hinzugefügt, der in der Berechtigungsanforderung angegeben wurde.
Im impliziten Ablauf werden die folgenden Parameter bei erfolgreicher Authentifizierung und Berechtigung vom Berechtigungsendpunkt zurückgegeben.
- access_token: Zugriffstoken. Wird zurückgegeben, vorausgesetzt, der Wert für [response_type] in der ursprünglichen Anforderung ist nicht [id_token].
- token_type: OAuth 2.0-Tokentyp. Für OpenID Connect ist dieser Wert Bearer.
- id_token: ID-Token.
- state: Erforderlich, wenn in der Berechtigungsanforderung enthalten.
- expires_in: (Optional) Verfallszeit des Zugriffstokens in Sekunden seit Generierung der Antwort.
Diese Parameter werden der Fragmentkomponente des in der Berechtigungsanforderung angegebenen redirect_uri-Werts hinzugefügt und nicht als Abfrageparameter wie im Berechtigungscodeablauf.
Beispiel
Beispielanforderung für den Berechtigungscodeablauf:
GET /authorize?
response_type=code
&scope=openid profile email
&client_id=client01
&state=af0ifjsldkj
&redirect_uri=https://server.example.com:8020/oidcclient/redirect/client01 HTTP/1.1
Beispielanforderung für den impliziten Ablauf:
GET /authorize?
response_type=id_token token
&scope=openid profile
&client_id=client01
&state=af0ifjsldkj
&redirect_uri=https://server.example.com:8020/oidcclient/redirect/client01
&nonce=n-0S6_WzA2Mj HTTP/1.1
Beispielantwort vom Berechtigungsendpunkt im Berechtigungscodeablauf:
HTTP/1.1 302 Found
Location: https://server.example.com:8020/oidcclient/redirect/client01
code=SplxlOBeZQQYbYS6WxSbIA
&state=af0ifjsldkj
Beispielantwort vom Berechtigungsendpunkt im impliziten Ablauf:
HTTP/1.1 302 Found
Location: https://server.example.com:8020/oidcclient/redirect/client01
access_token=SlAV32hkKG
&token_type=Bearer
&id_token=eyJ0 ... NiJ9.eyJ1c ... I6IjIifX0.DeWt4Qu ... ZXso
&expires_in=3600
&state=af0ifjsldkj