本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
SAML 簽署和加密
SAML 2.0 登入是以應用程式的使用者為基礎,作為其身分驗證流程中請求和回應的承載者。您可能想要確保使用者不會在傳輸中讀取或修改這些SAML文件。若要完成此操作,請將SAML簽署和加密新增至使用者集區中的SAML身分提供者 (IdPs)。SAML 簽署時,您的使用者集區會將簽章新增至SAML登入和登出請求。使用您的使用者集區公有金鑰,IdP 可以驗證其是否接收未修改的SAML請求。然後,當您的 IdP 回應並將SAML宣告傳遞給使用者的瀏覽器工作階段時,IdP 可以加密該回應,讓使用者無法檢查自己的屬性和權限。
透過SAML簽署和加密,使用者集區操作期間的所有密碼編譯SAML操作都必須使用 Amazon Cognito 產生的金鑰產生簽章和密碼文字 user-pool-provided。目前,您無法設定使用者集區以簽署請求或使用外部金鑰接受加密宣告。
注意
您的使用者集區憑證有效期為 10 年。每年一次,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,以接受使用者集區已使用簽署憑證中的公有金鑰簽署的請求。
-
IdP SAML 會在您的使用者中簽署並產生SAML回應。IdP 會使用公有金鑰加密回應,並將使用者重新導向至使用者集區
/saml2/idpresponse
端點。IdP 必須加密 2.0 SAML 規格定義的回應。如需詳細資訊,請參閱Element <EncryptedAssertion>
OASIS安全宣告標記語言 (SAML) V2.0 的宣告和通訊協定。 -
您的使用者集區會使用私有金鑰解密SAML回應中的密碼文字,並在您的使用者中簽署。
重要
當您在使用者集區中啟用 IdP SAML 的回應加密時,您的 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中繼資料中的簽章是否符合您提供的使用者集區憑證中的公有金鑰。