Amazon Cognito が発行した更新トークンを取り消すにはどうすればよいですか?

所要時間2分
0

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>「ユーザープールからのエラー?

エンドポイントエラー

エンドポイントエラーの詳細については、「エンドポイントの取り消し」を参照して、「失効エラーレスポンス」の情報を確認してください。

AWS公式
AWS公式更新しました 1年前
コメントはありません