

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

# 建立使用者帳戶為管理員
<a name="how-to-create-user-accounts"></a>

使用者集區不只是客戶身分和存取管理 (CIAM) 使用者目錄，網際網路上的任何人都可以在應用程式中註冊使用者設定檔。您可以停用自助式註冊。您可能已經認識您的客戶，並只想認可已事先獲得授權的客戶。您可以使用[私有 SAML 2.0 或 OIDC 身分提供者](cognito-user-pools-identity-federation.md)、[匯入使用者](cognito-user-pools-import-users.md)、在[註冊時篩選使用者](user-pool-lambda-pre-sign-up.md)，或使用管理 API 操作建立使用者，在應用程式周圍放置手動身分驗證護欄。管理建立使用者的工作流程可以是程式設計的，在使用者註冊到另一個系統後佈建使用者，也可以是 Amazon Cognito 主控台中的case-by-case或測試。

當您以管理員身分建立使用者時，Amazon Cognito 會為其設定臨時密碼，並傳送歡迎或邀請訊息。他們可以遵循邀請訊息中的連結，第一次登入，設定密碼並確認其帳戶。以下頁面說明如何建立新的使用者並設定歡迎訊息。如需使用使用者集區 API 和 AWS SDK 或 CDK 建立使用者的詳細資訊，請參閱 [AdminCreateUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminCreateUser.html)。

建立使用者集區後，您可以使用 AWS 管理主控台以及 AWS Command Line Interface 或 Amazon Cognito API 來建立使用者。您可以在使用者集區中為新使用者建立設定檔，然後透過簡訊或電子郵件，傳送附有註冊指示的歡迎訊息給使用者。

