> ## 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) Provider を使用して Auth0 を Amazon Cognito と統合する方法。

# Amazon Cognito と統合する

Amazon Cognito は、アプリケーションのユーザー体験の開発に集中できるバックエンド・アズ・ア・サービスです。詳細やサービスへの登録については、[Amazon Cognito](http://aws.amazon.com/cognito/) および [AWS CLI で OpenID Connect (OIDC) Provider を作成する手順](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 > アプリケーション > アプリケーション](https://manage.auth0.com/#/applications) に移動します。
2. アプリケーションを選択し、**設定**画面に切り替えます。
3. **Domain** と **Client ID** を控えます。

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

AWS で、新しい<Tooltip tip="IDプロバイダー（IdP）：デジタルアイデンティティを保存・管理するサービス。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=identity+provider">アイデンティティプロバイダー</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** フィールドに **Domain** を入力します。
   2. **Audience** フィールドに **Client 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>

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

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 プロバイダーメタデータ](https://subscription.auth0.com/.well-known/jwks.json) の公開署名鍵を使用して、<Tooltip tip="JSON Web トークン（JWT）: 2 者間でクレームを安全に表現するために使用される標準的な ID トークン形式（多くの場合、アクセストークン形式でもあります）。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=JSON+Web+Token">JSON Web トークン</Tooltip> (JWT) の署名を検証します。

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

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

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

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

ユーザーが Auth0 にログインしたら、次にその資格情報を Cognito に送信します。詳しくは、[AWS Docs の OpenID Connect providers (identity pools)](http://docs.aws.amazon.com/cognito/latest/developerguide/open-id.html) をご覧ください。

Cognito は、ユーザーが Auth0 から受け取る <Tooltip tip="ID トークン: リソースへのアクセス用ではなく、クライアント自体を対象とする資格情報。" cta="用語集を見る" href="/docs/ja-jp/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 > アプリケーション > アプリケーション](https://manage.auth0.com/#/applications) を開き、該当するアプリケーションを選択して、**設定**ビューに切り替えます。
2. **Advanced Settings** セクションを展開し、**OAuth** ビューに切り替えます。
3. **JSON Web Token (JWT) Signature Algorithm** フィールドを探し、ドロップダウンメニューから **RS256** を選択します。
