Amazon Web Services の設定
Auth0 アプリケーションの詳細を確認する
まず、Auth0 でアプリケーションに関する情報をいくつか確認する必要があります。- Auth0 Dashboard > アプリケーション > アプリケーション に移動します。
- アプリケーションを選択し、設定画面に切り替えます。
- Domain と Client ID を控えます。
新しいOpenID Connect (OIDC) プロバイダーを作成
AWS で、新しい (IdP) を作成します。- IAM Console を開き、左側のサイドバーで Identity Providers を選択してから、Add Provider を選択します。
- Provider Type として OpenID Connect を選択します。
-
Provider URL では、次のように設定します。
- Provider URL フィールドに Domain を入力します。
- Audience フィールドに Client ID を入力します。
- Add Provider を選択します。
- 新しく作成したプロバイダーを開き、Provider ARN を控えます。
IdP の作成後に IAM ロールを設定する必要はありません。まだ IAM ロールがない場合は、Identity Pool の作成時に Cognito によってデフォルトの IAM ロールが作成されます。
Identity Pool を作成する
AWS で Identity Pool を作成し、Cognito が認証に Auth0 の OIDC アイデンティティプロバイダーを使用できるようにします。- Cognito Console. にサインインします。
- Federated Identities を選択します。
- Identity Pool Name で、プール名 (たとえば
Auth0) を指定します。 - Authentication Providers で OpenID タブを選択し、先ほど作成したプロバイダー名を選択します。
- Create Pool を選択し、続いて Allow を選択して、新しい Identity Pool の作成を完了します。
- Dashboard で Edit Identity Pool を選択し、Identity Pool ID を確認します。
- 自動的に作成された IAM ロールの ARN を記録します。この値は、資格情報を Cognito に送信する際に使用します。
Auth0 を設定する
Cognito は、OpenID プロバイダーメタデータ の公開署名鍵を使用して、 (JWT) の署名を検証します。 Auth0 アプリケーションが RS256 署名アルゴリズムを使用するように設定されていることを確認してください。- Auth0 Dashboard > アプリケーション > アプリケーション に移動し、アプリケーションを選択して、設定ビューに切り替えます。
- Advanced Settings セクションを展開し、OAuth ビューに切り替えます。
- JSON Web Token (JWT) Signature Algorithm フィールドを見つけて、ドロップダウンメニューから RS256 を選択します。
- 変更を保存 を選択します。
実装
Auth0 Lock SDK を使用して、アプリケーションに Auth0 を統合できます。 ユーザーが Auth0 にログインしたら、次にその資格情報を Cognito に送信します。詳しくは、AWS Docs の OpenID Connect providers (identity pools) をご覧ください。 Cognito は、ユーザーが Auth0 から受け取る を受け取り、それを使って一意の Cognito ID を生成します。ユーザーが Auth0 経由で Cognito にログインすると、そのユーザー本人だけがアクセスできる情報を Cognito に保存できます。トラブルシューティング
「Invalid login token」エラー
「Invalid login token」エラーが表示される場合は、Auth0アプリケーションがRS256署名アルゴリズムを使用するよう設定されていることを確認してください。- Auth0 Dashboard > アプリケーション > アプリケーション を開き、該当するアプリケーションを選択して、設定ビューに切り替えます。
- Advanced Settings セクションを展開し、OAuth ビューに切り替えます。
- JSON Web Token (JWT) Signature Algorithm フィールドを探し、ドロップダウンメニューから RS256 を選択します。