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

所要時間3分
0

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

解決策

Amazon Cognito ユーザープールでは、サードパーティ (フェデレーション) を介してサインインできます。これには、Google や Facebook などのソーシャル IdP を介したサインインも含まれます。詳細については、「ユーザープールへのソーシャル ID プロバイダーの追加」を参照してください。

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

  1. ユーザープールを作成します
    **注:**標準属性の email がデフォルトで選択されます。詳細については、「ユーザープール属性」を参照してください。
  2. ユーザープールにアプリクライアントを作成してください。詳細については、「アプリクライアントを追加してホストされた UI を設定する」を参照してください。
  3. ユーザープールのドメイン名を追加します

Google API コンソールプロジェクトを作成してください

すでにプロジェクトがある場合は、新しいプロジェクトを作成します。

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

詳細については、Google ID ウェブサイトの「ウェブ向け Google でログイン」ドキュメントを参照してください。

OAuth 同意画面を設定してください

  1. Google API コンソールの左側のナビゲーションペインで、[OAuth 同意画面] を選択してください。
  2. 同意画面フォームに必要事項を入力してください。少なくとも、次のことを実行してください。
    [アプリケーション名] に名前を入力してください。
    [Authorized domains] には、「amazoncognito.com」と入力してください。
    **重要:**このドメインの入力は必須です。入力しないと、あとで OAuth クライアント ID を作成するときに Amazon Cognito ドメインを使用できなくなります。
  3. [保存] を選択します。[認証情報] ページにリダイレクトされます。

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

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

  1. Google API コンソールの [認証情報] ページで、[認証情報の作成] を選択してください。次に、[OAuth クライアント ID] を選択してください。
  2. [OAuth クライアント ID の作成] ページの [アプリケーションタイプ] で、[Web アプリケーション] を選択してください。
  3. 次の操作を行います:
    OAuth クライアント ID の [名前] を入力してください。
    [認証済み JavaScript オリジン] には、Amazon Cognito ドメインを入力してください。例: https://yourDomainPrefix.auth.region.amazoncognito.com.
    注:yourDomainPrefixregionregion をお使いのユーザープールの値に置き換えてください。これらの値は、Amazon Cognito コンソールの [ユーザープール] の[ドメイン名] ページで確認することができます。
    [承認済みリダイレクト URI] には、「https://yourDomainPrefix.auth.region.amazoncognito.com/oauth2/idpresponse」と入力してください。
    **注:**yourDomainPrefixregionregion をお使いのユーザープールの値に置き換えてください。詳細については、前のステップを参照してください。
  4. [OAuth クライアント] ダイアログボックスで、クライアント ID とクライアントシークレットを探し、後で確認できるようにメモしておきます。Amazon Cognito ユーザープールで Google を設定する際にこれらが必要になります。

詳細については、Google ID ウェブサイトの「OAuth 2.0 を使用した Google API へのアクセス」を参照してください。

Google をユーザープールのフェデレーテッド IdP として設定してください

  1. [Amazon Cognito コンソール] で、[ユーザープール] を選択してください。
  2. 使用するユーザープールを選択してください。
  3. [ログインエクスペリエンス] タブを選択してください。
  4. [フェデレーテッド ID プロバイダーのログイン] で、[ID プロバイダーを追加] を選択してください。
  5. [Google] を選択してください。次に、[このユーザーとの Google フェデレーションの設定] プールで次の操作を実行します:
    [クライアント ID] には、前のステップでメモしたクライアント ID を貼り付けます。
    [クライアントシークレット] には、前のステップでメモしたクライアントシークレットを貼り付けます。
    [承認済みスコープ] には、プロフィール E メールの OpenID を入力してください。
  6. [Google とユーザープール間での属性のマッピング] で次の操作を実行してください:
    [E メール属性] の**[ユーザープール属性]** では、[E メール][Google 属性] にマッピングします。
    [別の属性を追加] を選択し、
    [ユーザー名]
    [ユーザープール属性][ユーザー名][Google 属性] にマッピングします。
  7. [ID プロバイダーを追加] を選択してください。

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

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

  1. [Amazon Cognito コンソール] で、ユーザープールを選択してください。
  2. [アプリ統合] タブを選択してください。
  3. [アプリクライアントリスト] で、[アプリクライアントを作成] を選択してください。
  4. [アプリタイプ] で [パブリッククライアント] を選択してください。次に、アプリクライアントの名前を入力してください。
    [認証フロー] では、ALLOW_USER_PASSWORD_AUTHALLOW_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 権限付与フローはテストのみを目的としています。実稼働システムには認証コードの付与を使用することをお勧めします。
  5. [アプリクライアントを作成] を選択してください。

詳しくは、「アプリケーションクライアントの設定用語」を参照してください。

エンドポイント URL を作成してください

ユーザープールの値を使用して、Amazon Cognito 用にホストされたウェブ UI のログインエンドポイント 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 コンソールで確認できます。

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

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

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

認証に成功すると、Amazon Cognito アプリケーションクライアントのコールバック URL にリダイレクトされます。ユーザープールが発行した JSON ウェブトークン (JWT) は、ウェブブラウザのアドレスバーの URL に表示されます。
**注:**実際のウェブアプリでは、ログインエンドポイントの URL は JavaScript SDK によって生成されます。これにより、URL 内の JWT トークンも解析されます。

関連情報

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

コメントはありません

関連するコンテンツ