設定建立使用者的原則 - Amazon Cognito

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

設定建立使用者的原則

您的使用者集區可以允許使用者註冊,或也可將其建立為管理員。您還可以控制註冊後的驗證和確認過程有多大程度掌握在用戶手中。例如,您可能想要根據外部驗證程序查看並接受註冊。此組態或管理員建立使用者政策,也定下了使用者將無法再確認自身帳戶前的時限。

Amazon Cognito 可以滿足您大眾客戶的需求,做為軟體的客戶身分和存取管理 (CIAM) 平台。針對任何知道您公開應用程式客戶端 ID 並請求註冊的網路用戶,接受註冊並具有應用程式客戶端 (無論是否具有託管 UI) 的使用者集區可為其創建使用者設定檔。註冊的使用者設定檔可以接收存取和身份權杖,並可存取您授權給應用程式的資源。在使用者集區中啟用註冊之前,請先檢閱您的選項,並確保組態符合安全性標準。請謹慎設定啟用自助註冊AllowAdminCreateUserOnly,如下列流程所述。

AWS Management Console

使用者集區的註冊體驗索引標籤,以及建立使用者集區精靈的設定註冊體驗步驟,包含了一些在使用者集區中註冊和管理建立使用者的設定。

若要設定註冊體驗
  1. Cognito 輔助驗證和確認中,選擇是否允許 Cognito 自動傳送訊息以進行驗證和確認。啟用此設定後,Amazon Cognito 會傳送電子郵件或簡訊給新使用者,其中包含他們必須提供給您的使用者集區之代碼。這會確認他們的電子郵件地址或電話號碼所有權、將等效屬性設置為已驗證、並確認用戶帳戶以進行登入。您選擇的待驗證屬性會決定驗證訊息的傳遞方式和目的地。

  2. 驗證屬性變更在建立使用者時並不重要,但與屬性驗證相關。如使用者已變更但尚未驗證登入屬性,您可以允許其繼續使用新屬性值或原始屬性值登入。如需更多詳細資訊,請參閱 在使用者變更電子郵件或電話號碼時進行驗證

  3. 必要屬性顯示必須先提供值的屬性,才能讓使用者註冊或讓您建立使用者。您只能在建立使用者集區精靈中設定必要的屬性。

  4. 自訂屬性對使用者建立和註冊程序很重要,因為您只能在第一次建立使用者時為不可變的自訂屬性設定值。如需自訂屬性的詳細資訊,請參閱 自訂屬性

  5. 如果您希望使用者能夠使用未驗證SignUp API 產生新帳戶,請在自助註冊中選擇啟用自助註冊。如果停用自助註冊,就只能在 Amazon Cognito 主控台或使用 AdminCreateUser 要求以管理員身份建立新使用者。在自助註冊未啟用的使用者集區中,SignUp API 要求會傳回 NotAuthorizedException,且託管的 UI 不會顯示註冊連結。

針對您打算以管理員身分建立使用者的使用者集區,您可以在登入體驗索引標籤中的管理員設定的臨時密碼過期時間下,設定其暫時密碼的持續時間。

管理員建立用戶的另一個重要元素是邀請訊息。當您建立新使用者時,Amazon Cognito 會傳送訊息給他們,內含可讓他們進行首次登入的應用程式連結。在訊息範本下的訊息索引標籤中自訂此訊息範本。

您可以使用用戶端機密來設定機密應用程式用戶端 (通常是 Web 應用程式),防止在沒有應用程式用戶端機密的情況下註冊。作為安全性最佳實務,請勿在公有應用程式用戶端 (通常是行動應用程式) 中散佈應用程式用戶端機密。您可以在 Amazon Cognito 主控台的應用程式整合索引標籤中建立包含用戶端機密的應用程式用戶。

Amazon Cognito user pools API

您可以透過程式設計方式設定參數,以便在 CreateUserPoolUpdateUserPool API 要求中的使用者集區建立使用者。

AdminCreateUserConfig 元素會為使用者集區的下列屬性設定值。

  1. 啟用自助註冊

  2. 您傳送給新管理員建立的使用者之邀請訊息

下列範例新增至完整 API 要求主體時,會設定具有未啟用自助註冊和基本邀請電子郵件的使用者集區。

"AdminCreateUserConfig": { "AllowAdminCreateUserOnly": true, "InviteMessageTemplate": { "EmailMessage": "Your username is {username} and temporary password is {####}.", "EmailSubject": "Welcome to ExampleApp", "SMSMessage": "Your username is {username} and temporary password is {####}." } }

CreateUserPoolUpdateUserPool API 要求的下列其他參數會管理新使用者的建立。

AutoVerifiedAttributes

您想要在註冊新使用者時自動傳送訊息的屬性、電子郵件或電話號碼。

政策

使用者集區密碼政策

結構描述

使用者集區自訂屬性。它們對使用者建立和註冊程序很重要,因為您只能在第一次建立使用者時為不可變的自訂屬性設定值。

此參數也為使用者集區設定必要屬性。下列文字在插入完整 API 要求主體的 Schema 元素時,會視需要設定 email 屬性。

{ "Name": "email", "Required": true }