本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 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/軟體開發套件或 API 建立使用者集區,或使用其他 AWS 帳戶擁有的使用者集區。
-
使用 API Gateway 主控台、CLI/軟體開發套件或 API 建立 API Gateway authorizer 與所選的使用者集區。
-
使用 API Gateway 主控台、CLI/軟體開發套件或 API 在選取的 API 方法中啟用授權方。
若要在使用者集區啟用的狀況下呼叫任何 API 方法,您的 API 用戶端要執行下列任務:
-
使用 Amazon Cognito CLI/軟體開發套件
或 API 將使用者登入至所選擇的使用者集區,並取得身分字符或存取字符。若要進一步了解如何使用開發套件,請參閱使用 AWS 開發套件的 Amazon Cognito 程式碼範例。 -
使用用戶端特定架構呼叫已部署的 API Gateway API,並在
Authorization
標頭中提供適當的字符。
身為 API 開發人員,您必須為您的用戶端開發人員提供使用者集區 ID、用戶端 ID,以及定義為使用者集區一部分之相關聯的用戶端密碼 (如可能)。
注意
為了讓使用者使用 Amazon Cognito 登入資料登入,同時取得暫時性登入資料以使用 IAM 角色的許可,請使用 Amazon Cognito 聯合身分。對於每個 API 資源端點 HTTP 方法,將授權類型 Method Execution
設定為 AWS_IAM
。
我們會在本節中說明如何建立使用者集區、如何整合 API Gateway API 與使用者集區,以及如何呼叫與使用者集區整合的 API。