

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

# 設定 MFA、身分驗證、驗證和邀請訊息
<a name="cognito-user-pool-settings-message-customizations"></a>

使用 Amazon Cognito，您可以自訂簡訊和電子郵件身分驗證、驗證和使用者邀請訊息，以增強應用程式的安全性和使用者體驗。您可以在部分訊息的程式碼型和一鍵式連結驗證之間進行選擇。本主題討論如何在 Amazon Cognito 主控台中個人化身分驗證和驗證通訊。

在**訊息範本**選單中，您可以自訂：
+ 用於一次性密碼 (OTP) 和多重要素 (MFA) 身分驗證的電子郵件和簡訊範本
+ 您的簡訊和電子郵件驗證訊息
+ 電子郵件的驗證類型：代碼或連結
**注意**  
當使用者註冊或重新傳送確認碼時，Amazon Cognito 會在驗證訊息中傳送連結與您的連結型範本。屬性更新和密碼重設操作的電子郵件會使用程式碼範本。
+ 您的使用者邀請訊息
+ 通行於使用者集區之電子郵件的 FROM (寄件者) 和 REPLY-TO (回覆至) 電子郵件地址

**注意**  
只有當您選擇需要電話號碼和電子郵件驗證時，簡訊和電子郵件驗證訊息範本才會顯示。同樣地，MFA 設定必須是 **required** (必要) 或 **optional** (選用)，才會顯示 SMS MFA 訊息範本。

