

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

# 常見 Amazon Cognito 案例
<a name="cognito-scenarios"></a>

此主題說明使用 Amazon Cognito 的六個常見案例。

Amazon Cognito 的兩個主要元件是使用者集區和身分集區。使用者集區是一種使用者目錄，能為 Web 和行動應用程式使用者提供註冊和登入的選項。身分集區提供暫時 AWS 登入資料，以授予使用者對其他 的存取權 AWS 服務。

使用者集區是在 Amazon Cognito 中的使用者目錄。您的應用程式使用者可以直接透過使用者集區登入，也可以透過第三方身分提供者 (IdP) 聯合。使用者集區可管理處理權杖的開銷，包括透過 Facebook、Google、Amazon 及 Apple 社交登入傳回的權杖，以及從 OpenID Connect (OIDC) 及 SAML IdP 傳回的權杖。無論您的使用者直接登入或透過第三方登入，使用者集區的所有成員都有目錄的設定檔，您可以透過軟體開發套件的存取這些設定檔。

透過身分集區，您的使用者可以取得臨時 AWS 登入資料來存取 AWS 服務，例如 Amazon S3 和 DynamoDB。身分集區支援匿名訪客使用者，以及透過第三方 IdP 的聯合身分。

**Topics**
+ [以使用者集區進行身分驗證](#scenario-basic-user-pool)
+ [使用使用者集區字符存取後端資源](#scenario-backend)
+ [以使用者集區透過 API Gateway 和 Lambda 存取資源](#scenario-api-gateway)
+ [使用使用者集區和身分集區存取 AWS 服務](#scenario-aws-and-user-pool)
+ [與第三方進行身分驗證，並使用身分集區存取 AWS 服務](#scenario-identity-pool)
+ [使用 Amazon Cognito 存取 AWS AppSync 資源](#scenario-appsync)

## 以使用者集區進行身分驗證
<a name="scenario-basic-user-pool"></a>

您可以讓您的使用者透過使用者集區進行身分驗證。您的應用程式使用者可以直接透過使用者集區登入，也可以透過第三方身分提供者 (IdP) 聯合。使用者集區可管理處理字符的開銷，包括透過 Facebook、Google、Amazon 及 Apple 社交登入傳回的字符，以及從 OpenID Connect (OIDC) 及 SAML IdP 傳回的字符。

身分驗證成功後，您的 Web 或行動應用程式就會收到來自 Amazon Cognito 的使用者集區權杖。您可以使用這些字符來擷取登入資料，以允許應用程式存取其他 AWS 服務，或者您可以選擇使用這些 AWS 登入資料來控制對伺服器端資源或 Amazon API Gateway 的存取。

如需詳細資訊，請參閱[範例身分驗證工作階段](authentication.md#amazon-cognito-user-pools-authentication-flow)及[了解使用者集區 JSON Web 字符 JWTs)](amazon-cognito-user-pools-using-tokens-with-identity-providers.md)。

![\[身分驗證概觀\]](http://docs.aws.amazon.com/zh_tw/cognito/latest/developerguide/images/scenario-authentication-cup.png)


## 使用使用者集區字符存取後端資源
<a name="scenario-backend"></a>

使用者集區登入成功後，您的 Web 或行動應用程式就會收到來自 Amazon Cognito 的使用者集區權杖。您可以使用這些權杖來控制存取您的伺服器端資源。您也可以建立使用者集區群組來管理許可，以及呈現不同類型的使用者。如需有關使用群組來控制存取資源的詳細資訊，請參閱[新增群組至使用者集區](cognito-user-pools-user-groups.md)。

![\[透過使用者集區來存取您的伺服器端資源\]](http://docs.aws.amazon.com/zh_tw/cognito/latest/developerguide/images/scenario-standalone.png)


在使用者集區的網域設定完成後，Amazon Cognito 會佈建一個託管 Web UI，供您用來將註冊和登入頁面新增至您的應用程式。使用此 OAuth 2.0 基礎，您可以建立自己的資源伺服器，讓您的使用者能夠存取受保護的資源。如需詳細資訊，請參閱[範圍、M2M 和資源伺服器](cognito-user-pools-define-resource-servers.md)。

如需有關使用者集區身分驗證的詳細資訊，請參閱 [範例身分驗證工作階段](authentication.md#amazon-cognito-user-pools-authentication-flow) 和 [了解使用者集區 JSON Web 字符 JWTs)](amazon-cognito-user-pools-using-tokens-with-identity-providers.md)。

## 以使用者集區透過 API Gateway 和 Lambda 存取資源
<a name="scenario-api-gateway"></a>

您可以讓使用者透過 API Gateway 存取您的 API。API Gateway 從成功的使用者集區身分驗證來驗證權杖，並使用它們來授與使用者存取資源，包括 Lambda 函數或您自己的 API。

您可以使用使用者集區中的群組，藉由將群組成員資格對應至 IAM 角色來使用 API Gateway 控制許可。使用者隸屬的群組，將會包含在使用者集區於應用程式使用者登入時所提供的 ID 權杖中。如欲了解使用者集區群組的詳細資訊，請參閱[新增群組至使用者集區](cognito-user-pools-user-groups.md)。

您可以提交您的使用者集區權杖，包含 Amazon Cognito 授權程式 Lambda 函數對 API Gateway 提出驗證的請求。如需 API Gateway 的詳細資訊，請參閱[搭配 Amazon Cognito 使用者集區使用 API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html)。

![\[透過使用者集區存取 API Gateway\]](http://docs.aws.amazon.com/zh_tw/cognito/latest/developerguide/images/scenario-api-gateway.png)


## 使用使用者集區和身分集區存取 AWS 服務
<a name="scenario-aws-and-user-pool"></a>

使用者集區身分驗證成功後，您的應用程式將會收到來自 Amazon Cognito 的使用者集區權杖。您可以使用身分集區交換其他 AWS 服務的臨時存取權。如需詳細資訊，請參閱[登入後 AWS 服務 使用身分集區存取](amazon-cognito-integrating-user-pools-with-identity-pools.md)及[Amazon Cognito 身分集區入門](getting-started-with-identity-pools.md)。

![\[使用身分集區透過使用者集區存取 AWS 登入資料\]](http://docs.aws.amazon.com/zh_tw/cognito/latest/developerguide/images/scenario-cup-cib.png)


## 與第三方進行身分驗證，並使用身分集區存取 AWS 服務
<a name="scenario-identity-pool"></a>

您可以讓使用者透過身分集區存取 AWS 服務。身分集區需使用者的 IdP 字符，且須由第三方身分提供者經身分驗證 (若為匿名訪客則無)。做為交換，身分集區會授予臨時 AWS 登入資料，供您用來存取其他 AWS 服務。如需詳細資訊，請參閱[Amazon Cognito 身分集區入門](getting-started-with-identity-pools.md)。

![\[使用身分集區透過第三方身分提供者存取 AWS 憑證\]](http://docs.aws.amazon.com/zh_tw/cognito/latest/developerguide/images/scenario-identity-pool.png)


## 使用 Amazon Cognito 存取 AWS AppSync 資源
<a name="scenario-appsync"></a>

您可以透過成功的 Amazon Cognito 使用者集區身分驗證授予使用者存取 AWS AppSync 資源的權限。如需詳細資訊，請參閱《AWS AppSync 開發人員指南》中的 [AMAZON\$1COGNITO\$1USER\$1POOLS 授權](https://docs.aws.amazon.com/appsync/latest/devguide/security-authz.html#amazon-cognito-user-pools-authorization)。

您也可以使用從身分集區收到的 IAM 登入資料來簽署對 AWS AppSync GraphQL API 的請求。請見 [AWS\$1IAM 授權](https://docs.aws.amazon.com/appsync/latest/devguide/security-authz.html#aws-iam-authorization)。

![\[透過使用者集區或身分集區存取 AWS AppSync 資源\]](http://docs.aws.amazon.com/zh_tw/cognito/latest/developerguide/images/scenario-appsync.png)
