本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在使用者集區中新增及管理SAML身分識別提供者
下列程序示範如何在 Amazon Cognito 使用者集區中建立、修改和刪除SAML提供者。
- AWS Management Console
-
您可以使用建 AWS Management Console 立和刪除SAML身分識別提供者 (IdPs)。
建立 SAML IdP 之前,您必須具有從協力廠商 IdP 取得的SAML中繼資料文件。如需如何取得或產生所需SAML中繼資料文件的指示,請參閱設定第三方SAML身分提供者。
若要在您的使用者集區中設定 SAML 2.0 IdP
-
前往 Amazon Cognito 主控台
。若出現提示,請輸入 AWS 憑證。 -
選擇 User Pools (使用者集區)。
-
從清單中選擇現有的使用者集區,或建立使用者集區。
-
選擇 Sign-in experience (登入體驗) 索引標籤。找到 Federated sign-in (聯合登入),然後選擇 Add an identity provider (新增身分提供者)。
-
選擇一個 SAMLIdP。
-
輸入提供者名稱。您可以在
identity_provider
請求參數中將此易記名稱傳遞給授權端點. -
輸入以逗號分隔的 Identifiers (識別符)。識別符通知 Amazon Cognito,應該檢查使用者在登入時輸入的電子郵件地址,然後將其導向至與其網域對應的供應商。
-
如果您希望 Amazon Cognito 在使用者登出時傳送已簽署的登出請求給您的供應商,則請選擇 Add sign-out flow (新增登出流程)。您必須將 SAML 2.0 IdP 設定為將登出回應傳送至設定託管 UI 時建立的
https://
端點。mydomain.us-east-1.amazoncognito.com
/saml2/logoutsaml2/logout
端點使用POST繫結。注意
如果選取此選項,且您的 SAML IdP 需要已簽署的登出要求,則您還必須向您的 SAML IdP 提供來自使用者集區的簽署憑證。
SAMLIdP 將處理已登出的登出要求,並從 Amazon Cognito 工作階段登出您的使用者。
-
選擇您的 IDP 起始SAML登入設定。作為安全性最佳作法,請選擇「僅接受 SP 起始的SAML宣告」。如果您已準備好安全地接受來路不明的SAML登入工作階段的環境,請選擇「接受 SP 起始和 IDP SAML 起始的宣告」。如需詳細資訊,請參閱SAMLAmazon Cognito 用戶集區中的會話啟動。
-
選擇 Metadata document source (中繼資料文件來源)。如果您的 IdP 公開提供SAML中繼資料URL,您可以選擇「中繼資料」文件URL並輸入該公開URL資料。否則,請選擇 Upload metadata document (上傳中繼資料文件),然後選取您先前從供應商處下載的中繼資料檔案。
注意
URL如果您的供應商具有公開端點,建議您輸入中繼資料文件,而不是上傳檔案。Amazon Cognito 會自動從中繼資料重新整理中繼資料URL。通常每 6 小時或是在中繼資料過期之前 (取較早的時間) 重新整理中繼資料。
-
將SAML提供者與使用者集區之間的屬性對應,以將SAML提供者屬性對應至使用者集區中的使用者設定檔。在屬性對應中包含您的使用者集區必要屬性。
例如,當您選擇使用者集區屬性時
email
,請輸入 IdP SAML 宣告中顯示的SAML屬性名稱。如果您的 IdP 提供範例SAML判斷提示,您可以使用這些範例判斷提示來協助您尋找名稱。有些 IdPs 使用簡單名稱,例如email
,而另一些則使用類似下面的名稱。http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
-
選擇 Create (建立)。
-
- API/CLI
-
使用下列命令建立和管理SAML身分識別提供者 (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-mappingemail
=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 metadata 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-mappingemail
=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-mappingemail
=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 metadata 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-mappingemail
=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:
。Amazon Cognito 要求URN在SAML回應中符合此限制的受眾限制值。將 IdP 設定為針對 IDP 到 SP 回應訊息使用下列POST繫結端點。us-east-1_EXAMPLE
https://
mydomain.us-east-1.amazoncognito.com
/saml2/idpresponse -
您的 SAML IdP 必須在SAML宣告中填入您的使用者集區以
NameID
及任何必要的屬性。NameID
用於在使用者集區中唯一識別您的SAML聯合身分使用者。您的 IdP 必須以一致且區分大小寫的格式傳遞每個使用者的SAML名稱 ID。使用者名稱 ID 值的任何變化都會建立新的使用者設定檔。
為您的 SAML 2.0 提供簽署憑證 IDP
-
若要從 Amazon Cognito 下載 IdP 可用來驗證登SAML出請求的公開金鑰複本,請選擇使用者集區的 [登入體驗] 索引標籤,選取您的 IdP,然後在 [檢視簽署憑證] 下選取 [下載為 .crt]。
您可以使用 Amazon Cognito 主控台刪除您在使用者集區中設定的任何SAML提供者。
若要刪除提SAML供者
-
在導覽窗格中,選擇 User Pools (使用者集區),然後選擇您要編輯的使用者集區。
-
選擇 [登入體驗] 索引標籤,並找到 [聯合身分提供者登入]
-
選取SAML IdPs 您要刪除的旁邊的圓形按鈕。
-
當系統提示您刪除身分識別提供者時,請輸入要確認刪除的提SAML供者名稱,然後選擇 [刪除]。