Amazon Cognito ユーザープールでフェデレーションアイデンティティプロバイダーとして Google を設定するにはどうすればよいですか?
Google を Amazon Cognito ユーザープールのフェデレーション ID プロバイダー (IdP) として使用したいと考えています。
解決策
Amazon Cognito ユーザープールでは、サードパーティ (フェデレーション) を介してサインインできます。これには、Google や Facebook などのソーシャル IdP を介したサインインも含まれます。詳細については、「ユーザープールへのソーシャル ID プロバイダーの追加」を参照してください。
アプリクライアントとドメイン名を使用して Amazon Cognito ユーザープールを作成してください
- ユーザープールを作成します。
**注:**標準属性の email がデフォルトで選択されます。詳細については、「ユーザープール属性」を参照してください。 - ユーザープールにアプリクライアントを作成してください。詳細については、「アプリクライアントを追加してホストされた UI を設定する」を参照してください。
- ユーザープールのドメイン名を追加します。
Google API コンソールプロジェクトを作成してください
すでにプロジェクトがある場合は、新しいプロジェクトを作成します。
- Google アカウントを使用して Google API コンソールにログインします。詳細については、Google ヘルプウェブサイトの「](https://support.google.com/googleapi/answer/7037264)Manage APIs in the API Console[」を参照してください。
- [ダッシュボード] (API とサービス) で、[作成] を選択します。
- [新規プロジェクト] に、[プロジェクト名] を入力します。
- [場所] で [参照] を選択し、場所を選択します。
- [作成] を選択します。
詳細については、Google ID ウェブサイトの「ウェブ向け Google でログイン」ドキュメントを参照してください。
OAuth 同意画面を設定してください
- Google API コンソールの左側のナビゲーションペインで、[OAuth 同意画面] を選択してください。
- 同意画面フォームに必要事項を入力してください。少なくとも、次のことを実行してください。
[アプリケーション名] に名前を入力してください。
[Authorized domains] には、「amazoncognito.com」と入力してください。
**重要:**このドメインの入力は必須です。入力しないと、あとで OAuth クライアント ID を作成するときに Amazon Cognito ドメインを使用できなくなります。 - [保存] を選択します。[認証情報] ページにリダイレクトされます。
詳細については、Google Workspace ウェブサイトの「OAuth 同意画面を完成させる」を参照してください。
OAuth 2.0 クライアントの認証情報を取得します
- Google API コンソールの [認証情報] ページで、[認証情報の作成] を選択してください。次に、[OAuth クライアント ID] を選択してください。
- [OAuth クライアント ID の作成] ページの [アプリケーションタイプ] で、[Web アプリケーション] を選択してください。
- 次の操作を行います:
OAuth クライアント ID の [名前] を入力してください。
[認証済み JavaScript オリジン] には、Amazon Cognito ドメインを入力してください。例: https://yourDomainPrefix.auth.region.amazoncognito.com.
注:yourDomainPrefixregion と region をお使いのユーザープールの値に置き換えてください。これらの値は、Amazon Cognito コンソールの [ユーザープール] の[ドメイン名] ページで確認することができます。
[承認済みリダイレクト URI] には、「https://yourDomainPrefix.auth.region.amazoncognito.com/oauth2/idpresponse」と入力してください。
**注:**yourDomainPrefixregion と region をお使いのユーザープールの値に置き換えてください。詳細については、前のステップを参照してください。 - [OAuth クライアント] ダイアログボックスで、クライアント ID とクライアントシークレットを探し、後で確認できるようにメモしておきます。Amazon Cognito ユーザープールで Google を設定する際にこれらが必要になります。
詳細については、Google ID ウェブサイトの「OAuth 2.0 を使用した Google API へのアクセス」を参照してください。
Google をユーザープールのフェデレーテッド IdP として設定してください
- [Amazon Cognito コンソール] で、[ユーザープール] を選択してください。
- 使用するユーザープールを選択してください。
- [ログインエクスペリエンス] タブを選択してください。
- [フェデレーテッド ID プロバイダーのログイン] で、[ID プロバイダーを追加] を選択してください。
- [Google] を選択してください。次に、[このユーザーとの Google フェデレーションの設定] プールで次の操作を実行します:
[クライアント ID] には、前のステップでメモしたクライアント ID を貼り付けます。
[クライアントシークレット] には、前のステップでメモしたクライアントシークレットを貼り付けます。
[承認済みスコープ] には、プロフィール E メールの OpenID を入力してください。 - [Google とユーザープール間での属性のマッピング] で次の操作を実行してください:
[E メール属性] の**[ユーザープール属性]** では、[E メール]の [Google 属性] にマッピングします。
[別の属性を追加] を選択し、[ユーザー名] の [ユーザープール属性] を [ユーザー名] の [Google 属性] にマッピングします。 - [ID プロバイダーを追加] を選択してください。
ユーザープールのアプリクライアント設定の変更
**注:**アプリクライアントの設定では、マッピングされたユーザープール属性が書き込み可能である必要があります。詳細については、「ユーザープールの ID プロバイダー属性マッピングを指定する」を参照してください。
- [Amazon Cognito コンソール] で、ユーザープールを選択してください。
- [アプリ統合] タブを選択してください。
- [アプリクライアントリスト] で、[アプリクライアントを作成] を選択してください。
- [アプリタイプ] で [パブリッククライアント] を選択してください。次に、アプリクライアントの名前を入力してください。
[認証フロー] では、ALLOW_USER_PASSWORD_AUTH と ALLOW_REFRESH_TOKEN_AUTH を選択してください。
[許可された****コールバックURL (s)] に、ログイン後にユーザーをリダイレクトする URL を入力してください。テストするには、https://www.example.com などの有効な URL を入力してください。
[ログアウト URL の追加] に、ログアウト後にユーザーをリダイレクトする URL を入力してください。テストするには、https://www.example.com/ などの有効な URL を入力してください。
[ID プロバイダー] で、[Cognito ユーザープール] および [Google] を選択してください。
[OAuth 2.0 の付与タイプ] では、[暗黙の付与] を選択してください。
[OpenID Connect スコープ] では、[E メール]、[OpenID]、および **[プロファイル] を選択してください。
重要:**暗黙の OAuth 権限付与フローはテストのみを目的としています。実稼働システムには認証コードの付与を使用することをお勧めします。 - [アプリクライアントを作成] を選択してください。
詳しくは、「アプリケーションクライアントの設定用語」を参照してください。
エンドポイント URL を作成してください
ユーザープールの値を使用して、Amazon Cognito 用にホストされたウェブ UI のログインエンドポイント URL を作成してください。https://yourDomainPrefix.auth.region.amazoncognito.com/login?response_type=token&client_id=yourClientId&redirect_uri=redirectUrl
注:yourDomainPrefixregion と region をお使いのユーザープールの値に置き換えてください。これらの値は、Amazon Cognito コンソールの [ユーザープール] の[ドメイン名] ページで確認することができます。yourClientId を Amazon Cognito アプリクライアントの ID に置き換え、redirectUrl をアプリクライアントのコールバック URLに置き換えます。これらの値は、ユーザープールの [アプリクライアントの設定] ページの Amazon Cognito コンソールで確認できます。
詳細については、「Amazon Cognito 用にホストされたウェブ UI を設定するにはどうすればよいですか?」および「ログインエンドポイント」を参照してください。
エンドポイント URL のテスト
- 作成したログインエンドポイント URL をウェブブラウザに入力してください。
- ログインエンドポイントのウェブページで、[Google で続行] を選択してください。
**注:**Amazon Cognit アプリケーションクライアントのコールバック URL にリダイレクトされる場合は、ブラウザですでに Okta アカウントにログインしています。ユーザープールトークンは、ウェブブラウザのアドレスバーの URL に表示されます。 - [Google でログイン] で Google アカウントを選択し、ログインします。
認証に成功すると、Amazon Cognito アプリケーションクライアントのコールバック URL にリダイレクトされます。ユーザープールが発行した JSON ウェブトークン (JWT) は、ウェブブラウザのアドレスバーの URL に表示されます。
**注:**実際のウェブアプリでは、ログインエンドポイントの URL は JavaScript SDK によって生成されます。これにより、URL 内の JWT トークンも解析されます。
関連情報
関連するコンテンツ
- 質問済み 1年前lg...
- 質問済み 6年前lg...
- 質問済み 1ヶ月前lg...
- AWS公式更新しました 1年前