> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> OpenID Connect（OIDC）プロバイダーを使用して Auth0 を Amazon Cognito と統合する方法。

# Amazon Cognito との統合

Amazon Cognito は、アプリケーションのユーザーエクスペリエンスの開発に集中できるようにする backend-as-a-service です。詳細の確認やサービスへの登録については、[Amazon Cognito](http://aws.amazon.com/cognito/) および [AWS CLI を使用して OpenID Connect (OIDC) プロバイダーを作成する手順](https://docs.aws.amazon.com/cli/latest/reference/iam/create-open-id-connect-provider.html) を参照してください。

<div id="configure-amazon-web-services">
  ## Amazon Web Services を設定する
</div>

<div id="get-auth0-application-details">
  ### Auth0 アプリケーションの詳細を確認する
</div>

まず、Auth0 のアプリケーションに関する情報をいくつか確認する必要があります。

1. [Auth0 Dashboard > Applications > Applications](https://manage.auth0.com/#/applications) に移動します。
2. アプリケーションを選択し、**Settings** ビューに切り替えます。
3. **ドメイン** と **クライアントID** を控えます。

<div id="create-new-openid-connect-oidc-provider">
  ### 新しい OpenID Connect (OIDC) プロバイダーを作成する
</div>

AWS で、新しい<Tooltip tip="IDプロバイダー（IdP）：デジタルIDを保存および管理するサービス。" cta="用語集を見る" href="/ja/docs/glossary?term=identity+provider">IDプロバイダー</Tooltip> (IdP) を作成します。

1. [IAM Console](https://console.aws.amazon.com) を開き、左側のサイドバーで **Identity Providers** を選択し、**Add Provider** を選択します。
2. **Provider Type** として **OpenID Connect** を選択します。
3. **Provider URL** は次のように設定します。

   1. **Provider URL** フィールドに **ドメイン** を入力します。
   2. **Audience** フィールドに **クライアントID** を入力します。
4. **Add Provider** を選択します。
5. 新しく作成したプロバイダーに移動し、**Provider ARN** を控えておきます。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  IdP の作成後に IAM ロールを設定する必要はありません。まだ IAM ロールがない場合は、Identity Pool の作成時に Cognito がデフォルトの IAM ロールを作成します。
</Callout>

<div id="create-identity-pool">
  ### Identity Pool を作成する
</div>

Cognito が認証に Auth0 OIDC IDプロバイダーを使用できるように、AWS で Identity Pool を作成します。

1. [Cognito Console.](https://console.aws.amazon.com/cognito/home) にサインインします。
2. **Federated Identities** を選択します。
3. **Identity Pool Name** に、プールの名前 (たとえば `Auth0`) を指定します。
4. **Authentication Providers** で **OpenID** タブを選択し、前の手順で作成したプロバイダー名を選択します。
5. **Create Pool** を選択し、続けて **Allow** を選択して、新しい Identity Pool の作成を完了します。
6. Dashboard で **Edit Identity Pool** を選択し、**Identity Pool ID** を確認します。
7. 自動的に作成された IAM ロールの **ARN** を控えておきます。この値は、認証情報を Cognito に送信する際に使用します。

<div id="configure-auth0">
  ## Auth0 を設定する
</div>

Cognito は、[OpenID Provider Metadata](https://subscription.auth0.com/.well-known/jwks.json) の公開署名鍵を使用して、<Tooltip tip="JSON Web Token（JWT）: 2 者間でクレームを安全に表現するために使用される標準的な IDトークン形式（多くの場合、アクセストークン形式としても使用）。" cta="用語集を表示" href="/ja/docs/glossary?term=JSON+Web+Token">JSON Web Token</Tooltip> (JWT) の署名を検証します。

Auth0 アプリケーションが RS256 署名アルゴリズムを使用するよう設定されていることを確認してください。

1. [Auth0 Dashboard > Applications > Applications](https://manage.auth0.com/#/applications) に移動し、アプリケーションを選択して、**Settings** ビューに切り替えます。
2. **Advanced Settings** セクションを展開し、**OAuth** ビューに切り替えます。
3. **JSON Web Token (JWT) Signature Algorithm** フィールドを見つけて、ドロップダウンメニューから **RS256** を選択します。
4. **Save Changes** を選択します。

<div id="implementation">
  ## 実装
</div>

[Auth0 Lock SDK](/ja/docs/libraries#lock) を使用して、アプリケーションに Auth0 を統合できます。

ユーザーが Auth0 にログインしたら、次のステップはその認証情報を Cognito に送信することです。詳しくは、[AWS Docs の Open ID Connect プロバイダー (ID プール) ](http://docs.aws.amazon.com/cognito/latest/developerguide/open-id.html) を参照してください。

Cognito は、ユーザーが Auth0 から受け取る <Tooltip tip="IDトークン: リソースへのアクセスではなく、クライアント自体のための認証情報です。" cta="用語集を見る" href="/ja/docs/glossary?term=ID+token">IDトークン</Tooltip> を使用して、一意の Cognito ID を生成します。ユーザーが Auth0 経由で Cognito にログインすると、そのユーザーだけがアクセスできる情報を Cognito に保存できます。

<div id="troubleshooting">
  ## トラブルシューティング
</div>

<div id="invalid-login-token-error">
  ### 「Invalid login token」エラー
</div>

「Invalid login token」エラーが表示される場合は、Auth0アプリケーションが RS256 署名アルゴリズムを使用するように設定されていることを確認してください。

1. [Auth0 Dashboard > Applications > Applications](https://manage.auth0.com/#/applications) に移動し、対象のアプリケーションを選択して、**Settings** ビューに切り替えます。
2. **Advanced Settings** セクションを展開し、**OAuth** ビューに切り替えます。
3. **JSON Web Token (JWT) Signature Algorithm** フィールドを探し、ドロップダウンメニューから **RS256** を選択します。
