設定驗證和邀請訊息 - Amazon Cognito

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

設定驗證和邀請訊息

使用 Amazon Cognito ,您可以自訂SMS和以電子郵件傳送驗證訊息和使用者邀請訊息,以增強應用程式的安全性和使用者體驗。使用 Amazon Cognito 時,您可以選擇程式碼型或一鍵式連結驗證,以符合應用程式的需求。本主題討論如何在 Amazon Cognito 主控台中個人化多重要素驗證 (MFA) 和驗證通訊。

訊息範本 下的 傳訊 索引標籤中,您可以自訂:

  • 您的SMS文字訊息多重要素驗證 (MFA) 訊息

  • 您的 SMS和電子郵件驗證訊息

  • 電子郵件的驗證類型:代碼或連結

  • 您的使用者邀請訊息

  • FROM 和 REPLY-TO 使用者集區中電子郵件的電子郵件地址

注意

只有在您已選擇在驗證索引標籤中要求電話號碼和電子郵件驗證時,才會顯示 SMS和電子郵件驗證訊息範本。同樣地,SMSMFA訊息範本只會在需要 MFA 設定或選用 時出現。

訊息範本

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

通用範本預留位置

描述

權杖

訊息類型
驗證碼 {####} 驗證、確認和MFA訊息
臨時密碼 {####} 忘記密碼和邀請訊息
使用者名稱 {username} 邀請和進階安全訊息

具有進階安全功能的其中一個可用自動化回應是通知使用者 Amazon Cognito 偵測到潛在惡意活動。您可以使用進階安全範本預留位置來執行下列作業,如下所示:

  • 包含事件的特定詳細資訊,例如 IP 地址、城市、國家、登入時間和裝置名稱。Amazon Cognito 進階安全功能可以分析這些詳細內容。

  • 驗證一鍵式連結是否有效。

  • 使用事件 ID、意見回饋權杖和使用者名稱,建置您自己的一鍵式連結。

注意

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

進階安全功能會新增下列預留位置,供您插入訊息範本:

進階安全範本預留位置

描述

權杖

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

自訂SMS訊息

注意

在新的 Amazon Cognito 主控台體驗中,您可以自訂SMS訊息

您可以在SMS訊息範本標題下方的訊息索引標籤中自訂多重要素驗證 (MFA) 的訊息。

重要

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

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

自訂SMS驗證訊息

您可以在是否要自訂驗證SMS訊息?標題下編輯範本,來自訂電話號碼SMS驗證的訊息

重要

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

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

自訂電子郵件驗證訊息

若要使用 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標籤來格式化內容。

自訂使用者邀請訊息

您可以在訊息索引標籤中編輯邀請訊息範本,自訂 Amazon Cognito 傳送給新使用者SMS或電子郵件訊息的使用者邀請訊息

重要

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

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

自訂您的電子郵件地址

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

自訂 FROM和 REPLY-TO 電子郵件地址
  1. 導覽到 Amazon Cognito 主控台,選擇 User Pools (使用者集區)。

  2. 從清單中選擇現有的使用者集區,或建立使用者集區

  3. 選擇 Messaging (簡訊) 索引標籤。在 Email (電子郵件) 下,選擇 Edit (編輯)。

  4. 選擇 SES 區域

  5. FROM 從您所選SESSES區域中與 Amazon 確認的電子郵件地址清單中選擇電子郵件地址。若要使用已驗證網域的電子郵件地址,請在 AWS Command Line Interface 或 AWS 中設定電子郵件設定API。如需詳細資訊,請參閱Amazon Simple Email Service 開發人員指南中的驗證 Amazon 中的電子郵件地址和網域SES

  6. 從所選SES區域 中的組態集清單中選擇組態集。

  7. 輸入電子郵件訊息的友善FROM寄件者名稱,格式為 John Stiles <johnstiles@example.com>

  8. 若要自訂 REPLY-TO 電子郵件地址,請在 REPLY-TO 電子郵件地址欄位中輸入有效的電子郵件地址

授權 Amazon Cognito 代表您傳送 Amazon FROM SES電子郵件 (從自訂電子郵件地址)

您可以設定 Amazon Cognito 從自訂FROM電子郵件地址傳送電子郵件,而不是其預設地址。若要使用自訂地址,您必須授予 Amazon Cognito 許可,以從 Amazon SES 驗證身分傳送電子郵件訊息。大部分情況,您可以透過建立傳送授權政策授予許可。如需詳細資訊,請參閱 Amazon Simple Email Service 開發人員指南 中的使用 Amazon 傳送授權SES

當您將使用者集區設定為使用 Amazon SES 傳送電子郵件訊息時,Amazon Cognito 會在您的帳戶中建立AWSServiceRoleForAmazonCognitoIdpEmailService角色,以授予對 Amazon 的存取權SES。使用 AWSServiceRoleForAmazonCognitoIdpEmailService 服務連結角色時,不需要傳送授權政策。只有在使用使用者集區中的預設電子郵件功能已驗證的 Amazon SES身分作為FROM地址時,才需要新增傳送授權政策。

如需 Amazon Cognito 所建立服務連結角色的詳細資訊,請參閱使用 Amazon Cognito 的服務連結角色

下列傳送授權政策範例授予 Amazon Cognito 使用 Amazon SES 驗證身分的有限能力。執行此操作時,Amazon Cognito 只能代表 aws:SourceArn 條件中的使用者集區和 aws:SourceAccount 條件中的帳戶傳送電子郵件訊息。如需更多範例,請參閱 Amazon Simple Email Service 開發人員指南 中的 Amazon SES傳送授權政策範例

注意

在這個範例中,"Sid" 值是唯一識別陳述式的任意字串。如需政策語法的詳細資訊,請參閱 Amazon Simple Email Service 開發人員指南 中的 Amazon SES傳送授權政策

{ "Version": "2012-10-17", "Statement": [ { "Sid": "stmnt1234567891234", "Effect": "Allow", "Principal": { "Service": [ "email.cognito-idp.amazonaws.com" ] }, "Action": [ "SES:SendEmail", "SES:SendRawEmail" ], "Resource": "<your SES identity ARN>", "Condition": { "StringEquals": { "aws:SourceAccount": "<your account number>" }, "ArnLike": { "aws:SourceArn": "<your user pool ARN>" } } } ] }

當您從下拉式功能表中選取 Amazon SES身分時,Amazon Cognito 主控台會為您新增類似的政策。如果您使用 CLI或 API 來設定使用者集區,則必須將如先前範例所示的結構化政策連接至您的 Amazon SES Identity。