使用 Amazon Cognito 使用者集區作為授權方來控制對 REST API 的存取 - Amazon API Gateway

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

使用 Amazon Cognito 使用者集區作為授權方來控制對 REST API 的存取

除了使用 IAM 角色和政策Lambda 授權方 (先前稱為自訂授權方) 之外,您還可以使用 Amazon Cognito 使用者集區來控制誰可以在 Amazon API Gateway 中存取您的 API。

若要搭配使用 Amazon Cognito 使用者集區與您的 API,您必須先建立 COGNITO_USER_POOLS 類型的授權方,然後設定 API 方法使用該授權方。API 部署後,用戶端必須先將使用者登入使用者集區,取得該使用者的身分或存取字符,然後透過通常會設定為請求 Authorization 標頭的字符其中之一來呼叫 API 方法。API 呼叫只有在您提供有效的字符時才會成功;否則,用戶端無權發出呼叫,因為用戶端沒有可獲得授權的登入資料。

身分字符是根據登入使用者宣告的身分,用來授權 API 呼叫。存取字符是根據指定的受存取保護資源的自訂範圍,用來授權 API 呼叫。如需詳細資訊,請參閱將字符用於使用者集區資源伺服器和自訂範圍

若要為您的 API 建立和設定 Amazon Cognito 使用者集區,您要執行下列任務:

  • 使用 Amazon Cognito 主控台、CLI /SDK 或 API 建立使用者集區,或使用其他帳戶擁有的使用者集區。 AWS

  • 使用 API Gateway 主控台、CLI/軟體開發套件或 API 建立 API Gateway authorizer 與所選的使用者集區。

  • 使用 API Gateway 主控台、CLI/軟體開發套件或 API 在選取的 API 方法中啟用授權方。

若要在使用者集區啟用的狀況下呼叫任何 API 方法,您的 API 用戶端要執行下列任務:

  • 使用 Amazon Cognito CLI/軟體開發套件或 API 將使用者登入至所選擇的使用者集區,並取得身分字符或存取字符。若要進一步了解如何使用開發套件,請參閱使用開發套件的 Amazon Cognito 程式碼範例。 AWS

  • 使用用戶端特定架構呼叫已部署的 API Gateway API,並在 Authorization 標頭中提供適當的字符。

身為 API 開發人員,您必須為您的用戶端開發人員提供使用者集區 ID、用戶端 ID,以及定義為使用者集區一部分之相關聯的用戶端密碼 (如可能)。

注意

為了讓使用者使用 Amazon Cognito 登入資料登入,同時取得暫時性登入資料以使用 IAM 角色的許可,請使用 Amazon Cognito 聯合身分。對於每個 API 資源端點 HTTP 方法,將授權類型 Method Execution 設定為 AWS_IAM

我們會在本節中說明如何建立使用者集區、如何整合 API Gateway API 與使用者集區,以及如何呼叫與使用者集區整合的 API。