設定 SMS、電子郵件驗證訊息和使用者邀請訊息 - Amazon Cognito

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

設定 SMS、電子郵件驗證訊息和使用者邀請訊息

Amazon Cognito 可讓您自訂 SMS 和電子郵件驗證訊息以及使用者邀請訊息,以增強應用程式的安全性和使用者體驗。使用 Amazon Cognito,您可以根據應用程式的需求,在程式碼型或單鍵連結驗證之間進行選擇。本主題討論如何在 Amazon Cognito 主控台中個人化多因素身份驗證 (MFA) 和驗證通訊。

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

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

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

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

  • 您的使用者邀請訊息

  • 通行於使用者集區之電子郵件的 FROM (寄件者) 和 REPLY-TO (回覆至) 電子郵件地址

注意

您必須在 Verifications (驗證) 索引標籤中,選擇需要電話號碼和電子郵件驗證,才會顯示簡訊和電子郵件驗證訊息範本。同樣地,MFA 設定必須是 required (必要) 或 optional (選用),才會顯示 SMS MFA 訊息範本。

訊息範本

您可以使用訊息範本將欄位插入使用預留位置的訊息中,對應值將會取代這些預留位置。

範本預留位置

描述

權杖

驗證碼 {####}
臨時密碼 {####}
使用者名稱 {username}
注意

您無法在驗證電子郵件訊息中使用 {username} 預留位置。您可以在隨AdminCreateUser作業產生的邀請電子郵件訊息中使用{username}預留位置。這些邀請電子郵件訊息使用兩個預留位置:使用者名稱 ({username}) 和臨時密碼 ({####})。

您可以使用進階安全範本預留位置來執行下列作業,如下所示:

  • 包含事件的特定詳細資訊,例如 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 主控台體驗中,您可以自訂簡訊。

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

重要

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

Amazon Cognito 會強制實施簡訊長度上限,包括驗證碼在內不可超過 140 個 UTF-8 字元。

自訂 SMS 驗證訊息

若要自訂用來進行電話號碼驗證的簡訊,您可以編輯 Do you want to customize your SMS verification messages? (您要自訂簡訊驗證訊息嗎?) 標題底下的範本。

重要

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

訊息的長度上限為 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 透過簡訊或電子郵件發送給新使用者的使用者邀請訊息。

重要

您的自訂訊息必須包含 {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 Region (SES 區域)。

  5. 從您已使用所選 SES Region (SES 區域) 中 Amazon SES 進行驗證的電子郵件地址清單中,選擇 FROM email address (寄件者電子郵件地址)。若要使用來自已驗證網域的電子郵件地址,請在 AWS Command Line Interface 或 AWS API 中設定電子郵件集。如需詳細資訊,請參閱《Amazon Simple Email Service 開發人員指南》中的在 Amazon SES 中驗證電子郵件地址和網域

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

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

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

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

您可以將 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 身分。