スキップしてコンテンツを表示

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

所要時間2分
0

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

解決策

Amazon Cognito ユーザープールを作成する

Amazon Cognito コンソールで新しいアプリケーションを作成します

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

Google アカウントで Google API コンソールにログインし、Google Cloud プロジェクトを作成します。手順については、Google ID のウェブサイトで「ウェブ版 Google でログイン」および Google Workspace のウェブサイトで「Google Cloud プロジェクトの作成」を参照してください。

OAuth 同意画面を構成する

次の手順を実行します。

  1. Google API コンソールを開きます。
  2. ナビゲーションペインで [OAuth 同意画面] を選択します。
  3. 同意フォームで次の必須フィールドを構成します。
    [アプリケーション名] に名前を入力します。
    [承認されたドメイン]amazoncognito.com と入力します。
    重要: OAuth クライアント ID を作成する際、お客様の Amazon Cognito ドメインを使用するには、このドメインを入力する必要があります。
  4. [保存] を選択します。

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

次の手順を実行します。

  1. Google API コンソールを開きます。
  2. [認証情報] ページで [認証情報の作成] を選択します。
  3. [OAuth クライアント ID] を選択します。
  4. [OAuth クライアント ID の作成] ページの [アプリケーションタイプ][Web アプリケーション] を選択します。
  5. 次の設定を行います。
    [名前] には、OAuth クライアント ID の名前を入力します。
    [承認済み JavaScript オリジン] に Amazon Cognito ドメインを入力します (例:https://yourDomainPrefix.auth.region.amazoncognito.com)。
    注: yourDomainPrefix をユーザープールのドメインに、region をユーザープールの AWS リージョンに置き換えてください。
    ユーザープールのドメインプレフィックスとリージョンを特定するには、次の手順を実行します。
    Amazon Cognito コンソールを開きます。
    左側のナビゲーションで [ユーザープール] を選択します。
    該当するユーザープールを選択します。
    左側のナビゲーションメニューで [アプリ統合] を選択します。[ドメイン] セクションまでスクロールすると、ドメインのプレフィックスとリージョンが表示されます。
    [承認済みリダイレクト URI] には、「https://yourDomainPrefix.auth.region.amazoncognito.com/oauth2/idpresponse」と入力してください。
    注: yourDomainPrefixregionregion をユーザープールに対応する値に置き換えてください。
  6. [OAuth クライアント] ダイアログボックスに表示されるクライアント ID とクライアントシークレットを書き留めます。

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

Amazon Cognito コンソールでソーシャル IdP を使用してユーザープールを構成し、次の設定を行います。

  • [ID プロバイダーの追加][Google] を選択します。
  • [Google とユーザープール間での属性のマッピング]emailユーザープール属性emailGoogle 属性にマッピングします。

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

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

次の手順を実行します。

  1. Amazon Cognito コンソールを開きます。
  2. [ユーザープール] を選択し、該当するユーザープールを選択します。
  3. [アプリ統合] タブを選択します。
  4. [アプリクライアントリスト] で [アプリクライアントを作成] を選択します。
  5. 次の設定を行います。
    **[アプリタイプ] ** で [パブリッククライアント] を選択し、アプリクライアントの名前を入力します。
    [認証フロー] では、ALLOW_USER_PASSWORD_AUTHALLOW_REFRESH_TOKEN_AUTH を選択してください。
    [許可****するコールバック URL] には、ログイン後にユーザーをリダイレクトする URL を入力します。テストするには、任意の有効な URL を入力します (例: https://www.example.com/)。
    [サインアウト URL] には、ユーザーのログアウト後にリダイレクトする URL を入力します。テストするには、任意の有効な URL を入力します (例: https://www.example.com/)。
    [ID プロバイダー]Cognito ユーザープールGoogle を選択します。
    [OAuth 2.0 付与タイプ][暗黙的付与] を選択します。
    [OpenID Connect スコープ] には、emailopenidprofile を選択します。
    **重要:**OAuth のインプリシットグラントフローはテストのみを目的としています。本番システムには [認証コード] グラントタイプを使用することをお勧めします。
  6. [アプリクライアントを作成] を選択します。

アプリクライアント設定の詳細については、「アプリクライアントの規約」を参照してください。

エンドポイント URL を作成する

Amazon Cognito でホストするウェブ UI のログインエンドポイント URL の構成は、次の形式です。

https://yourDomainPrefix.auth.region.amazoncognito.com/login?response_type=token&client_id=yourClientId&redirect_uri=redirectUrl

注: yourDomainPrefix をユーザープールのドメインに、region をユーザープールのリージョンに置き換えてください。yourClientId を Amazon Cognito アプリクライアントの ID に、redirectUrl をアプリクライアントのコールバック URL に置き換えてください。

ユーザープールのドメインプレフィックスとリージョンを確認するには、次の手順を実行します。

  1. Amazon Cognito コンソールを開きます。
  2. 左側のナビゲーションで [ユーザープール] を選択します。
  3. ユーザープールを選択します。
  4. 左側のナビゲーションメニューで [アプリ統合] を選択します。
  5. [ドメイン] セクションまでスクロールすると、ドメインプレフィックスとリージョンが表示されます。

ClientID と redirectUrl の表示には、次の手順を実行します。

  1. Amazon Cognito コンソールを開きます。
  2. 左側のナビゲーションで [ユーザープール] を選択します。
  3. ユーザープールを選択します。
  4. 左側のナビゲーションメニューで [アプリ統合] を選択します。
  5. [アプリクライアント] までスクロールすると、ClientID と redirectUrl が表示されます。
    注: アプリクライアントを選択すると、設定したリダイレクト URL を含む詳細が表示されます。

エンドポイント URL をテストする

次の手順を実行します。

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

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

関連情報

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

サードパーティ ID プロバイダーでユーザープールにサインインする

API コンソールで API を管理する (Google Help のウェブサイト)

コメントはありません