Tokenendpunkt für OpenID Connect aufrufen

Im OpenID Connect-Berechtigungscodeablauf verwendet ein Client den Tokenendpunkt, um ein ID-Token, ein Zugriffstoken und ein Aktualisierungstoken abzurufen.

Vorbereitende Schritte

Wenn der Tokenendpunkt ü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-Server als OpenID Connect-Client zu konfigurieren.

Informationen zu diesem Vorgang

Der Tokenendpunkt akzeptiert eine Anforderung von dem Client, der einen Berechtigungscode einschließt, der vom Berechtigungsendpunkt an den Client ausgegeben wird. Wenn der Berechtigungscode validiert wird, werden die entsprechenden Token in einer Antwort an den Client zurückgegeben.

Der Tokenendpunkt wird nicht im impliziten Ablauf von OpenID Connect verwendet.

Ein Server mit Liberty mit aktiviertem OpenID Connect hat unter der folgenden URL Zugriff auf den OpenID Connect-Tokenendpunkt:

 https://server.example.com:443/oidc/endpoint/<Providername>/token
Fehler vermeiden: Wenn Sie einen Proxy für abgehende Anforderungen verwenden, beachten Sie, dass die OpenID Connect-RP keine Möglichkeit bereitstellt, Anforderungen automatisch über einen Proxy-Host weiterzuleiten.

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

  1. Bereiten Sie eine HTTP-POST-Anforderung mit den folgenden Parametern vor:
    • grant_type: Der Wert dieses Parameters muss authorization_code sein.
    • code: Der vom Berechtigungsendpunkt empfangene Berechtigungscode.

    Die Parameter müssen im Format application/x-www-form-urlencoded hinzugefügt werden.

  2. Übergeben Sie die Anforderung an die Tokenendpunkt-URL.

Ergebnisse

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

Wenn der OpenID Connect-Provider die vom Client empfangene Tokenanforderung validiert, gibt der OpenID Connect-Provider die Antwort "HTTP 200" mit einem JSON-Objekt im Format application/json an den Client zurück. Die Antwort enthält das ID-Token, das Zugriffstoken und das Aktualisierungstoken zusammen mit den folgenden zusätzlichen Parametern:

  • token_type: OAuth 2.0-Tokentyp. Für OpenID Connect ist dieser Wert Bearer.
  • expires_in: Ablaufzeit des Zugriffstokens in Sekunden seit Generierung der Antwort.

Für alle Antworten des Tokenendpunkts, die Token, geheime Schlüssel oder andere sensible Informationen enthalten, ist der Wert des Cache-Control-Headers auf no-store und der Wert des Pragma-Headers auf no-cache gesetzt.

.

Beispiel

Es folgen Beispiele für eine HTTP-POST-Anforderung und eine Antwort.

Beispielanforderung:

 POST /token HTTP/1.1
 Content-Type: application/x-www-form-urlencoded
 Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
     grant_type=authorization_code
     &code=SplxlOBeZQQYbYS6WxSbIA 		
     &redirect_uri=https%3A%2F%2Fclient.example.org%2Fcb

Beispielantwort:

 HTTP/1.1 200 OK
 Content-Type: application/json
 Cache-Control: no-store
 Pragma: no-cache
 {
     "access_token": "SlAV32hkKG",
     "token_type": "Bearer",
     "refresh_token": "8xLOxBtZp8",
     "expires_in": 3600,
     "id_token": "eyJ ... zcifQ.ewo ... NzAKfQ.ggW8h ... Mzqg"
 }

Symbol das den Typ des Artikels anzeigt. Taskartikel

Dateiname: twlp_oidc_token_endpoint.html