

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

# ユーザープール JSON ウェブトークン (JWT) の理解
<a name="amazon-cognito-user-pools-using-tokens-with-identity-providers"></a>

トークンは、アプリケーションが OIDC 認証の証明として使用し、リソースへのアクセスをリクエストできる認証のアーティファクトです。トークンの*クレーム*はユーザーに関する情報です。ID トークンには、ユーザー名、苗字、E メールアドレスなど、身元に関するクレームが含まれています。アクセストークンには、認証されたユーザーがサードパーティー API、Amazon Cognito ユーザーのセルフサービス API オペレーション、および [userInfo エンドポイント](userinfo-endpoint.md) にアクセスできる `scope` のようなクレームが含まれています。アクセストークンと ID トークンの両方に、ユーザープール内でのユーザーのグループメンバーシップを示す `cognito:groups` クレームが含まれています。ユーザープールグループの詳細については、「[ユーザープールにグループを追加する](cognito-user-pools-user-groups.md)」を参照してください。

Amazon Cognito には、新しいトークンの取得や既存のトークンの取り消しに使用できる更新トークンもあります。[トークンを更新](amazon-cognito-user-pools-using-the-refresh-token.md)して、新しい ID とアクセストークンを取得します。[トークンを取り消し](amazon-cognito-user-pools-using-the-refresh-token.md#amazon-cognito-identity-user-pools-revoking-all-tokens-for-user)て、更新トークンによって許可されているユーザーアクセスを取り消します。

Amazon Cognito は、[base64url](https://datatracker.ietf.org/doc/html/rfc4648#section-5) でエンコードされた文字列としてトークンを発行します 任意の Amazon Cognito ID またはアクセストークンを `base64url` からプレーンテキスト JSON にデコードできます。Amazon Cognito の更新トークンは暗号化されており、ユーザープールのユーザーと管理者に対して透過的ではなく、ユーザープールのみが読み取ることができます。

**トークンを使用した認証**  
ユーザーがアプリケーションにサインインすると、Amazon Cognito がログイン情報を検証します。ログインが正常に行われると、Amazon Cognito がセッションを作成し、認証されたユーザーの ID トークン、アクセストークン、および更新トークンを返します。これらのトークンを使用して、ダウンストリームのリソースや Amazon API Gateway などの API へのアクセス権をユーザーに付与できます。または、これらのトークンを他の AWS のサービスにアクセスするための一時的な AWS 認証情報と交換することができます。

![認証の概要](http://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/images/scenario-authentication-cup2.png)


**トークンの保存**  
アプリケーションでは、さまざまなサイズのトークンを保存する必要があります。トークンのサイズは、クレームの追加、エンコーディングアルゴリズムの変更、暗号化アルゴリズムの変更による理由（ただし、これらに限定されない）で変更される場合があります。ユーザープールでトークンの取り消しを有効にした場合も、Amazon Cognito が JSON ウェブトークンにクレームを追加するので、そのトークンのサイズは増加します。アクセストークンと ID トークンに対し、新たなクレーム `origin_jti` および `jti` が追加されます。トークンの取り消しの詳細については、「[トークンの取り消し](https://docs.aws.amazon.com/cognito/latest/developerguide/token-revocation.html)」を参照してください。

**重要**  
ベストプラクティスとして、アプリケーションのコンテキストにおけるすべての転送中と保管中のトークンを保護します。トークンには、アプリケーションのユーザーに関する個人識別情報、およびユーザープールで使用するセキュリティモデルに関する情報を含めることができます。

**トークンをカスタマイズする**  
Amazon Cognito からアプリに渡すアクセストークンと ID トークンをカスタマイズできます。[トークン生成前の Lambda トリガー](user-pool-lambda-pre-token-generation.md)では、トークンクレームを追加、変更、および抑制できます。トークン生成前トリガーは、Amazon Cognito からデフォルトのクレームセットを送信する先の Lambda 関数です。クレームには、OAuth 2.0 スコープ、ユーザープールグループのメンバーシップ、ユーザー属性などが含まれます。この関数は、必要に応じてランタイムに変更を加え、更新したトークンクレームを Amazon Cognito に返すことができます。

バージョン 2 のイベントによるアクセストークンのカスタマイズには追加料金がかかります。詳細については、「[Amazon Cognito の料金](https://aws.amazon.com/cognito/pricing/)」を参照してください。

**Topics**
+ [ID トークンの理解](amazon-cognito-user-pools-using-the-id-token.md)
+ [アクセストークンの理解](amazon-cognito-user-pools-using-the-access-token.md)
+ [更新トークン](amazon-cognito-user-pools-using-the-refresh-token.md)
+ [トークン取り消しによるユーザーセッションの終了](token-revocation.md)
+ [JSON ウェブトークンの検証](amazon-cognito-user-pools-using-tokens-verifying-a-jwt.md)
+ [ユーザープールトークンの有効期限とキャッシュの管理](amazon-cognito-user-pools-using-tokens-caching-tokens.md)