翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
SAML 署名と暗号化
SAML 2.0 サインインは、認証フローのリクエストとレスポンスのベアラとしてアプリケーションのユーザーを中心に構築されます。ユーザーが転送中にこれらのSAMLドキュメントを読み取りまたは変更しないようにしたい場合があります。これを行うには、ユーザープールの SAML ID プロバイダー (IdPs) に署名SAMLと暗号化を追加します。SAML 署名すると、ユーザープールはSAMLサインインリクエストとサインアウトリクエストに署名を追加します。ユーザープールのパブリックキーを使用すると、IdP は変更されていないSAMLリクエストを受信していることを確認できます。次に、IdP が応答し、ユーザーのブラウザセッションにSAMLアサーションを渡すと、IdP はその応答を暗号化して、ユーザーが独自の属性と権限を検査できないようにします。
SAML 署名と暗号化では、ユーザープールオペレーション中のすべての暗号化SAMLオペレーションで、Amazon Cognito が生成する user-pool-provided キーを使用して署名と暗号文を生成する必要があります。現在、外部キーを使用してリクエストに署名したり、暗号化されたアサーションを受け入れるようにユーザープールを設定することはできません。
注記
ユーザープール証明書は 10 年間有効です。年に 1 回、Amazon Cognito はユーザープールの新しい署名証明書と暗号化証明書を生成します。Amazon Cognito は、署名証明書をリクエストするときに最新の証明書を返し、最新の署名証明書を使用してリクエストに署名します。IdP は、有効期限が切れていないユーザープール暗号化証明書を使用してSAMLアサーションを暗号化できます。以前の証明書は、その期間全体にわたって引き続き有効であり、パブリックキーは証明書間で変更されません。ベストプラクティスとして、プロバイダー設定で証明書を毎年更新します。
IdP からの暗号化されたSAMLレスポンスの受け入れ
Amazon Cognito と IdP は、ユーザーがサインインおよびサインアウトするときに、SAMLレスポンスの機密性を確立できます。Amazon Cognito は、パブリック/プライベートRSAキーペアと証明書を、ユーザープールで設定する各外部SAMLプロバイダーに割り当てます。ユーザープールSAMLプロバイダーのレスポンス暗号化を有効にする場合は、暗号化されたSAMLレスポンスをサポートする IdP に証明書をアップロードする必要があります。SAML IdP へのユーザープール接続は、IdP が提供されたキーですべてのSAMLアサーションの暗号化を開始する前に機能しません。
暗号化されたSAMLサインインの流れの概要を次に示します。
-
ユーザーがサインインを開始し、IdP SAML を選択します。
-
ユーザープールは、SAMLサインインリクエストを使用してユーザーを IdP SAML に認可エンドポイントリダイレクトします。ユーザープールは、必要に応じて、IdP による整合性の検証を可能にする署名でこのリクエストに付随できます。SAML リクエストに署名する場合は、署名証明書のパブリックキーでユーザープールが署名したリクエストを受け入れるように IdP を設定する必要があります。
-
IdP SAML はユーザーに署名し、SAMLレスポンスを生成します。IdP はパブリックキーでレスポンスを暗号化し、ユーザーをユーザープール
/saml2/idpresponse
エンドポイントにリダイレクトします。IdP は、2.0 SAML 仕様で定義されているようにレスポンスを暗号化する必要があります。詳細については、OASIS「Security Assertion Markup Language (SAML) V2.0 のアサーションとプロトコルElement <EncryptedAssertion>
」を参照してください。 -
ユーザープールは、ユーザーのプライベートキーと署名を使用してSAMLレスポンス内の暗号文を復号します。
重要
ユーザープールで IdP SAML のレスポンス暗号化を有効にする場合、IdP はプロバイダーに固有のパブリックキーを使用してすべてのレスポンスを暗号化する必要があります。Amazon Cognito は、暗号化をサポートするように設定したSAML外部 IdP からの暗号化されていないSAMLレスポンスを受け入れません。
ユーザープール内の任意の外部 SAML IdP はレスポンス暗号化をサポートでき、各 IdP は独自のキーペアを受け取ります。
SAML リクエストへの署名
IdP への 2.0 SAML リクエストの整合性を証明する機能は、Amazon Cognito SP 開始SAMLサインインのセキュリティ上の利点です。ドメインを持つ各ユーザープールは、ユーザープール X.509 署名証明書を受け取ります。この証明書のパブリックキーを使用すると、ユーザープールは、ユーザーが SAML IdP を選択したときにユーザープールが生成するサインアウトリクエストに暗号化署名を適用します。オプションで、SAMLサインインリクエスト に署名するようにアプリケーションクライアントを設定できます。SAML リクエストに署名すると、IdP は、リクエストのXMLメタデータの署名が、指定したユーザープール証明書のパブリックキーと一致することを確認できます。