メインコンテンツへスキップ
Amazon Cognito は、アプリケーションのユーザーエクスペリエンスの開発に集中できるようにする backend-as-a-service です。詳細の確認やサービスへの登録については、Amazon Cognito および AWS CLI を使用して OpenID Connect (OIDC) プロバイダーを作成する手順 を参照してください。

Amazon Web Services を設定する

Auth0 アプリケーションの詳細を確認する

まず、Auth0 のアプリケーションに関する情報をいくつか確認する必要があります。
  1. Auth0 Dashboard > Applications > Applications に移動します。
  2. アプリケーションを選択し、Settings ビューに切り替えます。
  3. ドメインクライアントID を控えます。

新しい OpenID Connect (OIDC) プロバイダーを作成する

AWS で、新しい (IdP) を作成します。
  1. IAM Console を開き、左側のサイドバーで Identity Providers を選択し、Add Provider を選択します。
  2. Provider Type として OpenID Connect を選択します。
  3. Provider URL は次のように設定します。
    1. Provider URL フィールドに ドメイン を入力します。
    2. Audience フィールドに クライアントID を入力します。
  4. Add Provider を選択します。
  5. 新しく作成したプロバイダーに移動し、Provider ARN を控えておきます。
IdP の作成後に IAM ロールを設定する必要はありません。まだ IAM ロールがない場合は、Identity Pool の作成時に Cognito がデフォルトの IAM ロールを作成します。

Identity Pool を作成する

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

Auth0 を設定する

Cognito は、OpenID Provider Metadata の公開署名鍵を使用して、 (JWT) の署名を検証します。 Auth0 アプリケーションが RS256 署名アルゴリズムを使用するよう設定されていることを確認してください。
  1. Auth0 Dashboard > Applications > Applications に移動し、アプリケーションを選択して、Settings ビューに切り替えます。
  2. Advanced Settings セクションを展開し、OAuth ビューに切り替えます。
  3. JSON Web Token (JWT) Signature Algorithm フィールドを見つけて、ドロップダウンメニューから RS256 を選択します。
  4. Save Changes を選択します。

実装

Auth0 Lock SDK を使用して、アプリケーションに Auth0 を統合できます。 ユーザーが Auth0 にログインしたら、次のステップはその認証情報を Cognito に送信することです。詳しくは、AWS Docs の Open ID Connect プロバイダー (ID プール) を参照してください。 Cognito は、ユーザーが Auth0 から受け取る を使用して、一意の Cognito ID を生成します。ユーザーが Auth0 経由で Cognito にログインすると、そのユーザーだけがアクセスできる情報を Cognito に保存できます。

トラブルシューティング

「Invalid login token」エラー

「Invalid login token」エラーが表示される場合は、Auth0アプリケーションが RS256 署名アルゴリズムを使用するように設定されていることを確認してください。
  1. Auth0 Dashboard > Applications > Applications に移動し、対象のアプリケーションを選択して、Settings ビューに切り替えます。
  2. Advanced Settings セクションを展開し、OAuth ビューに切り替えます。
  3. JSON Web Token (JWT) Signature Algorithm フィールドを探し、ドロップダウンメニューから RS256 を選択します。