本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Amazon Cognito,您可以自訂簡訊和電子郵件驗證訊息以及使用者邀請訊息,以增強應用程式的安全性和使用者體驗。使用 Amazon Cognito,您可以在程式碼型或一鍵式連結驗證之間進行選擇,以符合應用程式的需求。本主題討論如何在 Amazon Cognito 主控台中個人化多重要素驗證 (MFA) 和驗證通訊。
在訊息範本功能表中,您可以自訂:
-
您的 SMS 文字訊息多重要素驗證 (MFA) 訊息
-
您的簡訊和電子郵件驗證訊息
-
電子郵件的驗證類型:代碼或連結
注意
當使用者註冊或重新傳送確認碼時,Amazon Cognito 會在驗證訊息中傳送連結與您的連結型範本。來自 屬性更新和密碼重設操作的電子郵件使用程式碼範本。
-
您的使用者邀請訊息
-
通行於使用者集區之電子郵件的 FROM (寄件者) 和 REPLY-TO (回覆至) 電子郵件地址
注意
簡訊和電子郵件驗證訊息範本只會在您選擇需要電話號碼和電子郵件驗證時顯示。同樣地,MFA 設定必須是 required (必要) 或 optional (選用),才會顯示 SMS 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 訊息
若要自訂多重要素驗證 (MFA) 的 SMS 訊息,請從 Amazon Cognito 使用者集區主控台中的訊息範本選單編輯 MFA 訊息。
重要
您的自訂訊息必須包含 {####}
預留位置。傳送訊息前,此預留位置會取代為身分驗證代碼。
Amazon Cognito 會為 SMS 訊息設定 140 個 UTF-8 字元的長度上限,包括驗證碼。
自訂 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 透過簡訊或電子郵件訊息傳送給新使用者的使用者邀請訊息。
重要
您的自訂訊息必須包含 {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 (回覆至) 電子郵件地址
-
導覽到 Amazon Cognito 主控台
,選擇 User Pools (使用者集區)。 -
從清單中選擇現有的使用者集區,或建立使用者集區。
-
選擇身分驗證方法選單。在 Email (電子郵件) 下,選擇 Edit (編輯)。
-
選擇 SES Region (SES 區域)。
-
從您已使用所選 SES Region (SES 區域) 中 Amazon SES 進行驗證的電子郵件地址清單中,選擇 FROM email address (寄件者電子郵件地址)。若要使用已驗證網域的電子郵件地址,請在 AWS Command Line Interface 或 API AWS 中設定電子郵件設定。如需詳細資訊,請參閱《Amazon Simple Email Service 開發人員指南》中的在 Amazon SES 中驗證電子郵件地址和網域。
-
從您所選擇 SES Region (SES 區域) 中的組態設定清單中選擇 Configuration set (組態集)。
-
請為您的電子郵件訊息輸入易於使用的 FROM sender name (FROM (寄件者) 傳送人名稱),格式為
John Stiles <johnstiles@example.com>
。 -
若要自訂 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 身分。