驗證預先建構元件會收集使用者資訊,以便驗證使用者是否符合所需的驗證層級。這個元件涵蓋了常見的驗證規定,但不限於金融服務 (FSI) 產業。這個元件會使用信用卡到期日收集、出生日期收集和電話號碼收集預先建構的元件,收集並驗證使用者詳細資料。
驗證層級
不同的預先建構元件需要多種驗證層級,較高層級需要更多使用者資訊才能驗證使用者。驗證元件可讓使用者進行驗證,驗證層級為「Level 0」(ANI 比對)、「Level 1」(基本) 或「Level 2」(多重驗證),如「驗證層級」表格所述。
驗證等級 | 需求條件 |
---|---|
等級 0:ANI 比對 | 使用者可以透過撥打電話或提供與註冊帳戶相對應的電話號碼來驗證。 使用者可以使用預先建構的問候語元件,將驗證層級提升至 Level 0。 |
第 1 級:基本 | 系統會傳送一次性密碼 (OTP) 到使用者的電子郵件或電話號碼,使用者只要驗證該密碼,即可完成驗證。如果 OTP 驗證失敗,使用者可以提供四個安全性問題中的三個答案,以便順利驗證:出生日期 (DOB)、簽帳金融卡或信用卡的末四碼 (視使用者是帳戶或卡片持有人而定)、上次交易金額,以及上次信用卡帳單的付款方式。 |
第 2 級:多重驗證 | 使用者還必須驗證由外部 authenticator 應用程式或推播通知產生的安全金鑰。 |
支援的使用者類型
驗證元件可支援已註冊銀行客戶的使用者,這些使用者可能是帳戶持有人、持卡人,或兩者皆是。此元件也支援非註冊銀行客戶,但擁有銀行註冊帳戶的授權書的使用者進行驗證。使用者可能會在銀行註冊一或多個帳戶或卡片。
驗證類型
您可以透過這個元件設定,使用者應以帳戶持有人、卡片持有人或兩者皆是的身份進行驗證。您可以設定 $session.params.account_auth_enabled
和 $session.params.card_auth_enabled
輸入參數來設定這些選項。下表說明帳戶驗證和信用卡驗證標記的值組合不同時,元件的行為。
account_auth_enabled | card_auth_enabled | 驗證類型 |
---|---|---|
true |
false |
系統會驗證使用者是否為帳戶持有人,確認使用者是否持有一或多個銀行帳戶,並確認安全性問題,包括註冊簽帳金融卡的末四碼。 |
false |
true |
系統會驗證使用者是否為持卡人,確認使用者是否持有銀行的一或多張信用卡,並確認安全性問題,包括已註冊信用卡的信用卡到期日。 |
true |
true |
元件會先檢查使用者是否為註冊帳戶持有人。如果使用者擁有一或多個銀行帳戶,元件會使用帳戶資訊驗證使用者。如果使用者沒有任何銀行帳戶,元件會嘗試使用卡片持有人資訊驗證使用者。 |
false |
false |
元件會先檢查使用者是否為註冊帳戶持有人。如果使用者擁有一或多個銀行帳戶,元件會驗證使用者是否通過第 0 級驗證。如果使用者沒有任何銀行帳戶,元件會檢查使用者是否為持卡人。如果使用者持有一或多張銀行信用卡,元件會將使用者驗證為第 0 級驗證。 |
限制
除了常見的預先建構元件限制外,這個預先建構元件還有以下限制:
- 動態密碼只會傳送至使用者先前註冊的手機號碼或電子郵件地址。元件不會使用 OTP 驗證使用未註冊於帳戶的其他電話號碼撥打電話的客戶。使用者使用其他電話號碼撥打電話時,系統會使用安全性問題驗證來電者。
- 這個元件不會加密任何資料。
對話方塊範例
以下對話方塊範例說明這個預先建構元件處理的常見情境。以下對話方塊範例說明使用電話服務呼叫元件時的行為,這會在對話開始時觸發「Default Welcome」意圖,並由服務專員提供第一個回應。
第 1 級驗證成功:動態密碼
使用者先前已通過第 0 級驗證。元件會傳送並要求使用者確認傳送至使用者所選管道的 OTP。使用者可以提供有效的 OTP,並成功通過第 1 級驗證。
使用者輸入內容 | 服務專員回應 |
---|---|
基於安全考量,我們需要驗證您的身分,因此會傳送一組驗證碼給您。你想透過電話還是電子郵件接收驗證碼? | |
手機 | |
我們已將驗證碼傳送到末四碼為 0000 的註冊電話號碼。這項作業可能需要幾秒鐘的時間。請確認代碼。 | |
驗證碼為 123457 | |
謝謝,您已順利完成驗證。 |
第 1 級驗證成功:安全性問題
元件會收集並驗證使用者提供的電話號碼,確認使用者已完成第 0 級驗證。元件會要求使用者回答三個安全性問題,並驗證正確答案:使用者的出生日期、借記卡號碼末四碼,以及上次交易金額。使用者已成功通過第 1 級驗證。
使用者輸入內容 | 服務專員回應 |
---|---|
您是我們的銀行客戶,還是有授權書?請說「是」或「否」來確認。 | |
是 | |
好的,我們需要收集你的電話號碼,才能擷取帳戶詳細資料。 | |
服務專員使用電話號碼收集預先建構的元件收集使用者的電話號碼 | |
好的,你提到的號碼是 +1 6502530000,對嗎? | |
是 | |
很好,我們已收集到電話號碼。 好的,基於安全考量,我們需要更多資訊來驗證你的身分。 |
|
代理程式使用出生日期收集預先建構元件收集使用者的出生日期 | |
好的,你的出生日期是 1995 年 2 月 3 日,對嗎? | |
是 | |
很好,我們已收集您的出生日期。 請告訴我們簽帳金融卡卡號的末四碼。 |
|
是 1234 | |
請告訴我們上次交易的金額。舉例來說,如果上次交易金額為 $100.30 美元,請說「100」。 | |
是 500 美元 | |
謝謝,您已順利完成驗證。 |
第 2 級驗證成功:雙重驗證
使用者先前已通過第 1 級驗證。元件會要求使用者使用銀行或 authenticator 應用程式產生安全金鑰。使用者成功確認產生的安全金鑰,並通過第 2 級驗證。
使用者輸入內容 | 服務專員回應 |
---|---|
請提供安全金鑰。 在銀行應用程式或 authenticator 應用程式中產生 6 位數安全金鑰,然後唸出或輸入這些數字。 |
|
232425 | |
謝謝,您已順利完成驗證。 |
拒絕提供資訊
使用者拒絕提供驗證所需的資訊。元件會顯示失敗訊息並退出。
使用者輸入內容 | 服務專員回應 |
---|---|
基於安全考量,我們需要驗證您的身分,因此會傳送一組驗證碼給您。你想透過電話還是電子郵件接收驗證碼? | |
否,我不想分享 | |
好的,基於安全考量,我們需要更多資訊來驗證你的身分。 | |
代理程式使用出生日期收集預先建構元件收集使用者的出生日期 | |
好的,你的出生日期是 1995 年 2 月 3 日,對嗎? | |
是 | |
很好,我們已收集您的出生日期。 請告訴我們簽帳金融卡卡號的末四碼。 |
|
是 1234 | |
請告訴我們上次交易的金額。舉例來說,如果上次交易金額為 $100.30 美元,請說「100」。 | |
我不想分享詳細資料 | |
我們無法驗證您的身分,因此無法完成這項操作。不便之處,敬請見諒。 |
命名慣例
這個預先建構的元件採用下列命名慣例:
功能 | 格式 | 範例 |
---|---|---|
心流狀態 | [元件名稱] | 驗證 |
元件專屬意圖 | prebuilt_components_[component_name]_[intent_name] | prebuilt_components_authentication_power_of_attorney |
實體類型 | prebuilt_components_[component_name]_[entity_type] | prebuilt_components_authentication_payment_mode |
Webhook | prebuilt_components_[component_name]:[webhook_action] | prebuilt_components_authentication:telephony_verification |
輸入參數
輸入參數是用來設定元件特定行為的參數。參數會由工作流程中的一或多個條件使用,用於決定元件的行為方式。流程範圍參數必須在元件的起始頁面中設定,如下所述。您可以透過呼叫流程或此元件的起始頁面,設定會話範圍參數。
這個預先建構的元件可接受下列輸入參數:
參數名稱 | 說明 | 輸入格式 |
---|---|---|
$session.params.auth_level | (選用) 表示使用者的目前驗證層級。 | 整數 |
$session.params.auth_level_req | 定義要對使用者進行驗證的驗證層級。有效值為 0 、1 或 2 。 |
整數 |
$session.params.account_auth_enabled | 指出是否應驗證使用者是否為帳戶持有人。元件行為取決於這個值和 $session.params.card_auth_enabled 的值,如「驗證層級」一節所述。 |
布林值 |
$session.params.card_auth_enabled | 指出是否應驗證使用者是否為卡片持有人。元件行為取決於這個值和 $session.params.account_auth_enabled 的值,如「驗證層級」一節所述。 |
布林值 |
$session.params.phone_number | (選用) 使用者的電話號碼。如果未提供這項參數,元件會向使用者收集電話號碼。 | 字串 |
$flow.max_retry_telephone_counter | 指定收集使用者電話號碼時允許的重試次數。預設值為 1 。 |
整數 |
$flow.max_retry_security_ans_count | 指定收集安全性問題時允許的重試次數。預設值為 3 。 |
整數 |
$flow.max_retry_security_key | 指定收集安全金鑰時允許的重試次數。預設值為 3 。 |
整數 |
$flow.max_retry_otp_not_received | 指定未收到動態密碼 (OTP) 時,允許的重試次數。預設值為 1 。 |
整數 |
$flow.max_retry_otp_count | 指定收集動態密碼 (OTP) 時允許的重試次數。預設值為 3 。 |
整數 |
$flow.security_ans_denial_count | 指定使用者拒絕提供要求資訊時,允許的重試次數。預設值為 1 。 |
整數 |
$flow.security_ans_mid_count | 指定使用者可提供的錯誤安全答案數量。預設值為 2 ,這表示如果呼叫端對兩個不同問題提供不正確的答案,元件就會退出並失敗。 |
整數 |
$flow.max_retry_card_counter | 指定收集使用者簽帳金融卡末四碼時,允許的重試次數。預設值為 2 。 |
整數 |
$flow.security_key_length | 指定驗證程式應用程式提供的安全金鑰有效長度,用於第 2 級驗證。預設值為 6 。 |
整數 |
$flow.otp_length | 指定第 1 級驗證的動態密碼 (OTP) 有效長度。預設值為 6 。 |
整數 |
如要設定此元件的輸入參數,請展開操作說明。
- 開啟 Dialogflow CX 控制台。
- 選擇 Google Cloud 專案。
- 選取所需的代理程式。
- 選取「Build」分頁標籤。
- 在「流程」部分中,按一下匯入的元件。
- 按一下「網頁」部分中的「首頁」。
- 按一下「Start」頁面中的「true」路徑。
- 在路徑視窗中,視需要編輯「參數預設值」值。
- 按一下 [儲存]。
輸出參數
輸出參數是會在退出元件後仍保持啟用的會話參數。這些參數包含元件收集的重要資訊。這個預先建構的元件會為下列輸出參數提供值:
參數名稱 | 說明 | 輸出格式 |
---|---|---|
auth_level | 表示使用者目前的驗證層級。 | 整數 |
phone_number | 使用者的當地電話號碼 (不含國家/地區代碼),用於識別使用者。 | 字串 |
transfer_reason | 如果流程未成功執行,這個參數會指出流程結束的原因。回傳的值為下列其中一個:agent :使用者在對話過程中某個時間點要求真人服務專員。denial_of_information :使用者拒絕分享元件要求的資訊。max_no_input :對話已達到無輸入事件的最大重試次數。請參閱無輸入內建事件。max_no_match :對話已達到不相符事件的重試次數上限。請參閱不相符的內建事件。webhook_error :發生 webhook 錯誤。請參閱「webhook.error 內建事件」。webhook_not_found :無法連上 webhook 網址。請參閱 webhook.error.not-found 內建事件。 |
字串 |
基本設定
如要設定這個預先建構的元件,請按照下列步驟操作:
- 匯入預先建構的元件。
- 使用描述外部服務的設定,設定提供的彈性 webhook,請參閱下方的 webhook 設定。
設定 Webhook
如要使用這個元件,您必須設定隨附的彈性 webhook,才能從外部服務擷取所需資訊。
電話驗證
元件會使用 prebuilt_components_authentication:telephony_verification
webhook,根據提供的電話號碼擷取使用者帳戶詳細資料。
API 要求參數
元件會將下列參數提供為 API 要求的輸入內容。
參數名稱 | 說明 | 輸入格式 |
---|---|---|
$session.params.phone_number | 使用者的當地電話號碼 (不含國家/地區代碼),用於識別使用者。 | 字串 |
API 回應參數
下列參數會從 API 回應中擷取,供元件使用。
參數名稱 | 說明 | 輸出格式 |
---|---|---|
account_count | 與註冊電話號碼相關聯的帳戶數量。這類帳戶包括使用者本人的帳戶,以及使用者擁有授權的帳戶。 | 整數 |
last_four_digit_of_account_number | 如果使用者只有一個帳戶,系統會傳回帳號的最後四碼。如果使用者有多個帳戶,這個參數的值就是 null 。 |
字串 |
電子郵件 | 帳戶註冊的電子郵件地址。如果帳戶未註冊電子郵件地址,這個參數的值為 null 。 |
字串 |
如要為此元件設定電話驗證 Webhook,請展開操作說明。
- 開啟 Dialogflow CX 控制台。
- 選擇 Google Cloud 專案。
- 選取所需的代理程式。
- 選取「管理」分頁標籤。
- 按一下「Webhook」。
- 選取 prebuilt_components_authentication:telephony_verification webhook。
- 將 Conversational Agents (Dialogflow CX) Webhook 網址欄位中的網址,替換為要整合的服務端點。在下拉式選單中選取適當的「方法」。
- 查看並更新要求主體,為 webhook 建立適當的要求格式。
- 查看並更新回應設定,從 webhook 回應中擷取特定欄位。請勿修改參數名稱,因為元件需要這些名稱才能存取傳回的欄位值。
- 視需要查看並更新驗證設定。
- 按一下 [儲存]。
取得信用卡詳細資料
元件會使用 prebuilt_components_account_services:get_credit_card_details
webhook,取得使用者註冊的信用卡相關資訊。
API 要求參數
元件會將下列參數提供為 API 要求的輸入內容。
參數名稱 | 說明 | 輸入格式 |
---|---|---|
$session.params.phone_number | 使用者的當地電話號碼 (不含國家/地區代碼),用於識別使用者。 | 字串 |
API 回應參數
下列參數會從 API 回應中擷取,供元件使用。
參數名稱 | 說明 | 輸出格式 |
---|---|---|
credit_card_count | 與註冊電話號碼相關聯的信用卡數量。 | 整數 |
last_four_digit_of_credit_card_number | 如果使用者只有一張信用卡,系統會傳回卡號的末四碼。如果使用者有多張卡片,這個參數的值就是 null 。 |
字串 |
電子郵件 | 帳戶註冊的電子郵件地址。如果帳戶未註冊電子郵件地址,這個參數的值為 null 。 |
字串 |
如要為這個元件設定「取得信用卡詳細資料」webhook,請展開操作說明。
- 開啟 Dialogflow CX 控制台。
- 選擇 Google Cloud 專案。
- 選取所需的代理程式。
- 選取「管理」分頁標籤。
- 按一下「Webhook」。
- 選取 prebuilt_components_account_services:get_credit_card_details webhook。
- 將 Conversational Agents (Dialogflow CX) Webhook 網址欄位中的網址,替換為要整合的服務端點。在下拉式選單中選取適當的「方法」。
- 查看並更新要求主體,為 webhook 建立適當的要求格式。
- 查看並更新回應設定,從 webhook 回應中擷取特定欄位。請勿修改參數名稱,因為元件需要這些名稱才能存取傳回的欄位值。
- 視需要查看並更新驗證設定。
- 按一下 [儲存]。
傳送動態密碼
元件會使用 prebuilt_components_authentication:send_otp
webhook,將動態密碼 (OTP) 傳送至使用者所選的已註冊管道。
API 要求參數
元件會將下列參數提供為 API 要求的輸入內容。
參數名稱 | 說明 | 輸入格式 |
---|---|---|
$session.params.phone_number | 使用者的當地電話號碼 (不含國家/地區代碼),用於識別使用者。 | 字串 |
$flow.channel | 使用者選取的接收 OTP 的管道。有效值由 prebuilt_components_authentication_channel 自訂實體定義。預設支援 email 和 mobile 。 |
字串 |
API 回應參數
下列參數會從 API 回應中擷取,供元件使用。
參數名稱 | 說明 | 輸出格式 |
---|---|---|
generated_otp | 使用所選管道產生並傳送給使用者的 OTP 值。 | 字串 |
如要為此元件設定傳送 OTP webhook,請展開操作說明。
- 開啟 Dialogflow CX 控制台。
- 選擇 Google Cloud 專案。
- 選取所需的代理程式。
- 選取「管理」分頁標籤。
- 按一下「Webhook」。
- 選取 prebuilt_components_authentication:send_otp webhook。
- 將 Conversational Agents (Dialogflow CX) Webhook 網址欄位中的網址,替換為要整合的服務端點。在下拉式選單中選取適當的「方法」。
- 查看並更新要求主體,為 webhook 建立適當的要求格式。
- 查看並更新回應設定,從 webhook 回應中擷取特定欄位。請勿修改參數名稱,因為元件需要這些名稱才能存取傳回的欄位值。
- 視需要查看並更新驗證設定。
- 按一下 [儲存]。
安全性答案
元件會使用 prebuilt_components_authentication:security_answers
webhook,從使用者已註冊的帳戶中擷取使用者的安全性回答。
API 要求參數
元件會將下列參數提供為 API 要求的輸入內容。
參數名稱 | 說明 | 輸入格式 |
---|---|---|
$session.params.phone_number | 使用者的當地電話號碼 (不含國家/地區代碼),用於識別使用者。 | 字串 |
API 回應參數
下列參數會從 API 回應中擷取,供元件使用。
參數名稱 | 說明 | 輸出格式 |
---|---|---|
security_last_trans_amount | 表示使用者上次交易的完整金額,不含貨幣符號。舉例來說,如果使用者的上次交易金額為 $100.30 美元,這個欄位的預期值就是 "100.30" 。 |
字串 |
last_payment_mode | 使用者上次交易採用的付款方式,有效值由 prebuilt_components_authentication_payment_mode 自訂實體定義。根據預設,這些值包括 mobile 、upi 、online 、debit 、credit 和 account 。 |
字串 |
security_card_number | 使用者簽帳金融卡號碼的末四碼。 | 字串 |
user_dob | 使用者的出生日期 (DOB),格式為 YYYY-MM-DD。 | 字串 |
cards_exp_date_all | 使用者註冊的所有信用卡到期日,格式為 MMYYYY。 | 清單 (字串) |
如要為此元件設定安全性答案 Webhook,請展開操作說明。
- 開啟 Dialogflow CX 控制台。
- 選擇 Google Cloud 專案。
- 選取所需的代理程式。
- 選取「管理」分頁標籤。
- 按一下「Webhook」。
- 選取 prebuilt_components_authentication:security_answers webhook。
- 將 Conversational Agents (Dialogflow CX) Webhook 網址欄位中的網址,替換為要整合的服務端點。在下拉式選單中選取適當的「方法」。
- 查看並更新要求主體,為 webhook 建立適當的要求格式。
- 查看並更新回應設定,從 webhook 回應中擷取特定欄位。請勿修改參數名稱,因為元件需要這些名稱才能存取傳回的欄位值。
- 視需要查看並更新驗證設定。
- 按一下 [儲存]。
雙重驗證
元件會使用 prebuilt_components_authentication:2fa_validation
webhook,驗證使用者為雙重驗證提供的安全金鑰。
API 要求參數
元件會將下列參數提供為 API 要求的輸入內容。
參數名稱 | 說明 | 輸入格式 |
---|---|---|
$session.params.phone_number | 使用者的當地電話號碼 (不含國家/地區代碼),用於識別使用者。 | 字串 |
$flow.security_key | 使用者透過銀行應用程式或 authenticator 應用程式產生的安全金鑰。 | 字串 |
API 回應參數
下列參數會從 API 回應中擷取,供元件使用。
參數名稱 | 說明 | 輸出格式 |
---|---|---|
security_key_verified | 指出使用者提供的安全金鑰是否有效。true 表示提供的安全金鑰有效。false 表示提供的安全性金鑰無效。 |
布林值 |
如要為這個元件設定雙重驗證 webhook,請展開操作說明。
- 開啟 Dialogflow CX 控制台。
- 選擇 Google Cloud 專案。
- 選取所需的代理程式。
- 選取「管理」分頁標籤。
- 按一下「Webhook」。
- 選取 prebuilt_components_authentication:2fa_validation webhook。
- 將 Conversational Agents (Dialogflow CX) Webhook 網址欄位中的網址,替換為要整合的服務端點。在下拉式選單中選取適當的「方法」。
- 查看並更新要求主體,為 webhook 建立適當的要求格式。
- 查看並更新回應設定,從 webhook 回應中擷取特定欄位。請勿修改參數名稱,因為元件需要這些名稱才能存取傳回的欄位值。
- 視需要查看並更新驗證設定。
- 按一下 [儲存]。
完成
代理程式和相關的 webhook 應已設定完成,可以開始測試。