將SAML身分提供者與使用者集區搭配使用 - Amazon Cognito

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將SAML身分提供者與使用者集區搭配使用

您可以選擇讓您的 Web 和行動應用程式使用者透過SAML身分提供者 IdP) 登入,例如 Microsoft Active Directory 聯合服務 (ADFS)Shibboleth 。您必須選擇支援 SAML SAML2.0 標準 的 IdP。

透過託管 UI 和聯合端點,Amazon Cognito 會驗證本機和第三方 IdP 使用者,並發出 JSON Web 權杖 (JWTs)。使用 Amazon Cognito 發行的權杖,您可以將多個身分來源合併到所有應用程式的通用 OpenID Connect (OIDC) 標準。Amazon Cognito 可以將第三方供應商的SAML聲明處理為該SSO標準。您可以透過 SAML AWS Management Console或 AWS CLI Amazon Cognito 使用者集區 ,在 中建立和管理 IdPAPI。若要在 中建立第一個 SAML IdP AWS Management Console,請參閱 在使用者集區中新增和管理SAML身分提供者

SAML 使用登入進行身分驗證概觀
注意

透過第三方 IdP 登入的聯合是 Amazon Cognito 使用者集區的功能。Amazon Cognito 身分集區,有時稱為 Amazon Cognito 聯合身分,是聯合的實作,您必須在每個身分集區中單獨設定。使用者集區可以是身分集區的第三方 IdP。如需詳細資訊,請參閱Amazon Cognito 身分集區

IdP 組態的快速參考

您必須將 SAML IdP 設定為接受請求,並將回應傳送至使用者集區。SAML IdP 的文件將包含如何將使用者集區新增為 2.0 SAML IdP 的依賴方或應用程式的相關資訊。下列文件提供您必須為 SP 實體 ID 和聲明消費者服務 (ACS) 提供的值URL。

使用者集區SAML值快速參考
SP 實體 ID
urn:amazon:cognito:sp:us-east-1_EXAMPLE
ACS URL
https://Your user pool domain/saml2/idpresponse

您必須設定使用者集區以支援身分提供者。新增外部 IdP SAML 的高階步驟如下所示。

  1. 從 IdP 下載SAML中繼資料,或將 擷取URL至中繼資料端點。請參閱 設定您的第三方SAML身分提供者

  2. 將新的 IdP 新增至您的使用者集區。上傳SAML中繼資料或提供中繼資料 URL。請參閱 在使用者集區中新增和管理SAML身分提供者

  3. 將 IdP 指派給您的應用程式用戶端。請參閱使用應用程式用戶端的應用程式特定設定

SAML 使用者名稱的案例敏感度

當聯合使用者嘗試登入時,SAML身分提供者 IdP) 會在使用者的SAML宣告中將唯一的 傳遞NameId給 Amazon Cognito。Amazon Cognito 會依其NameId宣告來識別SAML聯合使用者。無論您的使用者集區的區分大小寫設定為何,Amazon Cognito 都會在 IdP 傳遞其唯一且區分大小寫的NameId宣告時,識別來自 IdP SAML 的傳回聯合使用者。如果您將一個類似 email 的屬性對應至 NameId,且您的使用者變更其電子郵件地址,則他們無法登入到您的應用程式。

從 IdP 屬性NameId映射您的SAML宣告,該屬性具有不會變更的值。

例如,Carlos 在不區分大小寫的使用者集區中,有一個來自 Active Directory Federation Services (ADFS) SAML宣告的使用者設定檔,該聲明傳遞了 NameId的值Carlos@example.com。下次 Carlos 嘗試登入時,您的 ADFS IdP 會傳遞NameIdcarlos@example.com。由於 NameId 必須是大小寫完全符合,因此登入不會成功。

如果您的使用者在其 NameID 變更後無法登入,請將其使用者描述檔從您的使用者集區中刪除。下次該使用者登入時,Amazon Cognito 會建立新的使用者描述檔。