Amazon Cognito ユーザープールでフェデレーションアイデンティティプロバイダーとして Google を設定するにはどうすればよいですか?

所要時間3分
0

Google を Amazon Cognito ユーザープールのフェデレーション ID プロバイダー (IdP) として使用したいと考えています。

解決策

アプリクライアントとドメイン名を使用して Amazon Cognito ユーザープールを作成する

次の手順を実行します。

  1. 新しいユーザープールを作成します。
    注: ユーザープールを作成すると、デフォルトで standard attribute email が選択されます。
  2. アプリクライアントをユーザープールに作成します。
  3. ユーザープールのドメイン名を追加します。

Google API コンソールプロジェクトを作成する

次の手順を実行します。

  1. Google API コンソールに Google アカウントからログインします。詳細については、Google ヘルプウェブサイトの「](https://support.google.com/googleapi/answer/7037264)Manage APIs in the API Console[」を参照してください。
  2. [ダッシュボード (API とサービス)] で、[作成] を選択します。
  3. [新規プロジェクト] で、プロジェクト名を入力します。
  4. [場所][参照] を選択し、場所を選択します。
  5. [作成] を選択します。

詳細については、Google Identity ウェブサイトの「Sign in with Google for web」を参照してください。

OAuth 同意画面を設定する

次の手順を実行します。

  1. Google API コンソールを開き、左側のナビゲーションペインで OAuth 同意画面を選択します。
  2. 次の必須項目を同意フォームに入力します。
    [Application name] には、名前を入力します。
    [Authorized domains] には、「amazoncognito.com」 と入力します。
    重要: このドメインの入力は必須です。OAuth クライアント ID を作成する際に Amazon Cognito ドメインを使用できるようにするためです。
  3. [保存] を選択します。

詳細については、Google Workspace ウェブサイトの「OAuth 同意画面を完成させる」を参照してください。

OAuth 2.0 クライアントの認証情報を取得する

次の手順を実行します。

  1. Google API コンソールを開き、[認証情報] ページで **[認証情報の作成] **を選択します。
  2. [OAuth クライアント ID] を選択します。
  3. [OAuth クライアント ID の作成] ページの [アプリケーションタイプ] で、[Web アプリケーション] を選択します。
  4. 次の情報を入力します。
    [名前] には、OAuth クライアント ID の名前を入力します。
    [承認済み JavaScript オリジン] には、自分の Amazon Cognito ドメインを入力します (例:https://yourDomainPrefix.auth.region.amazoncognito.com)。
    **注:**yourDomainPrefixregionregion は、自分のユーザープールの値に置き換えてください。これらの値は、Amazon Cognito コンソールを開き、ユーザープールの [ドメイン名] ページに移動すると確認できます。
    [承認済みリダイレクト URI] には、「https://yourDomainPrefix.auth.region.amazoncognito.com/oauth2/idpresponse」と入力してください。
    **注:**yourDomainPrefixregionregion は、自分のユーザープールの値に置き換えてください。
  5. [OAuth クライアント] ダイアログボックスで、後の手順で使用するクライアント ID とクライアントシークレットをメモしておきます。

詳細については、Google Identity ウェブサイトの「Using OAuth 2.0 to access Google APIs」を参照してください。

Google をユーザープールのフェデレーテッド IdP に設定する

次の手順を実行します。

  1. Amazon Cognito コンソールを開き、[ユーザープール] を選択します。
  2. ユーザープールを選択します。
  3. [ログインエクスペリエンス] タブを選択します。
  4. [フェデレーテッド ID プロバイダーのログイン] で、[ID プロバイダーを追加] を選択します。
  5. [Google] を選択します。
  6. [このユーザープールでの Google フェデレーションの設定] で、次の情報を入力します。
    [クライアント ID] には、メモしておいたクライアント ID を入力します。
    [クライアントシークレット] には、メモしておいたクライアントシークレットを入力します。
    [承認済みスコープ] には、profile email OpenID を入力します。
  7. [Google とユーザープール間での属性のマッピング] で、emailUser pool attributeemailGoogle attribute にマッピングします。
  8. [別の属性を追加] を選択し、usernameUser pool attributeusernameGoogle attribute にマッピングします。
  9. [ID プロバイダーを追加] を選択します。

ユーザープールのアプリクライアント設定の変更

**注:**アプリクライアントの設定では、マッピングされたユーザープール属性が書き込み可能である必要があります。詳細については、「ユーザープールの ID プロバイダー属性マッピングを指定する」を参照してください。

次の手順を実行します。

  1. Amazon Cognito コンソールを開き、自分のユーザープールを選択します。
  2. [アプリ統合] タブを選択します。
  3. [アプリクライアントリスト] で、[アプリクライアントを作成] を選択します。
  4. 次の情報を入力します。
    [アプリタイプ] には、[パブリッククライアント] を選択してアプリクライアントの名前を入力します。
    [認証フロー] では、ALLOW_USER_PASSWORD_AUTHALLOW_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 スコープ] には、emailopenidprofile を選択します。
    **重要:**OAuth のインプリシットグラントフローはテストのみを目的としています。本番システムには [認証コード] グラントタイプを使用することをお勧めします。
  5. [アプリクライアントを作成] を選択します。

詳細については、「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

**注:**yourDomainPrefixregionregion は、自分のユーザープールの値に置き換えてください。これらの値は、Amazon Cognito コンソールを開き、ユーザープールの [ドメイン名] ページに移動すると確認できます。yourClientId は Amazon Cognito アプリクライアントの ID に、redirectUrl はアプリクライアントのコールバック URL に置き換えてください。これらの値は、ユーザープールの [アプリクライアント設定] ページで確認できます。

詳細については、「Amazon Cognito 用にホストされたウェブ UI を設定するにはどうすればよいですか?」「ログインエンドポイント」を参照してください。

エンドポイント URL のテスト

次の手順を実行します。

  1. ログインエンドポイント URL をウェブブラウザに入力します。
  2. ログインエンドポイントのウェブページで、[Google で続行]] を選択します。
    注: Amazon Cognit アプリケーションクライアントのコールバック URL にリダイレクトされる場合は、ブラウザですでに Okta アカウントにログインしています。ユーザープールトークンは、ウェブブラウザのアドレスバーの URL に示されています。
  3. [Google でログイン] で Google アカウントを選択し、ログインします。

認証されると、Amazon Cognito アプリクライアントのコールバック URL にリダイレクトされます。ユーザープールから発行された JSON ウェブトークン (JWT) は、ウェブブラウザのアドレスバーの URL に示されています。

注: JavaScript SDK では、ログインエンドポイントの URL が生成されます。SDK では、URL にある JWT トークンも解析されます。

関連情報

ユーザープールでのソーシャル ID プロバイダーの使用

サードパーティ経由のユーザープールへのサインインの追加

コメントはありません

関連するコンテンツ