ユーザープールでの SAML ID プロバイダーの追加と管理 - Amazon Cognito

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

ユーザープールでの SAML ID プロバイダーの追加と管理

次の手順は、Amazon Cognito ユーザープールで SAML プロバイダーを作成、変更、削除する方法を示しています。

AWS Management Console

を使用して、SAML ID プロバイダー () AWS Management Console を作成および削除できますIdPs。

SAML IdP を作成する前に、サードパーティーの IdP から取得した SAML メタデータドキュメントが必要です。必要な SAML メタデータドキュメントの取得または生成方法については、「サードパーティーの SAML ID プロバイダーの設定」を参照してください。

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

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

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

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

  5. [SAML] IdP を選択します。

  6. プロバイダー名 を入力します。このフレンドリ名は、 identity_providerリクエストパラメータで に渡すことができます認可エンドポイント

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

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

    注記

    このオプションが選択されていて、SAML IdP が署名付きログアウトリクエストを想定している場合は、ユーザープールの署名証明書を SAML IdP に提供する必要があります。

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

  9. IdP が開始する SAML サインイン設定を選択します。セキュリティのベストプラクティスとして、SP 開始 SAML アサーションのみを受け入れる を選択します。未承諾の SAML サインインセッションを安全に受け入れるように環境を準備している場合は、SP 開始および IdP 開始の SAML アサーションを受け入れる を選択します。詳細については、「Amazon Cognito ユーザープールでの SAML セッション開始」を参照してください。

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

    注記

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

  11. SAML プロバイダーとユーザープールの間で属性をマッピングし、SAML プロバイダー属性をユーザープールのユーザープロファイルにマッピングします。ユーザープールの必須属性を属性マップに含めます。

    例えば、[User pool attribute] (ユーザープール属性) email を選択する場合、IdP からの SAML アサーションに表示される SAML 属性名を入力します。IdP がサンプル SAML アサーションを提供している場合は、これらのサンプルアサーションを使用して名前を見つけやすいかもしれません。などの単純な名前 IdPs を使用するものもあればemail、次のような名前を使用するものもあります。

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

API/CLI

SAML ID プロバイダー (IdP) を作成して管理するには、以下のコマンドを使用します。

IdP を作成し、メタデータドキュメントをアップロードする
  • AWS CLI: aws cognito-idp create-identity-provider

    メタデータファイルの例: aws cognito-idp create-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1 --provider-type SAML --provider-details file:///details.json --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

    ここでは details.json に以下が含まれます。

    "ProviderDetails": { "MetadataFile": "<SAML metadata XML>", "IDPSignout" : "true", "RequestSigningAlgorithm" : "rsa-sha256", "EncryptedResponses" : "true", "IDPInit" : "true" }
    注記

    <SAML メタデータ XML> に文字 のインスタンスが含まれている場合は"、エスケープ文字\として を追加する必要があります\"

    メタデータ URL の例: aws cognito-idp create-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1 --provider-type SAML --provider-details MetadataURL=https://myidp.example.com/sso/saml/metadata --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

  • AWS API: CreateIdentityProvider

IdP の新規メタデータドキュメントをアップロードする
  • AWS CLI: aws cognito-idp update-identity-provider

    メタデータファイルの例: aws cognito-idp update-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1 --provider-details file:///details.json --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

    ここでは details.json に以下が含まれます。

    "ProviderDetails": { "MetadataFile": "<SAML metadata XML>", "IDPSignout" : "true", "RequestSigningAlgorithm" : "rsa-sha256", "EncryptedResponses" : "true", "IDPInit" : "true" }
    注記

    <SAML メタデータ XML> に文字 のインスタンスが含まれている場合は"、エスケープ文字\として を追加する必要があります\"

    メタデータ URL の例: aws cognito-idp update-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1 --provider-details MetadataURL=https://myidp.example.com/sso/saml/metadata --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

  • AWS API: UpdateIdentityProvider

固有の IdP に関する情報を取得するには
  • AWS CLI: aws cognito-idp describe-identity-provider

    aws cognito-idp describe-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1

  • AWS API: DescribeIdentityProvider

すべての に関する情報を一覧表示するには IdPs
  • AWS CLI: aws cognito-idp list-identity-providers

    例: aws cognito-idp list-identity-providers --user-pool-id us-east-1_EXAMPLE --max-results 3

  • AWS API: ListIdentityProviders

IdP を削除する
  • AWS CLI: aws cognito-idp delete-identity-provider

    aws cognito-idp delete-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1

  • AWS API: DeleteIdentityProvider

ユーザープールを証明書利用者として追加するために SAML IdP をセットアップする
  • ユーザープールのサービスプロバイダー URN は urn:amazon:cognito:sp:us-east-1_EXAMPLE です。Amazon Cognito には、SAML レスポンスでこの URN に一致するオーディエンス制限値が必要です。IdP から SP への応答メッセージに次の POST バインディングエンドポイントを使用するように IdP を設定します。

    https://mydomain.us-east-1.amazoncognito.com/saml2/idpresponse
  • SAML IdP は、SAML アサーションでユーザープールに必要な属性NameIDと を入力する必要があります。 NameIDは、ユーザープール内の SAML フェデレーティッドユーザーを一意に識別するために使用されます。IdP は、各ユーザーの SAML 名 ID を一貫した大文字と小文字を区別する形式で渡す必要があります。ユーザー名 ID の値にバリエーションがあると、新しいユーザープロファイルが作成されます。

SAML 2.0 IDP にデジタル署名用証明書を提供するには
  • IdP が SAML ログアウトリクエストの検証に使用できるパブリックキーのコピーを Amazon Cognito からダウンロードするには、ユーザープールのサインインエクスペリエンスタブを選択し、IdP を選択し、署名証明書を表示 で、.crt としてダウンロード を選択します。

Amazon Cognito コンソールを使用して、ユーザープールで設定した SAML プロバイダーを削除できます。

SAML プロバイダーを削除する
  1. Amazon Cognito コンソールにサインインします。

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

  3. サインインエクスペリエンスタブを選択し、フェデレーティッド ID プロバイダーのサインイン を見つけます。

  4. IdPs 削除する SAML の横にあるラジオボタンを選択します。

  5. [Delete identity provider] (ID プロバイダーの削除) のプロンプトが表示されたら、SAML プロバイダー名を入力して削除を確認し、[Delete] (削除) を選択します。