Liberty-Repository[8.5.5.4 oder höher]

Berechtigungsendpunkt für OpenID Connect aufrufen

In OpenID Connect führt der Berechtigungsendpunkt die Authentifizierung und die Berechtigung eines Benutzers durch.

Vorbereitende Schritte

Wenn der Berechtigungsendpunkt über eine in den Browser integrierte Clientanwendung oder eine in einer Scriptsprache (z. B. JavaScript) implementierte Clientanwendung gestartet wird, ist es nicht erforderlich, einen Liberty Profile-Server als OpenID Connect-Client zu konfigurieren.

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 Profile-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
Anmerkung: In diesem Beispiel ist 443 der erwartete SSL-Port des OP.

Vorgehensweise

  1. Bereiten Sie eine HTTP-GET- oder -POST-Anforderung vor, die die folgenden erforderlichen und empfohlenen Parameter enthält:
    • scope: (Erforderlich) OpenID Connect-Anforderungen müssen den Geltungsbereichswert openid enthalten. Es können auch andere Geltungsbereiche vorhanden sein.
    • response_type: (Erforderlich) Legt den zu verwendenden Berechtigungsverarbeitungsablauf fest. Bei Verwendung des Berechtigungscodeablaufs lautet dieser Wert code. Bei Verwendung des impliziten Ablaufs lautet dieser Wert id_token token oder id_token. Es wird kein Zugriffstoken zurückgegeben, wenn der Wert id_token ist.
    • client_id: (Erforderlich) Die Client-ID, die beim OpenID Connect-Provider gültig ist.
    • redirect_uri: (Erforderlich) Die Umleitungs-URI, an die die Antwort gesendet werden wird. Dieser Wert muss genau mit einem der Umleitungs-URI-Werte für den registrierten Client beim OP übereinstimmen.
    • state: (Empfohlen) Nicht transparenter Wert, der verwendet wird, um den Status zwischen der Anforderung und dem Callback zu verwalten.
    • nonce: (Für den impliziten Ablauf erforderlich) Zeichenfolgewert, der verwendet wird, um eine Clientsitzung einem ID-Token zuzuordnen und Attacken durch Nachrichtenaufzeichnung und -wiederholung zu mindern.

    Sie können weitere Parameter in die Anforderung einschließen. Eine Beschreibung von anderen unterstützten Parametern finden Sie in der Spezifikation "OpenID Connect Core 1.0".

    Die ausschließliche Verwendung eines id_token als Antworttyp wird nicht unterstützt. Bei Verwendung des impliziten Ablaufs muss immer id_token token verwendet werden, und es wird dann ein Zugriffstoken zurückgegeben.

  2. Senden Sie die GET- oder POST-Anforderung an die Berechtigungsendpunkt-URL.

Ergebnisse

Nachdem Sie diese Schritte ausgeführt haben, haben Sie eine gültige HTTP-Anforderung, die an den Berechtigungsendpunkt gesendet wird. Der Berechtigungsendpunkt gibt eine Antwort zurück, wie im Abschnitt "Beispiele" beschrieben.

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

Die folgenden Beispiele zeigen Formen des Berechtigungscodeablaufs und des impliziten Codeablaufs.

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:443/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:443/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:443/oidcclient/redirect/client01
     code=SplxlOBeZQQYbYS6WxSbIA
     &state=af0ifjsldkj

Beispielantwort vom Berechtigungsendpunkt im impliziten Ablauf:

 HTTP/1.1 302 Found
 Location: https://server.example.com:443/oidcclient/redirect/client01
     access_token=SlAV32hkKG
     &token_type=Bearer 		
     &id_token=eyJ0 ... NiJ9.eyJ1c ... I6IjIifX0.DeWt4Qu ... ZXso 		
     &expires_in=3600 		
     &state=af0ifjsldkj

Symbol das den Typ des Artikels anzeigt. Taskartikel

Nutzungsbedingungen für Information Center | Feedback


Symbol für Zeitmarke Letzte Aktualisierung: 25.08.2015
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=twlp_oidc_auth_endpoint
Dateiname: twlp_oidc_auth_endpoint.html