Wie widerrufe ich von Amazon Cognito ausgestellte Aktualisierungstoken?

Lesedauer: 4 Minute
0

Ich möchte APIs oder Endpunkte verwenden, um von Amazon Cognito generierte Aktualisierungstoken zu widerrufen.

Auflösung

Sie können APIs und Endpunkte verwenden, um von Amazon Cognito generierte Aktualisierungstoken zu widerrufen.

**Hinweis:**Sie können Aktualisierungstoken in Echtzeit widerrufen, sodass diese Aktualisierungstoken keine Zugriffstoken generieren können.

Voraussetzungen für den Widerruf von Aktualisierungstoken

Aktivieren Sie die Tokensperrung für einen App-Client, um die von diesem App-Client ausgegebenen Aktualisierungstoken zu widerrufen. Der Parameter EnableTokenRevocation ist standardmäßig aktiviert, wenn Sie einen neuen Amazon Cognito-Benutzerpool-Client erstellen. Bevor Sie ein Token für einen vorhandenen Benutzerpool-Client widerrufen können, aktivieren Sie die Tokensperrung innerhalb des UpdateUserPoolClient-API-Vorgangs. Schließen Sie die aktuellen Einstellungen Ihres App-Clients ein und setzen Sie den Parameter EnableTokenRevocation auf true.

Wenn Sie die Token-Sperreinstellungen aktivieren, werden die Claims origin_jti und jti zu den Zugriffs- und ID-Token hinzugefügt.

  • Der jti-Claim bietet eine eindeutige Kennung für JSON Web Tokens (JWTs).
  • Der jti-Claim wird verwendet, um zu verhindern, dass die JWTs wiederholt werden.
  • Der jti-Wert ist eine Zeichenfolge, bei der zwischen Groß- und Kleinschreibung unterschieden wird.
  • Wenn der REFRESH_TOKEN-Authentifizierungsablauf verwendet wird, um neue Zugriffs- und ID-Token zu generieren, haben die neuen Zugriffs- und ID-Token denselben Origin_jti-Claim. Die Claims von jti sind unterschiedlich.

Weitere Informationen finden Sie unter Aktivieren des Tokenwiderrufs und Verwenden von Tokens mit Benutzerpools.

Erwartete Ergebnisse des Widerrufs von Aktualisierungstoken

Informationen darüber, was zu erwarten ist, wenn Sie Aktualisierungstoken widerrufen, einschließlich der Auswirkungen auf Zugriffstoken und JWTs, finden Sie unter Widerrufen von Token und RevokeToken.

Hinweis: Weitere Informationen zu JWTs finden Sie unter Verifizieren eines JSON-Web-Tokens.

Verwendung des RevokeToken-API-Aufrufs zum Widerruf von Aktualisierungstoken

Das zu widerrufende Aktualisierungstoken, die App-Client-ID und das Client-Geheimnis sind erforderliche Parameter, um dieRevokeToken API aufzurufen.

Hinweis: Das Client-Geheimnis ist nur erforderlich, wenn die Client-ID ein Geheimnis enthält.

Syntax der Anfrage:

{
  "ClientId": "string",
  "ClientSecret": "string",
  "Token": "string"
}

Beispiel für einen AWS Command Line Interface (AWS CLI)-Befehl:

Hinweis: Ersetzen Sie das Token <value> mit Ihren Token-Informationen. Ersetzen Sie die** Client-ID <value>** mit Ihrer Client-ID. Ersetzen Sie das Client-Geheimnis <value> mit dem Geheimnis Ihres App-Clients.

aws cognito-idp revoke-token
--token <value>
--client-id <value>
--client-secret <value>

Hinweis: Wenn Sie beim Ausführen von AWS-CLI-Befehlen Fehler erhalten, stellen Sie sicher, dass Sie die neueste Version der AWS-CLI verwenden.

Beispiel für einen Curl-Befehl:

Hinweis: Ersetzen Sie**<region>** mit Ihrer AWS-Region. Ersetzen Sie**<refresh token>** mit Ihren Token-Informationen. Ersetzen Sie**<client-id>** mit Ihrer Client-ID.

awscurl \
-v \
-X POST \
--service cognito-idp \
--region <region> \
-H 'X-Amz-Target: AWSCognitoIdentityProviderService.RevokeToken' \
-H 'Content-Type: application/x-amz-json-1.1' \
-d '{"ClientId": "<client-id>", "Token": "<refresh-token>"}' \
https://cognito-idp.<region>.amazonaws.com

Verwendung des Widerrufsendpunkts zum Widerrufen von Aktualisierungstoken

Der Endpunkt /oauth2/revoke ist verfügbar, nachdem Sie Ihrem Benutzerpool eine Domain hinzugefügt haben. Nachdem der Endpunkt die Token gesperrt hat, können Sie die widerrufenen Token nicht verwenden, um auf die APIs zuzugreifen, die Amazon Cognito-Token authentifizieren. Informationen zum Endpunkt /oauth2/revoke, einschließlich Anforderungsparametern, finden Sie unter Revoke endpoint.

Beispiel 1: Widerrufen Sie das Token mit einem App-Client ohne App-Geheimnis:

Hinweis: Ersetzen Sie**<region>** mit Ihrer AWS-Region. Ersetzen Sie**<refresh token>** mit Ihren Aktualisierungstoken-Informationen. Ersetzen Sie**<client-id>** mit Ihrer Client-ID.

POST /oauth2/revoke HTTP/1.2
    Host: https://mydomain.auth.<region>.amazoncognito.com
    Accept: application/json
    Content-Type: application/x-www-form-urlencoded
    token=<refresh token>&
    client_id=<client-id>

Beispiel 2: Widerrufen Sie das Token mit einem App-Client mit App-Geheimnis:

POST /oauth2/revoke HTTP/1.2
    Host: https://mydomain.auth.<region>.amazoncognito.com
    Accept: application/json
    Content-Type: application/x-www-form-urlencoded
    Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
    token=<refresh token>

Weitere Informationen zum Einrichten eines Autorisierungsheaders finden Sie unter Wie behebe ich das Problem „Der geheime Hash für den Client kann nicht verifiziert werden <client-id>„ Fehler aus meinem Benutzerpool?

Endpunktfehler

Weitere Informationen zu Endpunktfehlern finden Sie unter Endpunkt widerrufen und lesen Sie die Informationen unter Antwort auf Sperrfehler.

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr