ユーザープールの ID プロバイダーの設定 - Amazon Cognito

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

ユーザープールの ID プロバイダーの設定

ユーザープールを使用すると、さまざまな外部 ID プロバイダー (IdP) を通じてサインインを実装できます。ガイドのこのセクションには、Amazon Cognito コンソールでユーザープールを使用してこれらの ID プロバイダーを設定する手順が記載されています。または、ユーザープール API と AWS SDK を使用して、ユーザープール ID プロバイダーをプログラムで追加することもできます。詳細については、「CreateIdentityProvider」を参照してください。

サポートされている ID プロバイダーのオプションには、Facebook、Google、Amazon などのソーシャルプロバイダー、OpenID Connect (OIDC)、SAML 2.0 プロバイダーなどがあります。開始する前に、IdP の管理認証情報を設定します。プロバイダーのタイプごとに、アプリケーションの登録、必要な認証情報の取得、ユーザープールでのプロバイダーの詳細の設定を行う必要があります。その後、ユーザーは、接続された ID プロバイダーの既存アカウントを使用して、アプリケーションへのサインアップとサインインができます。

認証の下にあるソーシャルプロバイダーと外部プロバイダーのメニューは、ユーザープール IdPs。詳細については、「サードパーティー ID プロバイダーによるユーザープールのサインイン」を参照してください。

ソーシャル IdP でユーザーサインインを設定する

フェデレーションを使用して、Amazon Cognito のユーザープールを Facebook、Google、Login with Amazon などのソーシャル ID プロバイダーと統合することができます。

ソーシャル ID プロバイダーを追加するには、最初に ID プロバイダーでデベロッパーアカウントを作成します。デベロッパーアカウントが作成されたら、アプリを ID プロバイダーに登録します。ID プロバイダーがアプリ用のアプリ ID とアプリシークレットを作成するので、これらの値を Amazon Cognito ユーザープールで設定します。

ユーザーサインインとソーシャル IdP を統合するには
  1. Amazon Cognito コンソールにサインインします。プロンプトが表示されたら、 AWS 認証情報を入力します。

  2. ナビゲーションペインで [User Pools] (ユーザープール) を選択してから、編集するユーザープールを選択します。

  3. ソーシャルプロバイダーと外部プロバイダーのメニューを選択します。

  4. [Add an identity provider] (ID プロバイダーを追加する) を選択、または、設定した [Facebook][Google][Amazon]、または [Apple] などを選択し、[Identity provider information] (ID プロバイダー情報) を検索し、[Edit] (編集) をクリックします。ソーシャル ID プロバイダーの追加の詳細については、「ユーザープールによるソーシャル ID プロバイダーの使用」を参照してください。

  5. 選択した IdP に基づいて、次のいずれかの手順を実行して、ソーシャル ID プロバイダーの情報を入力します。

    Facebook、Google、および Login with Amazon

    クライアントアプリを作成したときに受け取ったアプリ ID とアプリシークレットを入力します。

    Apple でサインイン

    Apple に提供したサービス ID、およびアプリケーションクライアントを作成したときに受け取ったチーム ID、キー ID、プライベートキーを入力します。

  6. [Authorize scopes] (承認スコープ) に、ユーザープール属性にマップするソーシャル ID プロバイダースコープの名前を入力します。スコープは、アプリケーションでアクセスするユーザー属性 (名前や E メールなど) を定義します。スコープを入力するときは、選択した IdP に基づいて、次のガイドラインに従ってください。

    • Facebook — スコープはカンマで区切ります。例:

      public_profile, email

    • Google、Login with Amazon、Sign in with Apple — スコープをスペースで区切ります。例:

      • Google: profile email openid

      • Login with Amazon: profile postal_code

      • Sign In with Apple: name email

        注記

        Sign in with Apple (コンソール) の場合は、チェックボックスを使用してスコープを選択します。

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

  8. アプリクライアントメニューから、リストからアプリクライアントを選択し、編集を選択します。[Identity providers] (ID プロバイダー) で、新しいソーシャル ID プロバイダーをアプリケーションクライアントに追加します。

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

ソーシャル IdP の詳細については、「ユーザープールによるソーシャル ID プロバイダーの使用」を参照してください。

OIDC IdP でユーザーサインインを設定する

Salesforce や Ping Identity などの OpenID Connect (OIDC) ID プロバイダーとユーザーサインインを統合することができます。

OIDC プロバイダーをユーザープールに追加するには
  1. Amazon Cognito コンソールに移動します。プロンプトが表示されたら、 AWS 認証情報を入力します。

  2. ナビゲーションメニューから [User Pools] (ユーザープール) を選択します。

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

  4. ソーシャルプロバイダーと外部プロバイダーメニューを選択し、ID プロバイダーの追加を選択します。

  5. [OpenID Connect] (OpenID 接続) ID プロバイダーを選択します。

  6. [Provider name] (プロバイダー名) に一意の名前を入力します。

  7. プロバイダーから受け取ったクライアント ID を、[Client ID] (クライアント ID) へ入力します。

  8. プロバイダーから受け取ったクライアントシークレットを、[Client secret] (クライアントシークレット) に入力します。

  9. このプロバイダーの [Authorized scopes] (承認済みスコープ) を入力します。スコープは、アプリケーションがプロバイダーにリクエストするユーザー属性のグループ (name および email など) を定義します。OAuth 2.0 仕様に従い、スコープはスペースで区切る必要があります。

    ユーザーはこれらの属性をアプリケーションに提供することに同意する必要があります。

  10. [Attribute request method] (属性リクエストメソッド) を選択して、プロバイダーが操作する [userInfo] エンドポイントからユーザーの詳細をフェッチするために必要な HTTP メソッド(GET または POST)を Amazon Cognito に提供します。

  11. [Setup method] (セットアップ方法) を選択して、OpenID Connect エンドポイントを、[Auto fill through issuer URL] (発行者 URL による自動入力) または [Manual input] (手動入力) で取得します。[Auto fill through issuer URL] (発行者 URL による自動入力) は、Amazon Cognito が authorizationtokenuserInfo、および jwks_uri エンドポイントの URL を取得できるパブリック .well-known/openid-configuration エンドポイントを、プロバイダーが持っている場合に使用します。

  12. 発行者の URL、または IdP からの authorizationtokenuserInfo、および jwks_uri エンドポイントの URL を入力します。

    注記

    検出、自動入力、および手動で入力された URL には、ポート番号 443 と 80 のみを使用できます。OIDC プロバイダーが標準外の TCP ポートを使用している場合、ユーザーログインは失敗します。

    発行者の URL は https:// で始まる必要があり、/ 文字で終わらせることはできません。例えば、Salesforce では次の URL を使用します。

    https://login.salesforce.com

    発行者 URL に関連付けられている openid-configuration ドキュメントには、次の値の HTTPS URL を指定する必要があります: authorization_endpointtoken_endpointuserinfo_endpoint、および jwks_uri。同様に、[Manual input] (手動入力) を選択する場合は、HTTPS URL のみを入力できます。

  13. デフォルトで、OIDC クレームの [sub] (サブ) はユーザープール属性の [Username] (ユーザーネーム) にマッピングされます。他の OIDC クレームをユーザープール属性にマッピングできます。OIDC クレームを入力し、対応するユーザープール属性をドロップダウンリストから選択します。例えば、通常、クレームの [email] はユーザープール属性の [E メール] にマッピングされます。

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

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

  16. アプリクライアントメニューから、リストからアプリクライアントを選択し、編集を選択します。新しい SAML ID プロバイダーをアプリケーションクライアントに追加するには、ログインページタブに移動し、マネージドログインページ設定の編集を選択します。

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

OIDC IdPs の詳細については、「ユーザープールでの OIDC ID プロバイダーの使用」を参照してください。

SAML IdP でユーザーサインインを設定する

