Share Your AWS re:Post Experience - Quick 3 Question Survey
Help us improve AWS re:Post! We're interested in understanding how you use re:Post and its impact on your AWS journey. Please take a moment to complete our brief 3-question survey.
Amazon Cognito ユーザープールでフェデレーションアイデンティティプロバイダーとして Google を設定するにはどうすればよいですか?
Google を Amazon Cognito ユーザープールのフェデレーション ID プロバイダー (IdP) として使用したいと考えています。
解決策
アプリクライアントとドメイン名を使用して Amazon Cognito ユーザープールを作成する
次の手順を実行します。
- 新しいユーザープールを作成します。
注: ユーザープールを作成すると、デフォルトで standard attribute email が選択されます。 - アプリクライアントをユーザープールに作成します。
- ユーザープールのドメイン名を追加します。
Google API コンソールプロジェクトを作成する
次の手順を実行します。
- Google API コンソールに Google アカウントからログインします。詳細については、Google ヘルプウェブサイトの「](https://support.google.com/googleapi/answer/7037264)Manage APIs in the API Console[」を参照してください。
- [ダッシュボード (API とサービス)] で、[作成] を選択します。
- [新規プロジェクト] で、プロジェクト名を入力します。
- [場所] で [参照] を選択し、場所を選択します。
- [作成] を選択します。
詳細については、Google Identity ウェブサイトの「Sign in with Google for web」を参照してください。
OAuth 同意画面を設定する
次の手順を実行します。
- Google API コンソールを開き、左側のナビゲーションペインで OAuth 同意画面を選択します。
- 次の必須項目を同意フォームに入力します。
[Application name] には、名前を入力します。
[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 とクライアントシークレットをメモしておきます。
詳細については、Google Identity ウェブサイトの「Using OAuth 2.0 to access Google APIs」を参照してください。
Google をユーザープールのフェデレーテッド IdP に設定する
次の手順を実行します。
- Amazon Cognito コンソールを開き、[ユーザープール] を選択します。
- ユーザープールを選択します。
- [ログインエクスペリエンス] タブを選択します。
- [フェデレーテッド ID プロバイダーのログイン] で、[ID プロバイダーを追加] を選択します。
- [Google] を選択します。
- [このユーザープールでの Google フェデレーションの設定] で、次の情報を入力します。
[クライアント ID] には、メモしておいたクライアント ID を入力します。
[クライアントシークレット] には、メモしておいたクライアントシークレットを入力します。
[承認済みスコープ] には、profile email OpenID を入力します。 - [Google とユーザープール間での属性のマッピング] で、emailの User pool attribute を email の Google attribute にマッピングします。
- [別の属性を追加] を選択し、username の User pool attribute を username の Google attribute にマッピングします。
- [ID プロバイダーを追加] を選択します。
ユーザープールのアプリクライアント設定の変更
**注:**アプリクライアントの設定では、マッピングされたユーザープール属性が書き込み可能である必要があります。詳細については、「ユーザープールの ID プロバイダー属性マッピングを指定する」を参照してください。
次の手順を実行します。
- Amazon Cognito コンソールを開き、自分のユーザープールを選択します。
- [アプリ統合] タブを選択します。
- [アプリクライアントリスト] で、[アプリクライアントを作成] を選択します。
- 次の情報を入力します。
[アプリタイプ] には、[パブリッククライアント] を選択してアプリクライアントの名前を入力します。
[認証フロー] では、ALLOW_USER_PASSWORD_AUTH と ALLOW_REFRESH_TOKEN_AUTH を選択してください。
[許可されている****コールバックURL] には、ユーザーのログイン後のリダイレクト先 URL を入力します。テストするには、https://www.example.com/ などの有効な URL を入力します。
[サインアウト URL] には、ユーザーのログアウト後のリダイレクト先 URL を入力します。テストするには、https://www.example.com/ などの有効な URL を入力します。
[ID プロバイダー] には、Cognito user pool と [Google] を選択します。
[OAuth 2.0 グラントタイプ] には、[インプリシットグラント] を選択します。
[OpenID Connect スコープ] には、email、openid、profile を選択します。
**重要:**OAuth のインプリシットグラントフローはテストのみを目的としています。本番システムには [認証コード] グラントタイプを使用することをお勧めします。 - [アプリクライアントを作成] を選択します。
詳細については、「App client terms」を参照してください。
エンドポイント URL を作成する
Amazon Cognito でホストするウェブ UI のログインエンドポイント URL を作成するには、ユーザープールの値を使用します。
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 用にホストされたウェブ UI を設定するにはどうすればよいですか?」と「ログインエンドポイント」を参照してください。
エンドポイント URL のテスト
次の手順を実行します。
- ログインエンドポイント URL をウェブブラウザに入力します。
- ログインエンドポイントのウェブページで、[Google で続行]] を選択します。
注: Amazon Cognit アプリケーションクライアントのコールバック URL にリダイレクトされる場合は、ブラウザですでに Okta アカウントにログインしています。ユーザープールトークンは、ウェブブラウザのアドレスバーの URL に示されています。 - [Google でログイン] で Google アカウントを選択し、ログインします。
認証されると、Amazon Cognito アプリクライアントのコールバック URL にリダイレクトされます。ユーザープールから発行された JSON ウェブトークン (JWT) は、ウェブブラウザのアドレスバーの URL に示されています。
注: JavaScript SDK では、ログインエンドポイントの URL が生成されます。SDK では、URL にある JWT トークンも解析されます。
関連情報

関連するコンテンツ
- 質問済み 1年前lg...
- AWS公式更新しました 2年前