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

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

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

既存のパブリック ID プロバイダーまたはソーシャル ID プロバイダーを介してアプリケーションにサインインする機能をユーザーに提供することで、認証エクスペリエンスを向上させることができます。Amazon Cognito ユーザープールは、Facebook、Google、Amazon、Apple などの一般的なソーシャル ID プロバイダー (IdPs) と統合されているため、ユーザーは使い慣れた便利なサインインオプションを利用できます。

ソーシャルサインインを設定すると、アプリケーション専用のアカウントを作成する代わりに、ユーザーに を使用できます。これにより、変換率が向上し、サインアッププロセスがよりシームレスになります。ユーザーの観点からは、既存のソーシャル認証情報を適用して、別のユーザー名とパスワードを記憶しなくても、すばやく認証できます。

ユーザープールでソーシャル IdP を設定するには、いくつかの重要なステップが必要です。クライアント ID とシークレットを取得するには、アプリケーションをソーシャルプロバイダーに登録する必要があります。次に、ソーシャル IdP 設定をユーザープールに追加し、リクエストするスコープと IdP 属性からマッピングするユーザープール属性を指定できます。実行時に、Amazon Cognito はプロバイダーとのトークン交換を処理し、ユーザー属性をマッピングし、共有ユーザープール形式でアプリケーションにトークンを発行します。

ソーシャル IdP に登録する

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    ページ上部のナビゲーションバーからアプリとサービスを選択し、Amazon でログイン を選択します。

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

  5. セキュリティプロファイル名 セキュリティプロファイルの説明 、および同意プライバシー通知 URLを入力します。

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

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

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

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

    https://<your-user-pool-domain>
  10. /oauth2/idpresponse エンドポイントを使用してユーザープールドメインを Allowed Return URLsに入力します。

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

Google Cloud プラットフォームの OAuth 2.0 の詳細については、「Google Workspace for Developers ドキュメント」の「認証と認可の詳細」を参照してください。

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

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

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

  4. を選択しますNEWPROJECT

  5. 製品の名前を入力し、 を選択しますCREATE

  6. 左側のナビゲーションバーで、APIs「」と「サービス」を選択し、「Oauth 同意画面」を選択します。

  7. アプリ情報、アプリドメイン 認可ドメイン 、およびデベロッパーの連絡先情報 を入力します。認可ドメインには、カスタムドメインの amazoncognito.comと ルートを含める必要があります。例: example.com。を選択しますSAVEANDCONTINUE

  8. 1. スコープ で、スコープ を追加または削除し、少なくとも次のOAuthスコープを選択します。

    1. .../auth/userinfo.email

    2. .../auth/userinfo.profile

    3. openid

  9. [Test users] (テストユーザー) で、[Add users] (ユーザーの追加) を選択します。E メールアドレスと他の承認されたテストユーザーを入力し、 SAVE AND CONTINUEを選択します。

  10. 左側のナビゲーションバーを再度展開し、 APIsと サービス を選択し、認証情報 を選択します。

  11. を選択しCREATECREDENTIALSOAuthクライアント ID を選択します。

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

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

    https://<your-user-pool-domain>
  14. 「承認済みリダイレクトURIs」で、ADDURI「」を選択します。ユーザープールのドメインの /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. 新しい識別子の登録ページで、アプリケーション IDsを選択し、続行 を選択します。

  7. タイプを選択ページで、アプリ を選択し、続行 を選択します。

  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. Apple でサインイン: App ID 設定ページで、アプリをプライマリとして設定するか、他の App とグループ化するかを選択しIDs、保存 を選択します。

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

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

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

  11. 新しい識別子の登録ページで、サービス IDsを選択し、続行 を選択します。

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

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

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

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

  13. Identifiers ページから、先ほど作成したサービス ID を選択します。

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

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

    3. ウェブサイト URLsの横にある アイコンを選択します。

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

      <your-user-pool-domain>
    5. Return URLsで、ユーザープールドメインの/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. キーの設定ページで、以前にプライマリアプリケーション ID として作成したアプリケーション ID を選択します。[Save] を選択します。

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

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

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

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

を使用してユーザープールのソーシャル ID プロバイダーを設定するには AWS Management Console
  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 – 前のセクションで生成されたアプリケーションクライアント IDアプリケーションクライアントシークレットを入力します。

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

    • Apple でサインイン – 前のセクションで生成されたサービス ID チーム ID キー ID 、およびプライベートキーを入力します。

  7. 使用する承認済みスコープの名前を入力します。スコープは、アプリでアクセスするユーザー属性 (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 プロバイダーからユーザープールに属性をマッピングします。詳細については、「マッピングについて知っておくべきこと」を参照してください。

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

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

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

ソーシャル 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 というエラーメッセージが表示されます。