トークンの取り消し - Amazon Cognito

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

トークンの取り消し

AWS API を使用して、ユーザーの更新トークンを取り消すことができます。更新トークンを取り消すと、その更新トークンによってそれまでに発行されたすべてのアクセストークンが無効になります。ユーザーに発行されたその他の更新トークンは影響を受けません。

注記

JWT トークンは、トークンが作成されたときに割り当てられた署名と有効期限を持つ自己完結型トークンです。取り消されたトークンは、トークンを必要とする Amazon Cognito API コールでは使用できません。ただし、JWT ライブラリを使用してトークンの署名と有効期限が検証された場合は、引き続き使用が可能です。

トークンの取り消しが有効化されているユーザープールクライアント用の更新トークンは、取り消すことが可能です。トークンの取り消しは、新しいユーザープールクライアントの作成時にデフォルトで有効になります。

トークンの取り消しを有効にする

既存のユーザープールクライアントのトークンを取り消す前に、トークンの取り消しを有効にする必要があります。または AWS API を使用して、 AWS CLI 既存のユーザープールクライアントのトークン失効を有効にできます。これを行うには、aws cognito-idp describe-user-pool-client CLI コマンドまたは DescribeUserPoolClient API 操作を呼び出して、アプリクライアントから現在の設定を取得します。次に、または UpdateUserPoolClient CLI コマンドaws cognito-idp update-user-pool-client API オペレーションを呼び出します。アプリクライアントの現在の設定を含め、EnableTokenRevocation パラメータを true に設定します。

AWS Management Console、、 AWS CLIまたは AWS API を使用して新しいユーザープールクライアントを作成すると、トークンの失効がデフォルトで有効になります。

トークンの取り消しを有効にした後は、Amazon Cognito JSON ウェブトークンに新しいクレームが追加され、アクセストークンと ID トークンに origin_jtijti クレームが追加されます。これらのクレームにより、アプリケーションクライアントのアクセストークンと ID トークンのサイズが大きくなります。

トークン失効を有効にしてアプリケーションクライアントを作成または変更するには、 CreateUserPoolClientまたは UpdateUserPoolClient API リクエストに次のパラメータを含めます。

"EnableTokenRevocation": true

トークンを取り消す

CLI コマンドなど、RevokeTokenAPI aws cognito-idp revoke-token リクエストを使用して更新トークンを取り消すことができます。エンドポイントの取り消し を使用してトークンを取り消すこともできます。このエンドポイントは、ユーザープールにドメインを追加した後で利用可能になります。取り消しエンドポイントは、Amazon Cognito がホストするドメイン、あるいは独自のカスタムドメインの両方で使用できます。

注記

更新トークンを取り消すリクエストには、そのトークンを取得するために使用したクライアント ID を含める必要があります。

次は、RevokeToken API リクエストの例の本文です。

{ "ClientId": "1example23456789", "ClientSecret": "abcdef123456789ghijklexample", "Token": "eyJjdHkiOiJKV1QiEXAMPLE" }

次は、カスタムドメインのユーザープールの /oauth2/revoke エンドポイントに対する cURL リクエストの例です。

curl --location 'auth.mydomain.com/oauth2/revoke' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'Authorization: Basic Base64Encode(client_id:client_secret)' \ --data-urlencode 'token=abcdef123456789ghijklexample' \ --data-urlencode 'client_id=1example23456789'

RevokeToken オペレーションと /oauth2/revoke エンドポイントには、アプリケーションクライアントにクライアントシークレットがある場合を除き、追加の認証は必要ありません。