API またはエンドポイントを使用して、Amazon Cognito によって生成された更新トークンを取り消したいのですが。
解像度
API とエンドポイントを使用して、Amazon Cognito によって生成された更新トークンを取り消すことができます。
**メモ:**更新トークンをリアルタイムで取り消して、これらの更新トークンがアクセストークンを生成できないようにすることができます。
更新トークンを取り消すための前提条件
アプリクライアントのトークン失効を有効にして、そのアプリクライアントによって発行された更新トークンを取り消します。Amazon Cognito ユーザープールクライアントを新規作成すると、EnableTokenRevocation パラメータがデフォルトでオンになります。既存のユーザープールクライアントのトークンを取り消す前に、UpdateUserPoolClient API オペレーションでトークンの取り消しを有効にしてください。アプリクライアントからの現在の設定を含め、enableTokenRevocation パラメーターを** true **に設定します。
トークンの取り消し設定を有効にすると、origin\ _jti と** jti** のクレームがアクセストークンと ID トークンに追加されます。
- jti クレームは JSON Web Tokens (JWT) に固有の識別子を提供します。
- jti クレームは、JWT が再生されないようにするために使用されます。
- jti 値は大文字と小文字を区別する文字列です。
- REFRESH\ _TOKEN 認証フローを使用して新しいアクセストークンと ID トークンを生成すると、新しいアクセストークンと ID トークンのorigin\ _jti クレームは同じになります。jtiの主張は異なります。
詳細については、「トークンの取り消しを有効にする」 と「ユーザープールでのトークンの使用」を参照してください。
更新トークンを取り消した場合に期待される結果
アクセストークンや JWT への影響など、更新トークンを取り消すときに予想される内容については、「トークンの取り消し」 と「トークンを取り消す」を参照してください。
**メモ:**JWT の詳細については、「JSON Web トークンの検証」を参照してください。
RevokeToken API 呼び出しを使用して更新トークンを取り消す
取り消す更新トークン、アプリクライアント ID、およびクライアントシークレットは、RevokeToken API を呼び出すために必要なパラメーターです。
**メモ:**クライアントシークレットは、クライアント ID にシークレットがある場合にのみ必要です。
リクエスト構文:
{
"ClientId": "string",
"ClientSecret": "string",
"Token": "string"
}
AWS Command Line Interface (AWS CLI) コマンドの例:
メモ:トークンを交換**してください <value>**あなたのトークン情報で。**クライアント ID を置換 <value>**クライアントIDで。**クライアントシークレットを置換 <value>**アプリクライアントのシークレットで。
aws cognito-idp revoke-token
--token <value>
--client-id <value>
--client-secret <value>
**メモ:**AWS CLI コマンドの実行中にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください。
curl コマンドの例:
**メモ:置換<region>お使いの AWS リージョンで。置換<refresh token>あなたのトークン情報で。置換<client-id>**クライアント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
取り消しエンドポイントを使用して更新トークンを取り消す
/oauth2/revoke エンドポイントは、ユーザープールにドメインを追加すると使用可能になります。エンドポイントがトークンを取り消すと、取り消されたトークンを使用して Amazon Cognito トークンが認証する API にアクセスできなくなります。リクエストパラメータを含む** /oauth2/revoke** エンドポイントの詳細については、「Revoke エンドポイント」を参照してください。
例 1: アプリシークレットのないアプリクライアントでトークンを取り消す:
**メモ:置換<region>お使いの AWS リージョンで。置換<refresh token>更新トークン情報でで。置換<client-id>**クライアント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>
例 2: アプリシークレットを使用してアプリクライアントでトークンを取り消す:
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>
認証ヘッダーの設定については、「クライアントのシークレットハッシュを確認できない」 のトラブルシューティング方法をご覧ください <client-id>「ユーザープールからのエラー?
エンドポイントエラー
エンドポイントエラーの詳細については、「エンドポイントの取り消し」を参照して、「失効エラーレスポンス」の情報を確認してください。