**Topics**
+ [訊息範本](#cognito-user-pool-settings-message-templates)
+ [自訂電子郵件和簡訊 MFA 訊息](#cognito-user-pool-settings-SMS-message-customization)
+ [自訂電子郵件驗證訊息](#cognito-user-pool-settings-email-verification-message-customization)
+ [自訂使用者邀請訊息](#cognito-user-pool-settings-user-invitation-message-customization)
+ [自訂您的電子郵件地址](#cognito-user-pool-settings-email-address-customization)
+ [授權 Amazon Cognito 代表您傳送 Amazon SES 電子郵件 (從自訂 FROM (寄件者) 電子郵件地址)](#cognito-user-pool-settings-ses-authorization-to-send-email)

## 訊息範本
<a name="cognito-user-pool-settings-message-templates"></a>

您可以使用訊息範本將預留位置插入訊息。Amazon Cognito 會將預留位置取代為對應的值。您可以在任何類型的訊息範本中參考*通用範本預留位置*，雖然這些值不會出現在所有訊息類型中。


**通用範本預留位置**  

|  Description  |  權杖  | 訊息類型 | 
| --- | --- | --- | 
| 驗證碼 | \$1\$1\$1\$1\$1\$1 | 驗證、確認和 MFA 訊息 | 
| 臨時密碼 | \$1\$1\$1\$1\$1\$1 | 忘記密碼和邀請訊息 | 
| 使用者名稱 | \$1username\$1 | 邀請和進階安全訊息 | 

具有[威脅防護](cognito-user-pool-settings-threat-protection.md)的其中一個可用自動化回應是通知使用者 Amazon Cognito 偵測到潛在惡意活動。您可以使用進階安全範本預留位置來執行下列作業，如下所示：
+ 包含事件的特定詳細資訊，例如 IP 地址、城市、國家、登入時間和裝置名稱。Amazon Cognito 威脅防護可以分析這些詳細資訊。
+ 驗證一鍵式連結是否有效。
+ 使用事件 ID、意見回饋權杖和使用者名稱，建置您自己的一鍵式連結。

**注意**  
若要在進階安全性電子郵件範本中產生一鍵式連結接並使用 `{one-click-link-valid}` 和 `{one-click-link-invalid}` 預留位置，您必須已經為使用者集區設定網域。

威脅防護會新增下列預留位置，您可以將這些預留位置插入訊息範本。這些預留位置適用於**自適應身分驗證訊息**，即 Amazon Cognito 傳送給工作階段已評估風險層級的使用者的通知。若要使用這些變數設定訊息範本，請在 Amazon Cognito 主控台中更新威脅防護的**全功能**組態，或在 [SetRiskConfiguration](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetRiskConfiguration.html) 請求中提交範本。


**進階安全範本預留位置**  

|  Description  |  權杖  | 
| --- | --- | 
| IP 位址 | \$1ip-address\$1 | 
| City | \$1city\$1 | 
| Country | \$1country\$1 | 
| 登入時間 | \$1login-time\$1 | 
| 裝置名稱 | \$1device-name\$1 | 
| 一鍵式連結有效 | \$1one-click-link-valid\$1 | 
| 一鍵式連結無效 | \$1one-click-link-invalid\$1 | 
| 事件 ID | \$1event-id\$1 | 
| 意見回饋權杖 | \$1feedback-token\$1 | 

## 自訂電子郵件和簡訊 MFA 訊息
<a name="cognito-user-pool-settings-SMS-message-customization"></a>

若要自訂[多重要素驗證 (MFA)](user-pool-settings-mfa.md) 的 SMS 和電子郵件訊息，請從 Amazon Cognito 使用者集區主控台中的**訊息範本**選單編輯 **MFA 訊息**。

**重要**  
您的自訂訊息必須包含 `{####}` 預留位置。傳送訊息前，此預留位置會取代為身分驗證代碼。

Amazon Cognito 會將 SMS 訊息的長度上限設定為 140 個 UTF-8 字元，包括驗證碼。

### 自訂 SMS 驗證訊息
<a name="cognito-user-pool-settings-SMS-verification-message-customization"></a>

若要自訂電話號碼驗證的 SMS 訊息，請從使用者集區的訊息範本選單編輯**驗證訊息****範本**。

**重要**  
您的自訂訊息必須包含 `{####}` 預留位置。傳送訊息前，此預留位置會取代為驗證碼。

訊息的長度上限為 140 個 UTF-8 字元，包括驗證碼。

## 自訂電子郵件驗證訊息
<a name="cognito-user-pool-settings-email-verification-message-customization"></a>

若要使用 Amazon Cognito 驗證使用者集區中使用者的電子郵件地址，可以向使用者發送電子郵件，其中包含一個使用者可選取接的連結，或者可以向使用者發送可供其輸入的代碼。

若要自訂電子郵件地址驗證訊息的電子郵件主旨和訊息內容，請在使用者集區的訊息範本選單中編輯**驗證****訊息範本**。當您編輯 **驗證訊息** 範本時，可以選擇 **代碼** 或 **連結** 的 **驗證類型**。

在您選擇 **代碼** 作為驗證類型時，您的自訂訊息就必須包含 `{####}` 預留位置。當您傳送訊息時，驗證碼會取代此預留位置。

在您選擇 **連結** 作為驗證類型時，您的自訂訊息就必須包含 `{##Verify Your Email##}` 格式的預留位置。您可以變更預留位置字元之間的文字字串，例如 `{##Click here##}`。標題為*驗證您的電子郵件*的驗證鏈接會取代此預留位置。

電子郵件驗證訊息的連結會將您的使用者引導至 URL，如下列範例所示。

```
https://<your user pool domain>/confirmUser/?client_id=abcdefg12345678&user_name=emailtest&confirmation_code=123456
```

訊息的長度上限為 20,000 個 UTF-8 字元，包括驗證碼 (如果有)。您可以在此訊息中使用 HTML 標籤來格式化內容。

## 自訂使用者邀請訊息
<a name="cognito-user-pool-settings-user-invitation-message-customization"></a>

您可以在訊息範本選單中編輯**邀請訊息**範本，自訂 Amazon Cognito 透過簡訊或電子郵件訊息傳送給新使用者**的使用者**邀請訊息。

**重要**  
您的自訂訊息必須包含 `{username}` 和 `{####}` 預留位置。Amazon Cognito 傳送邀請訊息時，會以使用者的使用者名稱和密碼取代這些預留位置。

SMS 訊息的長度上限為 140 個 UTF-8 字元，包括驗證碼。電子郵件訊息的長度上限為 20,000 個 UTF-8 字元，包括驗證碼。您可以在此電子郵件訊息中使用 HTML 標籤來格式化內容。

## 自訂您的電子郵件地址
<a name="cognito-user-pool-settings-email-address-customization"></a>

依預設，Amazon Cognito 會從地址 **no-reply@verificationemail.com** 傳送電子郵件訊息給使用者集區中的使用者。您可以選擇指定自訂 FROM (寄件者) 電子郵件地址和 REPLY-TO (回覆至) 電子郵件地址，而不要使用 **no-reply@verificationemail.com**。

**自訂 FROM (寄件者) 電子郵件地址和 REPLY-TO (回覆至) 電子郵件地址**

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. 選擇**身分驗證方法**選單。在 **Email** (電子郵件) 下，選擇 **Edit** (編輯)。

1. 選擇 **SES Region** (SES 區域)。

1. 從您已使用所選 **SES Region** (SES 區域) 中 Amazon SES 進行驗證的電子郵件地址清單中，選擇 **FROM email address** (寄件者電子郵件地址)。若要使用已驗證網域的電子郵件地址，請在 AWS AWS Command Line Interface 或 API 中設定電子郵件設定。如需詳細資訊，請參閱*《Amazon Simple Email Service 開發人員指南》*中的[在 Amazon SES 中驗證電子郵件地址和網域](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-addresses-and-domains.html)。

1. 從您所選擇 **SES Region** (SES 區域) 中的組態設定清單中選擇 **Configuration set** (組態集)。

1. 請為您的電子郵件訊息輸入易於使用的 **FROM sender name** (FROM (寄件者) 傳送人名稱)，格式為 `John Stiles <johnstiles@example.com>`。

1. 若要自訂 REPLY-TO (回覆至) 電子郵件地址，請在 **REPLY-TO email address (回覆至電子郵件地址)** 欄位中輸入有效的電子郵件地址。

## 授權 Amazon Cognito 代表您傳送 Amazon SES 電子郵件 (從自訂 FROM (寄件者) 電子郵件地址)
<a name="cognito-user-pool-settings-ses-authorization-to-send-email"></a>

您可以將 Amazon Cognito 設定為從自訂 FROM (寄件者) 電子郵件地址，而非其預設地址，傳送電子郵件。若要使用自訂地址，您必須授予 Amazon Cognito 許可，才能從 Amazon SES 驗證的身分傳送電子郵件訊息。大部分情況，您可以透過建立傳送授權政策授予許可。如需詳細資訊，請參閱*《Amazon Simple Email Service 開發人員指南》*中的[搭配 Amazon SES 使用傳送授權](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html)。

當您將使用者集區設定為使用 Amazon SES 來傳送電子郵件訊息時，Amazon Cognito 會在您帳戶中建立 `AWSServiceRoleForAmazonCognitoIdpEmailService` 角色，以授予對 Amazon SES 的存取權。使用 `AWSServiceRoleForAmazonCognitoIdpEmailService` 服務連結角色時，不需要傳送授權政策。當您在使用者集區中使用這兩個預設電子郵件功能時，只需要新增傳送授權政策*和*經過驗證的 Amazon SES 身分作為 FROM (寄件者) 地址。

如需 Amazon Cognito 所建立服務連結角色的詳細資訊，請參閱[使用 Amazon Cognito 的服務連結角色](using-service-linked-roles.md)。

下列範例傳送授權政策會向 Amazon Cognito 授予使用 Amazon SES 已驗證身分的有限能力。執行此操作時，Amazon Cognito 只能代表 `aws:SourceArn` 條件中的使用者集區和 `aws:SourceAccount` 條件中的帳戶傳送電子郵件訊息。如需更多範例，請參閱*《Amazon Simple Email Service 開發人員指南》*中的 [Amazon SES 傳送授權政策範例](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-policy-examples.html)。

**注意**  
在這個範例中，"Sid" 值是唯一識別陳述式的任意字串。如需政策語法的詳細資訊，請參閱*《Amazon Simple Email Service 開發人員指南》*中的 [Amazon SES 傳送授權政策](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-policies.html)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "stmnt1234567891234",
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "email.cognito-idp.amazonaws.com"
                ]
            },
            "Action": [
                "SES:SendEmail",
                "SES:SendRawEmail"
            ],
            "Resource": "arn:aws:ses:us-east-1:111122223333:identity/support@example.com",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:cognito-idp:us-east-1:111122223333:userpool/us-east-1_EXAMPLE"
                }
            }
        }
    ]
}
```

------

您從下拉式選單選取 Amazon SES 身分時，Amazon Cognito 主控台就會為您新增類似政策。如果您使用 CLI 或 API 來設定使用者集區，則必須將結構與之前範例相似的政策連接至您的 Amazon SES 身分。