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