IdP によるSAMLサインインの使用 - Amazon Cognito

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

IdP によるSAMLサインインの使用

IdP 開始 2.0 SAML サインイン用に ID プロバイダーを設定すると、 でセッションを開始することなく、ユーザープールドメインのsaml2/idpresponseエンドポイントにSAMLアサーションを提示できます認可エンドポイント。この設定を持つユーザープールは、リクエストされたアプリケーションクライアントがサポートするユーザープールの外部 ID プロバイダーからの IdP 開始SAMLアサーションを受け入れます。次の手順では、IdP 開始 SAML2.0 プロバイダーを使用して設定およびサインインする全体的なプロセスについて説明します。

  1. ユーザープールとアプリケーションクライアントを作成または指定します。

  2. ユーザープールに SAML 2.0 IdP を作成します。

  3. IdP 開始をサポートするように IdP を設定します。IdP 主導型では、他のSSOプロバイダーには適用されないセキュリティ上の考慮事項SAMLが導入されています。このため、IdP で開始されたサインインでSAMLプロバイダーを使用するアプリクライアントにSAML IdPs、ユーザープール自体を含む 以外の を追加することはできません。

  4. IdP 開始SAMLプロバイダーをユーザープール内のアプリクライアントに関連付けます。

  5. SAML IdP のサインインページにユーザーを誘導し、SAMLアサーションを取得します。

  6. SAML アサーションを使用してユーザープールsaml2/idpresponseエンドポイントにユーザーを誘導します。

  7. JSON ウェブトークン () を受信しますJWTs。

ユーザープールで未承諾SAMLのアサーションを受け入れるには、アプリのセキュリティへの影響を考慮する必要があります。リクエストのスプーフィングとCSRF試行は、IdP によって開始されたリクエストを受け入れるときに行われる可能性があります。ユーザープールは IdP 開始のサインインセッションを検証できませんが、Amazon Cognito はリクエストパラメータとSAMLアサーションを検証します。

さらに、SAMLアサーションにInResponseToクレームが含まれておらず、過去 6 分以内に発行された必要があります。

IdP で開始されたリクエストSAMLを に送信する必要があります/saml2/idpresponse。SP が開始しホストされた UI 認証リクエストの場合、リクエストされたアプリケーションクライアント、スコープ、リダイレクト、URIおよびその他の詳細をHTTP GETリクエストのクエリ文字列パラメータとして識別するパラメータを指定する必要があります。ただし、IdP が開始するSAMLアサーションの場合、リクエストの詳細はHTTP POSTリクエストの本文でRelayStateパラメータとしてフォーマットする必要があります。リクエスト本文には、SAMLアサーションをSAMLResponseパラメータとして含める必要があります。

以下は、IdP が開始するSAMLプロバイダーに対するリクエストの例です。

POST /saml2/idpresponse HTTP/1.1 User-Agent: USER_AGENT Accept: */* Host: example.auth.us-east-1.amazoncognito.com Content-Type: application/x-www-form-urlencoded SAMLResponse=[Base64-encoded SAML assertion]&RelayState=identity_provider%3DMySAMLIdP%26client_id%3D1example23456789%26redirect_uri%3Dhttps%3A%2F%2Fwww.example.com%26response_type%3Dcode%26scope%3Demail%2Bopenid%2Bphone HTTP/1.1 302 Found Date: Wed, 06 Dec 2023 00:15:29 GMT Content-Length: 0 x-amz-cognito-request-id: 8aba6eb5-fb54-4bc6-9368-c3878434f0fb Location: https://www.example.com?code=[Authorization code]
AWS Management Console
IdP の開始用に IdP を設定するには SAML
  1. ユーザープール アプリケーションクライアント 、および ID プロバイダーを作成します。 SAML

  2. 関連付けられている場合、アプリクライアントからすべてのソーシャルプロバイダーと OIDC ID プロバイダーの関連付けを解除します。

  3. ユーザープールのサインインエクスペリエンスタブに移動します。

  4. フェデレーティッド ID プロバイダーのサインイン で、SAMLプロバイダーを編集または追加します。

  5. IdP で開始されたSAMLサインイン でSP で開始されたアサーション と IdP で開始されたSAMLアサーション を受け入れる を選択します。

  6. [変更の保存] を選択します。

API/CLI

IdP が開始する IdP を設定するには SAML

CreateIdentityProvider または UpdateIdentityProviderAPIリクエストの IDPInitパラメータSAMLを使用して IdP -initiated を設定します。以下は、IdP が開始する をサポートする IdP ProviderDetailsの例ですSAML。

"ProviderDetails": { "MetadataURL" : "https://myidp.example.com/saml/metadata", "IDPSignout" : "true", "RequestSigningAlgorithm" : "rsa-sha256", "EncryptedResponses" : "true", "IDPInit" : "true" }