本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在使用者集區中新增和管理SAML身分提供者
將身分提供者設定為使用 Amazon Cognito 之後,您可以將其新增至使用者集區和應用程式用戶端。下列程序示範如何在 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 (新增身分提供者)。
-
選擇 SAML IdP 。
-
輸入提供者名稱 。您可以在
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 預期會有簽署的登出請求,則您也必須將來自使用者集區的簽署憑證提供給 SAMLIdP。
IdP SAML 將處理已簽署的登出請求,並從 Amazon Cognito 工作階段登出您的使用者。
-
選擇您的 IdP 起始SAML登入組態。作為安全最佳實務,選擇僅接受 SP 啟動的SAML宣告。如果您已準備好環境以安全地接受主動提供的SAML登入工作階段,請選擇接受 SP 啟動和 IdP 啟動的SAML宣告。如需詳細資訊,請參閱SAML Amazon 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 需要與SAML回應URN中相符的受眾限制值。設定您的 IdP 以使用下列繫POST結端點作為 IdP-to-SP回應訊息。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提供者的名稱以確認刪除,然後選擇刪除 。