以下是管理員如何在使用者集區中管理使用者的一些範例。
+ 在 Amazon Cognito 主控台或使用 `AdminCreateUser` API 操作建立新的使用者設定檔。
+ 讓username-and-password、無密碼、通行金鑰和自訂[身分驗證流程](amazon-cognito-user-pools-authentication-flow-methods.md)可供您的使用者集區和應用程式用戶端使用。
+ 設定使用者屬性值。
+ 建立自訂屬性。
+ 在 `AdminCreateUser` API 請求中設定不可變[自訂屬性](user-pool-settings-attributes.md#user-pool-settings-custom-attributes)的值。此功能無法在 Amazon Cognito 主控台中使用。
+ 指定臨時密碼、建立沒有密碼的使用者，或允許 Amazon Cognito 自動產生密碼。
+ 建立新的使用者並自動確認其帳戶、驗證其電子郵件地址或驗證其電話號碼。
+ 透過 AWS 管理主控台 或 Lambda 觸發條件為新使用者指定自訂簡訊和電子郵件邀請訊息，例如[自訂訊息](user-pool-lambda-custom-message.md)、[自訂簡訊寄件](user-pool-lambda-custom-sms-sender.md)者和[自訂電子郵件寄件者](user-pool-lambda-custom-email-sender.md)。
+ 指定是否要透過簡訊及/或電子郵件傳送邀請訊息。
+ 呼叫 `AdminCreateUser`API，並為 `RESEND` 參數指定 `MessageAction`，以重送歡迎訊息給現有的使用者。
+ 在建立使用者時[，隱藏](#admincreateuserwalkthrough-step-invitationmessage)傳送邀請訊息。
+ 為新使用者帳戶指定最長 90 天的過期時間限制。
+ 允許使用者自行登入，或要求僅限由管理員新增新使用者。

管理員也可以使用伺服器端應用程式中的 AWS 登入資料登入使用者。如需詳細資訊，請參閱[API 和 SDK 身分驗證的授權模型](authentication-flows-public-server-side.md)。

## 使用者身分驗證流程和建立使用者
<a name="how-to-create-user-accounts-flows"></a>

使用者管理建立的選項會根據使用者集區的組態而有所不同。身分*驗證流程*或可供使用者登入和 MFA 使用的方法，可以變更您建立使用者的方式，以及您傳送給他們的訊息。以下是一些可在使用者集區中使用的身分驗證流程。
+ 使用者名稱和密碼
+ 通行密鑰
+ 使用第三方 IdPs登入
+ 無密碼與電子郵件和簡訊一次性密碼 OTPs)
+ 使用電子郵件、SMS 和 Authenticator-app OTPs多重要素驗證
+ 使用 Lambda 觸發程序進行自訂身分驗證

如需如何設定這些登入因素的詳細資訊，請參閱 [使用 Amazon Cognito 使用者集區進行身分驗證](authentication.md)。

## 建立不含密碼的使用者
<a name="how-to-create-user-accounts-thingstoknow-passwordless"></a>

如果您已啟用使用者集區的無密碼登入，則可以建立沒有密碼的使用者。若要建立沒有密碼的使用者，您必須提供可用無密碼登入因素的屬性值。例如，如果您的使用者集區中有電子郵件 OTP 無密碼登入，您可以建立沒有密碼和電子郵件地址屬性的使用者。如果唯一可供新使用者使用的身分驗證流程需要密碼，例如密碼金鑰或使用者名稱密碼，您必須為每個新使用者建立或產生臨時密碼。

**建立沒有密碼的新使用者**
+ 選擇**不在 Amazon Cognito 主控台中設定密碼** Amazon Cognito 
+ 省略或保留空白 `AdminCreateUser` API 請求的`TemporaryPassword`參數

**沒有密碼的使用者會自動確認**  
一般而言，新使用者會取得臨時密碼，並在您建立時進入 `FORCE_CHANGE_PASSWORD` 狀態。當您在沒有密碼的情況下建立使用者時，使用者會立即進入 `CONFIRMED` 狀態。您無法將確認碼重新傳送給 `CONFIRMED` 狀態的這些使用者。

**沒有密碼的使用者的邀請訊息會變更。**  
根據預設，Amazon Cognito 會傳送[邀請訊息](cognito-user-pool-settings-message-customizations.md#cognito-user-pool-settings-user-invitation-message-customization)給新使用者，指出當您建立沒有密碼的使用者`Your username is {userName} and your password is {####}.`時，訊息會指出`Your username is {userName}.`自訂您的邀請訊息，以反映您是否將為使用者設定密碼。省略無`{####}`密碼身分驗證模型中的密碼變數。

**當無密碼因素可用時，您無法自動產生密碼**  
如果您已將使用者集區設定為支援電子郵件或電話 OTP 無密碼登入，則無法自動產生密碼。對於每個將擁有密碼的使用者，您必須在建立其設定檔時設定臨時密碼。

**無密碼使用者必須具有所有必要屬性的值**  
當您建立*沒有*密碼的使用者時，只有在使用者為使用者集區中標記為必要的所有屬性提供值時，您的請求才會成功。這適用於任何必要的屬性，而不只是 OTP 交付所需的電話號碼和電子郵件屬性。

## 建立稍後將提供必要屬性值的使用者
<a name="how-to-create-user-accounts-thingstoknow-password-restrictions"></a>

您可能需要使用者集區中的屬性，但在管理建立使用者之後，在應用程式中的使用者互動期間收集這些屬性。當管理員*使用臨時密碼*建立使用者時，可以省略必要屬性的值。您無法省略無密碼使用者的必要屬性值。

缺少必要屬性值和臨時密碼的使用者，會在第一次登入時收到 [NEW\$1PASSWORD\$1REQUIRED](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html#CognitoUserPools-RespondToAuthChallenge-request-ChallengeResponses) 挑戰。然後，他們可以在 `requiredAttributes` 參數中提供缺少必要屬性的值。只有在所有必要屬性都[可變](user-pool-settings-attributes.md#user-pool-settings-custom-attributes)時，您才能建立具有密碼且沒有必要屬性的使用者。如果所需的屬性可從使用者登入的應用程式用戶端[寫入](user-pool-settings-client-apps.md#cognito-user-pools-app-idp-settings-about)，使用者才能完成具有`NEW_PASSWORD_REQUIRED`挑戰和必要屬性值的登入。

當您為管理員建立的使用者設定永久密碼時，其狀態會變更為 ，`CONFIRMED`而且您的使用者集區不會在第一次登入時提示他們輸入新密碼*或*必要的屬性。

## 在 中建立新的使用者 AWS 管理主控台
<a name="creating-a-new-user-using-the-console"></a>

您可以使用 Amazon Cognito 主控台設定使用者密碼要求、設定傳送給使用者的邀請和驗證訊息，以及新增使用者。

### 設定密碼政策並啟用自我註冊
<a name="set-user-password-policy"></a>

您可以設定最低密碼複雜度的設定，以及使用者是否可以在使用者集區中使用公有 API 進行註冊。

**設定密碼政策**

1. 導覽到 [Amazon Cognito 主控台](https://console.aws.amazon.com/cognito/home)，選擇 **User Pools** (使用者集區)。

1. 從清單中選擇現有的使用者集區，或[建立使用者集區](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html)。

1. 選擇**身分驗證方法**選單並尋找**密碼政策**。選擇**編輯**。

1. 選擇 **Custom** (自訂) 的 **Password policy mode** (密碼政策模式)。

1. 選擇 **Password minimum length** (密碼長度下限)。如需密碼長度要求的限制，請參閱[使用者集區資源配額](https://docs.aws.amazon.com/cognito/latest/developerguide/limits.html#limits-hard)。

1. 選擇 **Password complexity** (密碼複雜度) 要求。

1. 選擇管理員設定的密碼有效期限。

1. 選擇**儲存變更**。

**允許自助註冊**

1. 導覽到 [Amazon Cognito 主控台](https://console.aws.amazon.com/cognito/home)，選擇 **User Pools** (使用者集區)。

1. 從清單中選擇現有的使用者集區，或[建立使用者集區](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html)。

1. 選擇**註冊**功能表並尋找**自助註冊**。選擇 **Edit** (編輯)。

1. 選擇是否要 **Enable self-registration** (啟用自我註冊)。自我註冊通常用於需要在您的使用者集區中註冊新使用者的公有應用程式用戶端，而無需分發用戶端秘密或 AWS Identity and Access Management (IAM) API 登入資料。
**停用自我註冊**  
如果您未啟用自我註冊，則必須使用 IAM API 憑證透過管理 API 動作或透過聯合身分提供者登入來建立新使用者。

1. 選擇**儲存變更**。

### 自訂電子郵件和 SMS 訊息
<a name="creating-a-new-user-customize-messages"></a>

**自訂使用者訊息**

您可以自訂 Amazon Cognito 在邀請使用者登入、使用者註冊使用者帳戶或使用者登入並收到提示進行多重要素驗證 (MFA) 時傳送給使用者的訊息。
**注意**  
**Invitation message** (邀請訊息) 會在您在使用者集區中建立使用者時傳送，並邀請他們登入。Amazon Cognito 會將初始登入資訊傳送至使用者的電子郵件地址或電話號碼。  
使用者註冊使用者集區中的使用者帳戶時，系統會傳送 **Verification message** (驗證訊息)。Amazon Cognito 會傳送代碼給使用者。當使用者將代碼提供給 Amazon Cognito 時，他們會驗證其聯絡資訊，並確認其帳戶以進行登入。驗證碼有效時間為 24 小時。  
您在使用者集區中啟用 SMS MFA 時，以及已設定 SMS MFA 的使用者登入並提示進行 MFA 時，系統會傳送 **MFA message** (MFA 訊息)。

1. 導覽到 [Amazon Cognito 主控台](https://console.aws.amazon.com/cognito/home)，選擇 **User Pools** (使用者集區)。

1. 從清單中選擇現有的使用者集區，或[建立使用者集區](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html)。

1. 選擇**訊息範本**選單，然後選取**驗證訊息**、**邀請訊息**或 **MFA 訊息**，然後選擇**編輯**。

1. 自訂所選訊息類型的訊息。
**注意**  
當您自訂訊息時，必須包含訊息範本中的所有變數。如果未包含變數，例如 **\$1\$1\$1\$1\$1\$1**，則您的使用者將沒有足夠的資訊來完成訊息動作。  
如需詳細資訊，請參閱[訊息範本](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-message-templates.html)。

1. 

   1. **驗證訊息**

      1. 選擇 **Email** (電子郵件) 訊息的 **Verification type** (驗證類型)。**Code** (代碼) 驗證會傳送使用者必須輸入的數字碼。**Link** (連結) 驗證會傳送連結，使用者可以按一下以驗證其聯絡資訊。**Link** (連結) 訊息的變數中的文字會顯示為超連結文字。例如，使用變數 \$1\$1\$1Click here\$1\$1\$1 的訊息範本會在電子郵件訊息中顯示為[請點選此處]()。

      1. 輸入 **Email** (電子郵件) 訊息的 **Email subject** (電子郵件主旨)。

      1. 輸入 **Email** (電子郵件) 訊息的自訂 **Email message** (電子郵件訊息) 範本。您可以使用 HTML 自訂此範本。

      1. 輸入 **SMS** 訊息的 **SMS message** (SMS 訊息) 範本。

      1. 選擇**儲存變更**。

   1. **Invitation messages** (邀請訊息)

      1. 輸入 **Email** (電子郵件) 訊息的 **Email subject** (電子郵件主旨)。

      1. 輸入 **Email** (電子郵件) 訊息的自訂 **Email message** (電子郵件訊息) 範本。您可以使用 HTML 自訂此範本。

      1. 輸入 **SMS** 訊息的 **SMS message** (SMS 訊息) 範本。

      1. 選擇**儲存變更**。

   1. **MFA messages** (MFA 訊息)

      1. 輸入 **SMS** 訊息的 **SMS message** (SMS 訊息) 範本。

      1. 選擇**儲存變更**。

### 建立使用者
<a name="creating-a-new-user-using-the-users-tab"></a>

**建立使用者**

您可以從 Amazon Cognito 主控台為您的使用者集區建立新使用者。一般而言，使用者可以在設定密碼之後登入。若要使用電子郵件地址登入，使用者必須分別驗證 `email` 屬性。若要使用電話號碼登入，使用者必須驗證 `phone_number` 屬性。若要確認帳戶為管理員，您也可以使用 AWS CLI 或 API，或使用聯合身分提供者建立使用者設定檔。如需詳細資訊，請參閱《[Amazon Cognito API 參考](https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/)》。

1. 導覽到 [Amazon Cognito 主控台](https://console.aws.amazon.com/cognito/home)，選擇 **User Pools** (使用者集區)。

1. 從清單中選擇現有的使用者集區，或[建立使用者集區](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html)。

1. 選擇**使用者**功能表，然後選擇**建立使用者**。

1. 檢閱 **User pool sign-in and security requirements** (使用者集區登入和安全要求) 以取得有關密碼要求、可用帳戶復原方法和使用者集區別名屬性的指引。

1. <a name="admincreateuserwalkthrough-step-invitationmessage"></a>選擇您要如何傳送 **Invitation message** (邀請訊息)。選擇 SMS 訊息、電子郵件訊息或兩者皆可。若要隱藏邀請訊息，請選擇**不傳送邀請**。
**注意**  
在傳送邀請訊息之前，請在使用者集區的**身分驗證方法**選單中，使用 Amazon Simple Notification Service 和 Amazon Simple Email Service 設定寄件 AWS 區域 者和 。適用收件人訊息和數據傳輸費率。Amazon SES 會單獨向您收取電子郵件訊息費用，Amazon SNS 會單獨向您收取 SMS 訊息費用。

1. 為新使用者選擇 **Username** (使用者名稱)。

1. 選擇您是否要為使用者 **Create a password** (建立密碼) 或允許 Amazon Cognito **Generate a password** (產生密碼)。如果使用者集區中有[無密碼登入](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passwordless)可用，則無法產生密碼的選項。任何臨時密碼必須遵守使用者集區密碼政策。

1. 選擇**建立**。

1. 選擇**使用者**功能表，然後選擇使用者的**使用者名稱**項目。新增和編輯 **User attributes** (使用者屬性) 和 **Group memberships** (群組成員資格)。檢閱 **User event history** (使用者事件歷史記錄)。