

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

# OAuth 2.0 許可
<a name="federation-endpoints-oauth-grants"></a>

Amazon Cognito ユーザープール OAuth 2.0 認可サーバーは、3 種類の OAuth 2.0 [認可付与](https://datatracker.ietf.org/doc/html/rfc6749#section-1.3)に対応してトークンを発行します。ユーザープール内の各アプリクライアントに、サポートされる許可タイプを設定できます。*暗黙的*付与または*認可コード*付与と同じアプリケーションクライアントで、*クライアント認証情報*付与を有効にすることはできません。暗黙的コード付与と認可コード付与のリクエストは、[認可エンドポイント](authorization-endpoint.md) で開始され、クライアント認証情報付与のリクエストは [トークンエンドポイント](token-endpoint.md) で開始されます。

**認可コード付与**  
認証リクエストが成功すると、認可サーバーは、`code` パラメータの認可コードをコールバック URL のパラメータに追加します。次に、[トークンエンドポイント](token-endpoint.md) と、アクセス、ID、更新トークンのコードを交換することができます。認可コード付与をリクエストするには、リクエストで `response_type` を `code` に設定します。リクエスト例については、「[例: 認証コード付与](authorization-endpoint.md#sample-authorization-code-grant)」を参照してください。Amazon Cognito は、認証コード付与で [Proof Key for Code Exchange (PKCE)](using-pkce-in-authorization-code.md) をサポートしています。  
認可コード付与は、最も安全な認可付与の形式です。トークンの内容がユーザーに直接表示されることはありません。代わりに、ユーザーのトークンを取得して安全に保管する責任はアプリにあります。Amazon Cognito では、認可コード付与が 3 種類のトークン (ID、アクセス、更新) すべてを認可サーバーから取得する唯一の方法です。Amazon Cognito ユーザープール API による認証から 3 種類のトークンをすべて取得することもできますが、API は `aws.cognito.signin.user.admin` 以外のスコープを持つアクセストークンを発行しません。

**暗黙の許可**  
認証リクエストが成功すると、認可サーバーは `access_token` パラメータのアクセストークンと、`id_token` パラメータの ID トークンを、コールバック URL に追加します。暗黙的な許可では、[トークンエンドポイント](token-endpoint.md) に追加の操作は必要ありません。暗黙的な許可をリクエストするには、リクエストで `response_type` を `token` に設定します。暗黙的な許可では、ID とアクセストークンのみが生成されます。リクエスト例については、「[例: `openid` スコープなしのトークンの (暗黙的) 付与](authorization-endpoint.md#sample-token-grant-without-openid-scope)」を参照してください。  
暗黙的な許可は、レガシーの認可付与方法です。認可コード付与とは異なり、ユーザーはトークンを傍受して検査できます。暗黙的な許可によるトークンの配信を防ぐには、認可コード付与のみをサポートするようにアプリクライアントを設定します。

**クライアント認証情報**  
クライアント認証情報は、マシン間アクセスに対する認可のみを付与します。クライアント認証情報許可を受けるには、[認可エンドポイント](authorization-endpoint.md) をバイパスして、[トークンエンドポイント](token-endpoint.md) に直接リクエストを生成してください。アプリクライアントにはクライアントシークレットが必要で、クライアント認証情報許可のみをサポートする必要があります。リクエストが成功すると、認可サーバーがアクセストークンを返します。  
クライアント認証情報許可からのアクセストークンは、OAuth 2.0 スコープを含む認可メカニズムです。通常、トークンには、アクセス保護された API に対する HTTP 操作を許可するカスタムスコープクレームが含まれます。詳細については、「[スコープ、M2M、リソースサーバー](cognito-user-pools-define-resource-servers.md)」を参照してください。  
クライアント認証情報付与は、 AWS 請求書にコストを追加します。詳細については、「[Amazon Cognito の料金](https://aws.amazon.com/cognito/pricing)」を参照してください。

**更新トークン**  
更新トークンの付与は、[トークンエンドポイント](token-endpoint.md) から直接リクエストできます。この付与は、有効な更新トークンと引き換えに、新しい ID トークンとアクセストークンを返します。

これらの付与とその実装の詳細については、「*AWS Security Blog*」の「[How to use OAuth 2.0 in Amazon Cognito: Learn about the different OAuth 2.0 grants](https://aws.amazon.com/blogs/security/how-to-use-oauth-2-0-in-amazon-cognito-learn-about-the-different-oauth-2-0-grants/)」を参照してください。