ユーザープールにソーシャルサインインを追加する (オプション) - Amazon Cognito

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ユーザープールにソーシャルサインインを追加する (オプション)

アプリユーザーが Facebook、Google、Amazon、Apple などのソーシャル ID プロバイダー (IdP) を介してサインインするようにできます。ユーザーが直接サインインしても、サードパーティーを介してサインインしても、すべてのユーザーにはユーザープールにプロファイルがあります。ソーシャルサインイン ID プロバイダーを通じてサインインを追加しない場合は、この手順を省略してください。

ソーシャル IdP に登録する

Amazon Cognito でソーシャル IdP を作成する前に、アプリケーションをソーシャル IdP に登録して、クライアント ID とクライアントシークレットを取得する必要があります。

  1. Facebook の開発者アカウントを作成します。

  2. Facebook 認証情報を使用してサインインします。

  3. [My Apps] (マイアプリ) メニューから、[新しいアプリを作成] (新しいアプリを作成) を選択します。

    既存の Facebook アプリがない場合は、別のオプションが表示され、[アプリの作成] を選択します。

  4. [アプリの作成] ページで、アプリのユースケースを選択し、[次へ] を選択します。

  5. Facebook アプリケーションに名前を入力して、[アプリの作成] を選択します。

  6. 左のナビゲーションバーで、[設定][基本] の順に選択します。

  7. [App ID] (アプリ ID)] と [App Secret (アプリシークレット) を書き留めます。これらは次のセクションで使用します。

  8. ページの下部で、[+ プラットフォームを追加] を選択します。

  9. [プラットフォームの選択] 画面で、プラットフォームを選択し、[次へ] を選択します。

  10. [変更の保存] をクリックします。

  11. [App Domains] (アプリケーションドメイン) で、ユーザープールのドメインを入力します。

    https://your_user_pool_domain
  12. [変更の保存] をクリックします。

  13. ナビゲーションバーで [製品] を選択し、[Facebook でログイン][設定] を選択します。

  14. [Facebook でログイン][設定] メニューから [設定] を選択します。

    [Valid OAuth Redirect URIs] (有効な OAuth リダイレクト URI) にリダイレクト URL を入力します。リダイレクト URL は、/oauth2/idpresponse エンドポイント を持つユーザープールのドメインで構成されます。

    https://your_user_pool_domain/oauth2/idpresponse
  15. [変更の保存] をクリックします。

  1. Amazon の開発者アカウントを作成します。

  2. Amazon 認証情報を使用してサインインします。

  3. Amazon クライアント ID およびクライアントシークレットを受け取るには、Amazon セキュリティプロファイルを作成する必要があります。

    ページの上部にあるナビゲーションバーで [Apps and Services (アプリとサービス)] を選択し、[Login with Amazon] を選択します。

  4. [Create a New Security Profile (新しいセキュリティプロファイルの作成)] を選択します。

  5. [Security Profile Name] (セキュリティプロファイル名)、[Security Profile Description] (セキュリティプロファイルの説明)、[Consent Privacy Notice URL] (プライバシー規約 URL の同意) に入力します。

  6. [Save] を選択します。

  7. [クライアント ID] および [クライアントシークレット] を選択して、クライアント ID およびシークレットを表示します。これらは次のセクションで使用します。

  8. 歯車アイコンにマウスカーソルを合わせ、[Web Settings] (ウェブ設定)、[Edit] (編集) の順に選択します。

  9. [Allowed Origins] (許可されたオリジン) にユーザープールのドメインを入力します。

    https://<your-user-pool-domain>
  10. /oauth2/idpresponse エンドポイントを使用するユーザープールドメインを [Allowed Return URLs] (許可されたリターン URL) に入力します。

    https://<your-user-pool-domain>/oauth2/idpresponse
  11. [Save] を選択します。

Google Cloud プラットフォームの OAuth 2.0 の詳細については、「Google Workspace for Developers」(Google Workspace デベロッパーガイド) ドキュメントの「Learn about authentication & authorization」(認証と認可について学ぶ) を参照してください。

  1. Google の開発者アカウントを作成します。

  2. Google Cloud Platform コンソールにサインインします。

  3. 上部のナビゲーションバーから、[Select a project] (プロジェクトの選択) を選択します。Google プラットフォームにプロジェクトが既にある場合は、このメニューには代わりにデフォルトのプロジェクトが表示されます。

  4. [NEW PROJECT] (新しいプロジェクト) を選択します。

  5. 製品の名前を入力し、[CREATE] (作成) を選択します。

  6. 左のナビゲーションバーで、[APIs and Services] (API とサービス) を選択し、[Oauth consent screen] (OAuth 同意画面) を選択します。

  7. アプリ情報、[App domain] (アプリドメイン)、[Authorized domains] (承認済みドメイン)、[Developer contact information] (開発者の連絡先情報) を入力します。[Authorized domains] (承認済みドメイン) には、amazoncognito.com とカスタムドメインのルート (例: example.com) を含める必要があります。[SAVE AND CONTINUE] (保存して続行) を選択します。

  8. 1. [Scopes] (スコープ) で、[Add or remove scopes] (スコープの追加または削除) を選択し、少なくとも、次の OAuth スコープを選択します。

    1. .../auth/userinfo.email

    2. .../auth/userinfo.profile

    3. openid

  9. [Test users] (テストユーザー) で、[Add users] (ユーザーの追加) を選択します。E メールアドレスおよびその他の承認済みテストユーザーを入力して、[SAVE AND CONTINUE] (保存して続行) を選択します。

  10. 左のナビゲーションバーを再度展開し、[APIs and Services] (API とサービス) を選択して、[Credentials] (認証情報) を選択します。

  11. [CREATE CREDENTIALS] (認証情報の作成)、[OAuth client ID] (OAuth クライアント ID) の順に選択します。

  12. [Application type] (アプリケーションタイプ) を選択し、クライアントに [Name] (名前) を入力します。

  13. 承認オ JavaScript リジン で、ADD URI を選択します。ユーザープールのドメインを入力します。

    https://<your-user-pool-domain>
  14. [Authorized redirect URIs] (承認済みのリダイレクト URI) で、[ADD URI] (URI の追加) を選択します。ユーザープールのドメインの /oauth2/idpresponse エンドポイントへのパスを入力します。

    https://<your-user-pool-domain>/oauth2/idpresponse
  15. [CREATE] (作成) を選択します。

  16. Google が [クライアント ID][クライアントシークレット] の下に表示する値を安全に保存します。Google IdP を追加するときに、Amazon Cognito にこれらの値を指定します。

「Apple でサインイン」を設定する方法についての詳細は、Apple 開発者ドキュメントの「Configuring Your Environment for Sign in with Apple」(Apple でサインインするための環境を設定する) を参照してください。

  1. Apple の開発者アカウントを作成します。

  2. Apple 認証情報を使用してサインインします。

  3. 左のナビゲーションバーで、[Certificates, Identifiers & Profiles] (証明書、ID & プロファイル) を選択します。

  4. 左のナビゲーションペインで、[Identifiers] (識別子) を選択します。

  5. [Identifiers] (識別子) ページで、[+] アイコンを選択します。

  6. [Register a New Identifier] (新しい識別子の登録) ページで、[App IDs] (アプリ ID)、[Continue] (続行) の順に選択します。

  7. [Select a type] (種類の選択) ページで、[App] (アプリ) を選択し、[Continue] (続行) を選択します。

  8. [Register an App ID] ページで、次の操作を行います。

    1. [Description] (説明) で、説明を入力します。

    2. [App ID Prefix] (アプリ ID プレフィックス) に、[Bundle ID] (バンドル ID) を入力します。[App ID Prefix] (アプリケーション ID プレフィックス) にある値を書き留めておきます。この値は、ステップ 2: ユーザープールにソーシャル IdP を追加する で Apple を ID プロバイダーとして選択した後で使用します。

    3. [Capabilities] (機能) で、[Sign In with Apple] (Apple でサインイン) を選択してから [Edit] (編集) を選択します。

    4. [Sign in with Apple: App ID Configuration] (Apple でサインイン: アプリ ID の設定) ページで、アプリをプライマリとして設定するか、他のアプリ ID とグループ化するかを選択し、次に [Save] (保存) を選択します。

    5. [続行] を選択します。

  9. [Confirm your App ID] ページで、[登録] を選択します。

  10. [Identifiers] (識別子) ページで、[+] アイコンを選択します。

  11. [Register a New Identifier] (新しい識別子の登録) ページで、[Services IDs] (サービス ID)、[Continue] (続行) の順に選択します。

  12. [Register a Services ID] ページで、次の操作を行います。

    1. [説明] に、説明を入力します。

    2. [Identifier] に、識別子を入力します。このサービス ID をメモしておきます。この値は、ステップ 2: ユーザープールにソーシャル IdP を追加する で Apple を ID プロバイダーとして選択した後で必要になります。

    3. [Continue] (続行) を選択し、[Register] (登録) を選択します。

  13. [Identifiers] (識別子) ページから、先ほど作成した [Services ID] (サービス ID) を選択します。

    1. [Sign In with Apple] (Apple でサインイン) を選択後、[Configure] (設定) を選択します。

    2. [Web Authentication Configuration] (ウェブ認証の設定) ページで、[Primary App ID] (プライマリアプリ ID) として前に作成したアプリ ID を選択します。

    3. [Website URLs] (ウェブサイトの URL) の横の [+] アイコンを選択します。

    4. [Domains and subdomains] (ドメインとサブドメイン) で、https:// プレフィックスなしでユーザープールのドメインを入力します。

      <your-user-pool-domain>
    5. [Return URLs] (URL を返す) で、ユーザープールのドメインの /oauth2/idpresponse エンドポイントへのパスを入力します。

      https://<your-user-pool-domain>/oauth2/idpresponse
    6. [Next] (次へ) を選択し、[Done] (完了) を選択します。ドメインを検証する必要はありません。

    7. [Continue] (続行) を選択し、次に [Save] (保存) を選択します。

  14. 左のナビゲーションペインで [Keys] (キー) を選択します。

  15. [Keys (キー)] ページで、[+] アイコンを選択します。

  16. [Register a New Key] ページで、次の操作を行います。

    1. [Key Name] (キー名) に、キー名を入力します。

    2. [Sign In with Apple] (Apple でサインイン) を選択後、[Configure] (設定) を選択します。

    3. [Configure Key] (キーの設定) ページで、プライマリアプリ ID として前に作成したアプリ ID を選択します。[保存] を選択します。

    4. [Continue] (続行) を選択し、[Register] (登録) を選択します。

  17. [Download Your Key] (鍵のダウンロード) ページで、[Download] (ダウンロード) をクリックしてプライベートキーをダウンロードしてから、表示される [Key ID] (キー ID) を書き留め、[Done] (完了) を選択します。このプライベートキーと、このページに表示されている [Key ID] (キー ID) の値は、ステップ 2: ユーザープールにソーシャル IdP を追加する で Apple を ID プロバイダーとして選択した後で必要になります。

ユーザープールにソーシャル IdP を追加する

このセクションでは、前のセクションで取得したクライアント ID およびクライアントシークレットを使用してユーザープールにソーシャル IdP を設定します。

AWS Management Console でユーザープールのソーシャル ID プロバイダーを設定するには
  1. Amazon Cognito コンソールに移動します。AWS 認証情報を求められる場合があります。

  2. [User Pools] (ユーザープール) を選択します。

  3. リストから既存のユーザープールを選択するか、ユーザープールを作成します。

  4. [Sign-in experience] (サインインエクスペリエンス) タブを選択します。[Federated sign-in] (フェデレーションサインイン) を検索し、[Add an identity provider] (ID プロバイダーの追加) を選択します。

  5. ソーシャル ID プロバイダー ([Facebook]、[Google]、[Login with Amazon]、[Sign in with Apple]) を選択します。

  6. ソーシャル ID プロバイダーの選択に基づいて、次のステップから選択します。

    • GoogleLogin with Amazon (Amazon でのログイン) — 前のセクションで生成された [app client ID] (アプリケーションクライアント ID) と [app client secret] (アプリケーションクライアントシークレット) を入力します。

    • Facebook — 前のセクションで生成された [app client ID] (アプリケーションクライアント ID) と [app client secret] (アプリケーションクライアントシークレット) を入力し、API バージョン (例えば、バージョン 2.12) を選択します。Facebook API の各バージョンにはライフサイクルとサポート終了日があるため、可能な限り最新のバージョンを選択することをお勧めします。Facebook のスコープと属性は API バージョンによって異なる場合があります。Facebook でソーシャル ID ログインをテストして、フェデレーションが意図したとおりに機能することを確認することをお勧めします。

    • Sign in with Apple (Apple でサインイン) — 以前のセクションで生成された [Services ID] (サービス ID)、[Team ID] (チーム ID)、[Key ID] (キー ID) および [private key] (プライベートキー) を入力します。

  7. 使用したい [Authorized scopes] (承認するスコープ) の名前を入力します。スコープは、アプリでアクセスするユーザー属性 (nameemail など) を定義します。Facebook の場合は、コンマで区切る必要があります。Google および Login with Amazon の場合は、スペースで区切って指定します。Sign in with Apple の場合は、アクセスするスコープのチェックボックスをオンにします。

    ソーシャル ID プロバイダー スコープ例
    Facebook public_profile, email
    Google profile email openid
    Login with Amazon profile postal_code
    Apple でのサインイン email name

    アプリケーションユーザーは、これらの属性をアプリケーションに提供することに同意するよう求められます。ソーシャルプロバイダーのスコープの詳細については、Google、Facebook、Login with Amazon、および Sign in with Apple のドキュメントを参照してください。

    以下は、Sign in with Apple の場合にスコープが返らない可能性があるユーザーシナリオです。

    • エンドユーザーが Apple のサインインページを離れるとエラーが発生する (Amazon Cognito の内部障害またはデベロッパーが記述したプログラムが原因である可能性があります)

    • サービス ID 識別子がユーザープールや他の認証サービス全体で使用されている

    • ユーザーがサインインした後に、デベロッパーがスコープを追加している。ユーザーは認証時およびトークンの更新時にのみ、新しい情報を取得する。

    • デベロッパーによって削除されたユーザーが Apple ID プロファイルからアプリを削除せずに再度サインインしている

  8. ID プロバイダーからユーザープールに属性をマッピングします。詳細は、「ユーザープール用 ID プロバイダー属性マッピングの特定」を参照してください。

  9. [作成] を選択します。

  10. [App client integration] (アプリケーションクライアント統合) タブから、[App clients] (アプリケーションクライアント) のリストより 1 つ選択して、[Edit hosted UI settings] (ホストされた UI 設定の編集) をクリックします。[Identity providers] (ID プロバイダー) で、新しいソーシャル ID プロバイダーをアプリケーションクライアントに追加します。

  11. [変更の保存] をクリックします。

ソーシャル IdP の設定をテストする

前の 2 つのセクションの要素を使用してログイン URL を作成できます。この URL を使用してソーシャル IdP の設定をテストします。

https://mydomain.us-east-1.amazoncognito.com/login?response_type=code&client_id=1example23456789&redirect_uri=https://www.example.com

ドメインは、コンソールにあるユーザープールの [ドメイン名] ページで確認できます。クライアント ID は [アプリクライアントの設定] ページにあります。redirect_uri パラメータのコールバック URL を使用します。これは、ユーザーが認証に成功した後でリダイレクトされるページの URL です。

注記

Amazon Cognito は 5 分以内に完了しない認証リクエストをキャンセルし、ホストされた UI にユーザーをリダイレクトします。ページには、Something went wrong というエラーメッセージが表示されます。

次のステップ

SAML ID プロバイダーを使用したサインインをユーザープールに追加する (オプション)