

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

# 登入後使用 API Gateway 存取資源
<a name="user-pool-accessing-resources-api-gateway-and-lambda"></a>

Amazon Cognito 使用者集區字符的常見用途是授權對 [API Gateway REST API](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html) 的請求。存取權杖中的 OAuth 2.0 範圍可以授權方法和路徑，例如 `HTTP GET` 的 `/app_assets`。ID 字符可以做為 API 的一般身分驗證，也可以將使用者屬性傳遞至後端服務。API Gateway 有其他自訂授權選項，例如[適用於 HTTP APIs JWT 授權方](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html)和可套用更精細邏輯的 [Lambda 授權方](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html)。

下圖說明使用存取字符中的 OAuth 2.0 範圍來存取 REST API 的應用程式。

![\[使用 Amazon Cognito 使用者集區進行身分驗證並授權使用 Amazon API Gateway 存取 API 資源的應用程式流程圖。\]](http://docs.aws.amazon.com/zh_tw/cognito/latest/developerguide/images/access-services-api-gateway.png)


您的應用程式必須從已驗證的工作階段收集字符，並將其做為承載字符新增至請求中的 `Authorization`標頭。設定您為 API、路徑和方法設定的授權方，以評估權杖內容。API Gateway 只有在請求符合您為授權方設定的條件時，才會傳回資料。

API Gateway API 可以核准從應用程式存取的一些潛在方式如下：
+ 存取權杖有效、未過期，且包含正確的 OAuth 2.0 範圍。[REST API 的 Amazon Cognito 使用者集區授權方](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html)是具有低進入障礙的常見實作。您也可以評估對此類授權方請求的內文、查詢字串參數和標頭。
+ ID 字符有效且尚未過期。當您將 ID 字符傳遞給 Amazon Cognito 授權方時，您可以在應用程式伺服器上對 ID 字符內容執行額外的驗證。
+ 存取或 ID 字符中的群組、宣告、屬性或角色符合您在 Lambda 函數中定義的需求。[Lambda 授權方](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html)會剖析請求標頭中的權杖，並評估權杖是否有授權決策。您可以在函數中建構自訂邏輯，或向 [Amazon Verified Permissions](https://docs.aws.amazon.com/verifiedpermissions/latest/userguide/what-is-avp.html) 提出 API 請求。

您也可以使用來自使用者集區的字符授權 [AWS AppSync GraphQL API](https://docs.aws.amazon.com/appsync/latest/devguide/security-authz.html#amazon-cognito-user-pools-authorization) 的請求。