Amazon Cognito ユーザープールのフェデレーションを使用して、SAML ID プロバイダー (IdP) と統合することができます。メタデータドキュメントを指定します。ファイルをアップロードするか、メタデータドキュメントのエンドポイント URL を入力します。サードパーティーの SAML IdP のメタデータドキュメントの取得については、「サードパーティー SAML ID プロバイダーの設定」を参照してください。

ユーザープールに SAML 2.0 ID プロバイダーを設定する
  1. Amazon Cognito コンソールに移動します。プロンプトが表示されたら、 AWS 認証情報を入力します。

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

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

  4. ソーシャルプロバイダーと外部プロバイダーメニューを選択し、ID プロバイダーの追加を選択します。

  5. [SAML] ID プロバイダーを選択します。

  6. カンマで区切られた [Identifiers] (識別子) を入力します。識別子は Amazon Cognito に、ユーザーのサインイン E メールアドレスを確認し、ドメインに対応するプロバイダーに誘導する必要があることを伝えます。

  7. ユーザーがログアウトしたときに、Amazon Cognito が署名されたサインアウト要求をプロバイダーに送信するためには、[Add sign-out flow] (サインアウトフローの追加) を選択します。マネージドログインを設定するときに Amazon Cognito が作成するhttps://mydomain.us-east-1.amazoncognito.com/saml2/logoutエンドポイントにサインアウトレスポンスを送信するように SAML 2.0 ID プロバイダーを設定します。saml2/logout エンドポイントでは、ポストバインディングを使用します。

    注記

    このオプションを選択し、SAML ID プロバイダーが署名付きログアウトリクエストを期待する場合は、SAML IdP で Amazon Cognito が提供する署名証明書を設定する必要もあります。

    SAML IdP は署名されたログアウトリクエストを処理し、Amazon Cognito セッションからユーザーをログアウトさせます。

  8. [Metadata document source] (メタデータドキュメントソース) を選択します。ID プロバイダーがパブリック URL で SAML メタデータを提供する場合は、[Metadata document URL] (メタデータドキュメント URL) を選択してそのパブリック URL を入力できます。それ以外の場合は、[Upload metadata document] (メタデータドキュメントをアップロード) を選択し、プロバイダーから以前ダウンロードしたメタデータファイルを選択します。

    注記

    プロバイダーにパブリックエンドポイントがある場合は、ファイルをアップロードするのではなく、メタデータドキュメントの URL を入力することをお勧めします。URL を使用する場合、Amazon Cognito はメタデータを自動的に更新します。通常、メタデータの更新は 6 時間ごとまたはメタデータの有効期限が切れる前のいずれか早いタイミングで発生します。

  9. [Map attributes between your SAML provider and your app] (SAML プロバイダーとアプリ間で属性をマッピング) をクリックして、SAML プロバイダーの属性をユーザープールのユーザープロファイルにマッピングします。ユーザープールの必須属性を属性マップに含めます。

    たとえば、[User pool attribute] (ユーザープール属性) email を選択する場合、ID プロバイダーからの SAML アサーションに表示される SAML 属性名を入力します。ID プロバイダーは、参考として SAML アサーションのサンプルを提供する場合があります。ID プロバイダーの中には、email などの単純な名前を使用するものもあれば、次のような URL 形式の属性名を使用するものもあります。

    http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
  10. [Create] (作成) を選択します。

注記

HTTPS メタデータエンドポイント URL を使用して SAML IdP を作成中に InvalidParameterException が表示される場合、メタデータエンドポイントの SSL が正しくセットアップされていること、および有効な SSL 証明書が関連付けられていることを確認してください。このような例外の例として、「Error retrieving metadata from <metadata endpoint>」が挙げられます。

署名証明書を追加するために SAML IdP をセットアップする
  • IdP が署名付きログアウトリクエストの検証に使用するパブリックキーを含む証明書を取得するには、次の手順を実行します。

    1. ユーザープールのソーシャルプロバイダーメニューと外部プロバイダーメニューに移動します。

    2. SAML プロバイダーを選択します。

    3. 署名証明書の表示を選択します。

SAML IdP の詳細については、「ユーザープールによる SAML ID プロバイダーの使用」を参照してください。