

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

# 搭配使用者集區使用 SAML 身分提供者
<a name="cognito-user-pools-saml-idp"></a>

您可以選擇讓您的 Web 和行動應用程式使用者透過 SAML 身分提供者 (IdP) 登入，例如 [Microsoft Active Directory Federation Services (ADFS)](https://msdn.microsoft.com/en-us/library/bb897402.aspx) 或 [Shibboleth](http://www.shibboleth.net/)。您必須選擇支援 [SAML 2.0 標準](http://saml.xml.org/saml-specifications)的 SAML IdP。

透過受管登入，Amazon Cognito 會驗證本機和第三方 IdP 使用者，並發出 JSON Web 字符 JWTs)。使用 Amazon Cognito 發行的字符，您可以將多個身分來源合併到所有應用程式的通用 OpenID Connect (OIDC) 標準。Amazon Cognito 可以將第三方供應商的 SAML 聲明處理為該 SSO 標準。您可以在 中 AWS 管理主控台、透過 AWS CLI或使用 Amazon Cognito 使用者集區 API 建立和管理 SAML IdP。若要在 中建立您的第一個 SAML IdP AWS 管理主控台，請參閱 [在使用者集區中新增和管理 SAML 身分提供者](cognito-user-pools-managing-saml-idp.md)。

![使用 SAML 登入的身分驗證概觀](http://docs.aws.amazon.com/zh_tw/cognito/latest/developerguide/images/scenario-authentication-saml.png)


**注意**  
透過第三方 IdP 登入的聯合是 Amazon Cognito 使用者集區的一項功能。Amazon Cognito 身分集區，有時稱為 Amazon Cognito 聯合身分，是聯合的實作，您必須在每個身分集區中個別設定。使用者集區可以是身分集區的第三方 IdP。如需詳細資訊，請參閱[Amazon Cognito 身分集區](cognito-identity.md)。

## IdP 組態的快速參考
<a name="cognito-user-pools-saml-idp-reference"></a>

您必須設定 SAML IdP 以接受請求，並將回應傳送到您的使用者集區。SAML IdP 的文件將包含有關如何將使用者集區新增為 SAML 2.0 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
```

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

1. 從 IdP 下載 SAML 中繼資料，或擷取中繼資料端點的 URL。請參閱 [設定您的第三方 SAML 身分提供者](cognito-user-pools-integrating-3rd-party-saml-providers.md)。

1. 將新的 IdP 新增至您的使用者集區。上傳 SAML 中繼資料或提供中繼資料 URL。請參閱 [在使用者集區中新增和管理 SAML 身分提供者](cognito-user-pools-managing-saml-idp.md)。

1. 將 IdP 指派給您的應用程式用戶端。請參閱 [使用應用程式用戶端的應用程式特定設定](user-pool-settings-client-apps.md)。

**Topics**
+ [IdP 組態的快速參考](#cognito-user-pools-saml-idp-reference)
+ [Amazon Cognito 使用者集區的 SAML IdP 相關須知](cognito-user-pools-saml-idp-things-to-know.md)
+ [SAML 使用者名稱區分大小寫](#saml-nameid-case-sensitivity)
+ [設定您的第三方 SAML 身分提供者](cognito-user-pools-integrating-3rd-party-saml-providers.md)
+ [在使用者集區中新增和管理 SAML 身分提供者](cognito-user-pools-managing-saml-idp.md)
+ [Amazon Cognito 使用者集區中的 SAML 工作階段啟動](cognito-user-pools-SAML-session-initiation.md)
+ [使用單一登出來登出 SAML 使用者](cognito-user-pools-saml-idp-sign-out.md)
+ [SAML 簽署和加密](cognito-user-pools-SAML-signing-encryption.md)
+ [SAML 身分提供者名稱和識別符](cognito-user-pools-managing-saml-idp-naming.md)

## SAML 使用者名稱區分大小寫
<a name="saml-nameid-case-sensitivity"></a>

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

從 IdP 屬性對應您 SAML 聲明中的 `NameId`，其具有不會變更的值。

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

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

**Topics**
+ [IdP 組態的快速參考](#cognito-user-pools-saml-idp-reference)
+ [Amazon Cognito 使用者集區的 SAML IdP 相關須知](cognito-user-pools-saml-idp-things-to-know.md)
+ [SAML 使用者名稱區分大小寫](#saml-nameid-case-sensitivity)
+ [設定您的第三方 SAML 身分提供者](cognito-user-pools-integrating-3rd-party-saml-providers.md)
+ [在使用者集區中新增和管理 SAML 身分提供者](cognito-user-pools-managing-saml-idp.md)
+ [Amazon Cognito 使用者集區中的 SAML 工作階段啟動](cognito-user-pools-SAML-session-initiation.md)
+ [使用單一登出來登出 SAML 使用者](cognito-user-pools-saml-idp-sign-out.md)
+ [SAML 簽署和加密](cognito-user-pools-SAML-signing-encryption.md)
+ [SAML 身分提供者名稱和識別符](cognito-user-pools-managing-saml-idp-naming.md)