更新使用者集區組態 - Amazon Cognito

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

更新使用者集區組態

若要變更中 Amazon Cognito 使用者集區的設定 AWS Management Console,請瀏覽使用者集區設定中的功能型索引標籤,並按照本指南其他區域的說明更新欄位。建立使用者集區之後,您就無法變更某些設定。如果您想要變更以下設定,則必須建立新的使用者集區或應用程式用戶端。

使用者集區名稱

API 參數名稱:PoolName

您指派給您使用者集區的易記名稱。若要變更使用者集區的名稱,請建立新的使用者集區。

Amazon Cognito 使用者集區登入選項

API 參數名稱:AliasAttributesUsernameAttributes

使用者登入時可以作為使用者名稱傳遞的屬性。當您建立使用者集區時,您可以選擇允許以使用者名稱、電子郵件地址、電話號碼或偏好的使用者名稱進行登入。若要變更使用者集區登入選項,請建立新的使用者集區。

讓使用者名稱區分大小寫

API 參數名稱:UsernameConfiguration

當您建立的使用者名稱符合其他使用者名稱 (字母大小寫除外) 時,Amazon Cognito 可以將他們視為同一個使用者或獨一無二的多個使用者。如需詳細資訊,請參閱 使用者集區大小寫區分。若要變更區分大小寫,請建立新的使用者集區。

Client secret (用戶端密碼)

API 參數名稱:GenerateSecret

若建立應用程式用戶端,您可以產生用戶端密碼,以便只有信任的來源才能向您的使用者集區提出請求。如需詳細資訊,請參閱 使用者集區應用程式用戶端。若要變更用戶端密碼,請在同一個使用者集區中建立新的應用程式用戶端。

必要屬性

API 參數名稱:綱要

您的使用者註冊時,或您建立使用者時,您的使用者必須提供其值的屬性。如需詳細資訊,請參閱 使用者集區屬性。若要變更所需的屬性,請建立新的使用者集區。

自訂屬性

API 參數名稱:綱要

具有自訂名稱的屬性。您可以變更使用者的自訂屬性值,但無法將自訂屬性從使用者集區中刪除。如需詳細資訊,請參閱 使用者集區屬性。如果達到自訂屬性數目上限,且想要修改清單,請建立一個新的使用者集區。

簡訊設定

在使用者集區中啟用 SMS 訊息之後,就無法停用它們。

  • 如果您在建立使用者集區時選擇設定 SMS 訊息,則在完成設定後無法停用 SMS。

  • 您可以在建立的使用者集區中啟用 SMS 訊息,但之後就無法停用 SMS。

  • Amazon Cognito 可以使用簡訊進行使用者帳戶邀請和復原、屬性驗證和多重要素身份驗證 (MFA)。啟用簡訊後,您可以隨時開啟或關閉這些功能的 SMS 訊息。

  • SMS 訊息組態包括一個 IAM 角色,您可以將其委派給 Amazon Cognito,以便透過 Amazon SNS 傳送訊息。您可以隨時變更指定的角色。

使用 AWS SDK 或 REST API 更新使用者集區 AWS CDK

在 Amazon Cognito 主控台中,您可以一次變更一個參數的使用者集區設定。例如,若要新增 Lambda 觸發器,您可以選擇新增 Lambda 觸發器,然後選擇函數和觸發器類型。Amazon Cognito 使用者集區 API 的結構方式為使用者集區和應用程式用戶端更新操作需要使用者集區的完整參數集。不過,主控台會透明地將此更新作業與您的其他使用者集區設定自動化。

有時您可能會發現,當更新與 AWS 帳戶 您要更改的設置無關時,可能會導致更新生成錯誤。例如 AWS WAF,已刪除的 Amazon SES 身分識別或 IAM 許可中的變更。如果其中一個目前的參數不再有效,則在修復之前無法更新設定。遇到此類錯誤時,請檢查錯誤回應並驗證其所提及的設定。

Amazon Cognito 使用者集區 REST APIAWS 開發套件是用於 Amazon Cognito 資源的自動化和程式設計配置的工具。AWS Cloud Development Kit (AWS CDK)使用這些工具的請求也必須像 Amazon Cognito 主控台一樣,在請求主體中使用完整的資源組態更新設定。在較高層次,您必須執行以下過程。

  1. 從描述現有資源組態的作業擷取輸出。

  2. 通過設置更改修改輸出。

  3. 在更新資源的作業中傳送修改過的組態。

下列程序會透過 UpdateUserPoolAPI 作業更新您的組態。具有不同輸入字段的相同方法適用於 UpdateUserPoolClient

重要

如果您未提供現有參數的值,則 Amazon Cognito 會將這些參數設定為預設值。例如,當您有現有 LambdaConfig 並提交了 UpdateUserPool 搭配空白 LambdaConfig,您會刪除所有 Lambda 函數給使用者集區觸發條件的指派。當您希望自動變更您的使用者集區組態時,請相應進行規劃。

  1. 使用擷取使用者集區的現有狀態 DescribeUserPool

  2. 設定 DescribeUserPool 的輸出格式,以符合 UpdateUserPool請求參數。將下列頂層欄位及其子物件自輸出 JSON 中移除。

    • Arn

    • CreationDate

    • CustomDomain

    • Domain

    • EmailConfigurationFailure

    • EstimatedNumberOfUsers

    • Id

    • LastModifiedDate

    • Name

    • SchemaAttributes

    • SmsConfigurationFailure

    • Status

  3. 確認產生的 JSON 符合 UpdateUserPool請求參數

  4. 修改您想要在產生的 JSON 中變更的任何參數。

  5. 將您修改的 JSON 作為請求輸入來提交 UpdateUserPool API 請求。

您也可以在 AWS CLI以 update-user-pool--cli-input-json 參數來使用此修改後的 DescribeUserPool 輸出。

或者,執行下列 AWS CLI 命令,為接受的輸入欄位產生包含空白值的 update-user-pool JSON。然後,您可以使用使用者集區中的現有值填入這些欄位。

aws cognito-idp update-user-pool --generate-cli-skeleton --output json

執行以下命令,為應用程式用戶端產生相同的 JSON 物件。

aws cognito-idp update-user-pool-client --generate-cli-skeleton --output json