O componente pré-criado de autenticação coleta informações do usuário para autenticá-lo no nível de autenticação necessário. Esse componente aborda requisitos de autenticação comuns, mas não exclusivos, do setor de serviços financeiros (FSI). Esse componente usa os componentes pré-criados Coleta da data de validade do cartão de crédito, Data de nascimento e Coleta de números de telefone para coletar e validar detalhes do usuário.
Níveis de autenticação
Há vários níveis de autenticação exigidos por diferentes componentes pré-criados. Níveis mais altos exigem mais informações do usuário para autenticá-lo. O componente Authentication permite que os usuários se autentiquem no nível 0 (correspondência de ANI), nível 1 (básico) ou nível 2 (multifator), conforme descrito na tabela "Nível de autenticação".
Nível de autenticação | Requisitos |
---|---|
Nível 0: correspondência ANI | O usuário é autenticado chamando de ou fornecendo um número de telefone que corresponde a uma conta registrada. Um usuário pode ser autenticado no nível 0 usando o componente pré-criado Greeting. |
Nível 1: básico | O usuário é autenticado verificando um código de senha única (OTP) enviado para seu e-mail ou número de telefone. Se a verificação da OTP falhar, o usuário poderá responder a três das quatro perguntas de segurança para fazer a autenticação: data de nascimento (DOB), últimos quatro dígitos do cartão de débito ou data de validade do cartão de crédito (dependendo se a conta ou titular do cartão) é usada, o valor da última transação e a última forma de pagamento da fatura do cartão de crédito. |
Nível 2: multifator | O usuário também é autenticado ao verificar uma chave de segurança gerada por um app autenticador externo ou uma notificação push. |
Tipos de usuários compatíveis
O componente de autenticação oferece suporte a usuários que são clientes de banco inscritos e que são titulares de contas, de cartões ou ambos. O componente também é compatível com autenticação para usuários que não são clientes de banco inscritos, mas que têm procuração para contas registradas no banco. Os usuários podem ter uma ou mais contas ou cartões registrados no banco.
Tipos de autenticação
Esse componente permite configurar se um usuário precisa ser autenticado como
proprietário da conta, do cartão ou de ambos. Essas opções são definidas
com a definição dos parâmetros de entrada
$session.params.account_auth_enabled
e $session.params.card_auth_enabled
. Nesta tabela, descrevemos o comportamento do componente para diferentes combinações de valores das sinalizações de autenticação de conta e de cartão.
account_auth_enabled | card_auth_enabled | Tipo de autenticação |
---|---|---|
true |
false |
O usuário será autenticado como proprietário da conta, verificando se ele possui uma ou mais contas no banco e confirmando as perguntas de segurança, incluindo os últimos quatro dígitos do cartão de débito registrado. |
false |
true |
O usuário será autenticado como titular do cartão, verificando se ele tem um ou mais cartões de crédito no banco e confirmando as perguntas de segurança, incluindo a data de validade do cartão de crédito registrado. |
true |
true |
O componente primeiro verifica se o usuário é um proprietário registrado da conta. Se o usuário tiver uma ou mais contas no banco, o componente vai autenticar o usuário usando as informações da conta. Se o usuário não tiver nenhuma conta no banco, o componente tentará autenticar o usuário usando as informações do titular do cartão. |
false |
false |
O componente primeiro verifica se o usuário é um proprietário registrado da conta. Se o usuário tiver uma ou mais contas no banco, o componente autenticará o usuário para a autenticação de nível 0. Se o usuário não tiver nenhuma conta no banco, o componente verificará se o usuário é um titular do cartão. Se o usuário tiver um ou mais cartões de crédito no banco, o componente vai autenticar o usuário para a autenticação de nível 0. |
Limitações
Além das limitações comuns de componentes pré-criados, esse componente pré-criado tem as seguintes limitações:
- As OTPs serão enviadas apenas para um número de celular ou endereço de e-mail previamente registrado para o usuário. O componente não vai usar a OTP para autenticar clientes que estão ligando de um número de telefone alternativo que não está registrado na conta. Quando um usuário ligar de um número de telefone alternativo, as perguntas de segurança serão usadas para autenticar o autor da chamada.
- Este componente não criptografa nenhum dado.
Exemplos de diálogos
As caixas de diálogo de amostra abaixo demonstram cenários comuns processados por esse componente pré-criado. As caixas de diálogo de exemplo demonstram o comportamento quando o componente é chamado usando telefonia, que aciona a intent de boas-vindas padrão e a primeira resposta do agente no início da conversa.
Sucesso da autenticação de nível 1: OTP
O usuário já foi autenticado anteriormente na autenticação de nível 0. O componente envia e pede ao usuário para confirmar uma OTP enviada ao canal escolhido pelo usuário. O usuário consegue fornecer uma OTP válida e foi autenticado com sucesso no nível 1.
Entrada do usuário | Resposta do agente |
---|---|
Por motivos de segurança, precisamos validar sua identidade, por isso enviaremos um código. Prefere receber o código por telefone ou e-mail? | |
Telefone | |
Enviamos um código para seu telefone registrado com final 0000. Isso pode levar alguns segundos. Você pode confirmar o código? | |
O código é 123457 | |
A autenticação foi concluída. |
Sucesso da autenticação de nível 1: perguntas de segurança
O componente confirma a autenticação de nível 0 do usuário coletando e verificando o número de telefone fornecido. O componente solicita e valida as respostas corretas do usuário para três perguntas de segurança: data de nascimento, últimos quatro dígitos do número do cartão de débito do usuário e valor da última transação. O usuário foi autenticado com sucesso no nível 1.
Entrada do usuário | Resposta do agente |
---|---|
Você é cliente do nosso banco ou tem procuração? Confirme dizendo sim ou não. | |
Sim | |
Certo, precisamos saber seu número de telefone para buscar os detalhes da sua conta. | |
O agente coleta o número de telefone do usuário usando o componente pré-criado Coleta de números de telefone | |
Ok. O número que você mencionou é mais 1 6502530000, correto? | |
Sim | |
Ótimo, terminamos de coletar o número de telefone. Certo, por motivos de segurança, precisamos de mais algumas informações para validar sua identidade. |
|
O agente coleta a data de nascimento do usuário usando o componente pré-criado Data de nascimento | |
Certo, sua data de nascimento é 3 de fevereiro de 1995, correto? | |
Sim | |
Ótimo, coletamos sua data de nascimento. Informe os últimos quatro dígitos do número do seu cartão de débito. |
|
É 1.234 | |
Informe o valor em dólares da sua última transação. Por exemplo, se o valor da última transação foi de R $100,30, diga "100". | |
Era de 500 dólares | |
A autenticação foi concluída. |
Sucesso da autenticação de nível 2: autenticação de dois fatores
O usuário foi autenticado anteriormente na autenticação de nível 1. O componente solicita que o usuário gere uma chave de segurança usando o app do banco ou autenticador. O usuário confirma a chave de segurança gerada e está autenticado no nível 2.
Entrada do usuário | Resposta do agente |
---|---|
Compartilhe sua chave de segurança. Gere a chave de segurança de seis dígitos no app do banco ou no app autenticador. Em seguida, diga ou digite os dígitos. |
|
232425 | |
A autenticação foi concluída. |
Negação de informação
O usuário não fornece as informações necessárias para a autenticação. O componente é encerrado com uma mensagem de falha.
Entrada do usuário | Resposta do agente |
---|---|
Por motivos de segurança, precisamos validar sua identidade, por isso enviaremos um código. Prefere receber o código por telefone ou e-mail? | |
Não quero compartilhar | |
Certo. Por motivos de segurança, precisamos de mais algumas informações para validar sua identidade. | |
O agente coleta a data de nascimento do usuário usando o componente pré-criado Data de nascimento | |
Certo, sua data de nascimento é 3 de fevereiro de 1995, correto? | |
Sim | |
Ótimo, coletamos sua data de nascimento. Informe os últimos quatro dígitos do número do seu cartão de débito. |
|
É 1.234 | |
Informe o valor em dólares da sua última transação. Por exemplo, se o valor da última transação foi de R $100,30, diga "100". | |
Não quero compartilhar os detalhes | |
Não foi possível autenticar você, por isso não podemos concluir esta ação. Lamentamos qualquer inconveniente que isso possa causar. |
Convenções de nomeação
Esse componente pré-criado usa as seguintes convenções de nomenclatura:
Engenharia de | Formato | Exemplo |
---|---|---|
Fluxo | [Nome do componente] | Authentication |
Intent específico do componente | prebuilt_components_[component_name]_[intent_name] | prebuilt_components_authentication_power_of_attorney |
Tipo da entidade | prebuilt_components_[component_name]_[entity_type] | prebuilt_components_authentication_payment_mode |
Webhook | prebuilt_components_[component_name]:[webhook_action] | prebuilt_components_authentication:telephony_verification |
Parâmetros de entrada
Os parâmetros de entrada são usados para configurar determinados comportamentos do componente. Os parâmetros são usados por uma ou mais condições no fluxo para determinar como o componente vai se comportar. Os parâmetros com escopo de fluxo precisam ser definidos na página inicial do componente, conforme descrito abaixo. Os parâmetros no escopo da sessão podem ser definidos por um fluxo de chamada ou na página inicial desse componente.
Esse componente pré-criado aceita os seguintes parâmetros de entrada:
Nome do parâmetro | Descrição | Formato da entrada |
---|---|---|
$session.params.auth_level | (Opcional) Indica o nível de autenticação atual do usuário final. | integer |
$session.params.auth_level_req | Define o nível de autenticação em que o usuário final será autenticado. Os valores válidos são 0 , 1 ou 2 . |
integer |
$session.params.account_auth_enabled | Indica se o usuário deve ser autenticado como proprietário da conta. O comportamento do componente depende desse valor e do valor de $session.params.card_auth_enabled , conforme descrito em Níveis de autenticação. |
boolean |
$session.params.card_auth_enabled | Indica se o usuário deve ser autenticado como titular do cartão. O comportamento do componente depende desse valor e do valor de $session.params.account_auth_enabled , conforme descrito em Níveis de autenticação. |
boolean |
$session.params.phone_number | (opcional) Número de telefone do usuário final. Se esse parâmetro não for fornecido, o componente coletará o número de telefone do usuário final. | string |
$flow.max_retry_telephone_counter | Especifica o número de novas tentativas permitidas ao coletar o número de telefone do usuário. O valor padrão é 1 . |
integer |
$flow.max_retry_security_ans_count | Especifica o número de novas tentativas permitidas ao coletar respostas de segurança. O valor padrão é 3 . |
integer |
$flow.max_retry_security_key | Especifica o número de novas tentativas permitidas ao coletar a chave de segurança. O valor padrão é 3 . |
integer |
$flow.max_retry_otp_not_received | Especifica o número de novas tentativas permitidas quando a senha única (OTP) não é recebida. O valor padrão é 1 . |
integer |
$flow.max_retry_otp_count | Especifica o número de novas tentativas permitidas ao coletar a senha única (OTP). O valor padrão é 3 . |
integer |
$flow.security_ans_denial_count | Especifica o número de novas tentativas permitidas quando um usuário se recusa a fornecer as informações solicitadas. O valor padrão é 1 . |
integer |
$flow.security_ans_mid_count | Especifica o número de respostas de segurança incorretas que um usuário pode fornecer. O valor padrão é 2 , o que significa que, se o autor da chamada der respostas incorretas para duas perguntas diferentes, o componente vai falhar. |
integer |
$flow.max_retry_card_counter | Especifica o número de novas tentativas permitidas ao coletar os últimos quatro dígitos do cartão de débito do usuário final. O valor padrão é 2 . |
integer |
$flow.security_key_length | Especifica o comprimento válido da chave de segurança fornecida pelo app autenticador para a autenticação de nível 2. O valor padrão é 6 . |
integer |
$flow.otp_length | Especifica o tamanho válido da senha única (OTP) para a autenticação de nível 1. O valor padrão é 6 . |
integer |
Para configurar os parâmetros de entrada desse componente, expanda para conferir as instruções.
- Abra o Console do Dialogflow CX.
- Escolha seu projeto do Google Cloud.
- Selecione seu agente.
- Selecione a guia Build.
- Clique no componente importado na seção Fluxos.
- Clique na página inicial na seção Páginas.
- Clique na rota true na página inicial.
- Na janela "Rota", edite os valores de Presets de parâmetros conforme necessário.
- Clique em Save.
Parâmetros de saída
Os parâmetros de saída são parâmetros de sessão que permanecem ativos após a saída do componente. Esses parâmetros contêm informações importantes coletadas pelo componente. Esse componente pré-criado fornece valores para os seguintes parâmetros de saída:
Nome do parâmetro | Descrição | Formato da saída |
---|---|---|
auth_level | Indica o nível de autenticação atual do usuário final. | integer |
phone_number | Número de telefone local do usuário, sem o código do país, utilizado para identificá-lo. | string |
transfer_reason | Esse parâmetro indica o motivo da saída do fluxo, se não tiver sido bem-sucedido. O valor retornado é um destes:agent : o usuário final solicitou um agente humano em algum momento durante a conversa.denial_of_information : o usuário final se recusou a compartilhar informações solicitadas pelo componente.max_no_input : a conversa atingiu o número máximo de tentativas para eventos sem entrada. Consulte eventos integrados sem entrada.max_no_match : a conversa atingiu o número máximo de tentativas para eventos sem correspondência. Consulte eventos integrados sem correspondência.webhook_error : ocorreu um erro de webhook. Consulte o evento integrado webhook.error. webhook_not_found : não foi possível acessar um URL do webhook. Consulte webhook.error.not-found built-in event. |
string |
Configuração básica
Para configurar esse componente pré-criado:
- Importe o componente pré-criado.
- Defina os webhooks flexíveis fornecidos com uma configuração que descreve os serviços externos do Dialogflow. Consulte "Configuração do webhook" abaixo.
Configuração do webhook
Para usar esse componente, configure os webhooks flexíveis incluídos para recuperar as informações necessárias dos serviços externos.
Verificação de telefonia
O webhook prebuilt_components_authentication:telephony_verification
é usado
pelo componente para buscar detalhes da conta de usuário com base no número de telefone
fornecido.
Parâmetros de solicitação de API
Os parâmetros a seguir são fornecidos pelo componente como entradas para a solicitação de API.
Nome do parâmetro | Descrição | Formato da entrada |
---|---|---|
$session.params.phone_number | Número de telefone local do usuário, sem o código do país, utilizado para identificá-lo. | string |
Parâmetros de resposta da API
Os parâmetros a seguir são extraídos da resposta da API a ser usado pelo componente.
Nome do parâmetro | Descrição | Formato da saída |
---|---|---|
account_count | O número de contas associadas ao número de telefone registrado. Isso inclui contas próprias e aquelas em que o usuário tem procuração. | integer |
last_four_digit_of_account_number | Se um usuário tiver apenas uma conta, os últimos quatro dígitos do número da conta serão retornados. Se um usuário tiver mais de uma conta, o valor desse parâmetro será null . |
string |
O e-mail registrado na conta. Se não houver um e-mail registrado na conta, o valor desse parâmetro será null . |
string |
Para configurar o webhook de verificação de telefonia desse componente, expanda para ver as instruções.
- Abra o Console do Dialogflow CX.
- Escolha seu projeto do Google Cloud.
- Selecione seu agente.
- Selecione a guia Gerenciar.
- Clique em Webhooks.
- Selecione o webhook pré-build_components_authentication:telephony_verification.
- Substitua o URL no campo URL do webhook do Dialogflow pelo endpoint do serviço que você quer integrar. Selecione o Método adequado no menu suspenso.
- Revise e atualize o Corpo da solicitação para formar o formato de solicitação adequado para o webhook.
- Revise e atualize a Configuração de resposta para extrair campos específicos da resposta do webhook. Não modifique os nomes dos parâmetros, porque eles são exigidos pelo componente para acessar os valores de campo retornados.
- Revise e atualize as configurações de Autenticação conforme necessário.
- Clique em Save.
Mais detalhes do cartão de crédito
O webhook prebuilt_components_account_services:get_credit_card_details
é usado
pelo componente para coletar informações sobre os cartões de crédito registrados para um usuário.
Parâmetros de solicitação de API
Os parâmetros a seguir são fornecidos pelo componente como entradas para a solicitação de API.
Nome do parâmetro | Descrição | Formato da entrada |
---|---|---|
$session.params.phone_number | Número de telefone local do usuário, sem o código do país, utilizado para identificá-lo. | string |
Parâmetros de resposta da API
Os parâmetros a seguir são extraídos da resposta da API a ser usado pelo componente.
Nome do parâmetro | Descrição | Formato da saída |
---|---|---|
credit_card_count | O número de cartões de crédito associados ao número de telefone registrado. | integer |
last_four_digit_of_credit_card_number | Se o usuário tiver apenas um cartão de crédito, os últimos quatro dígitos do número do cartão serão retornados. Se um usuário tiver mais de um cartão, o valor desse parâmetro será null . |
string |
O e-mail registrado na conta. Se não houver um e-mail registrado na conta, o valor desse parâmetro será null . |
string |
Para configurar o webhook "Receber detalhes do cartão de crédito" para este componente, expanda para ver instruções.
- Abra o Console do Dialogflow CX.
- Escolha seu projeto do Google Cloud.
- Selecione seu agente.
- Selecione a guia Gerenciar.
- Clique em Webhooks.
- Selecione o webhook pré-build_components_account_services:get_credit_card_details.
- Substitua o URL no campo URL do webhook do Dialogflow pelo endpoint do serviço que você quer integrar. Selecione o Método adequado no menu suspenso.
- Revise e atualize o Corpo da solicitação para formar o formato de solicitação adequado para o webhook.
- Revise e atualize a Configuração de resposta para extrair campos específicos da resposta do webhook. Não modifique os nomes dos parâmetros, porque eles são exigidos pelo componente para acessar os valores de campo retornados.
- Revise e atualize as configurações de Autenticação conforme necessário.
- Clique em Save.
Enviar OTP
O webhook prebuilt_components_authentication:send_otp
é usado
pelo componente para enviar uma senha única (OTP) a um canal registrado
selecionado pelo usuário final.
Parâmetros de solicitação de API
Os parâmetros a seguir são fornecidos pelo componente como entradas para a solicitação de API.
Nome do parâmetro | Descrição | Formato da entrada |
---|---|---|
$session.params.phone_number | Número de telefone local do usuário, sem o código do país, utilizado para identificá-lo. | string |
$flow.channel | O canal que o usuário selecionou para receber a OTP. Os valores válidos são definidos pela entidade personalizada prebuilt_components_authentication_channel . Por padrão, email e mobile são aceitos. |
string |
Parâmetros de resposta da API
Os parâmetros a seguir são extraídos da resposta da API a ser usado pelo componente.
Nome do parâmetro | Descrição | Formato da saída |
---|---|---|
generated_otp | O valor da OTP gerada e enviada ao usuário pelo canal selecionado. | string |
Para configurar o webhook "Enviar OTP" para este componente, expanda para ver instruções.
- Abra o Console do Dialogflow CX.
- Escolha seu projeto do Google Cloud.
- Selecione seu agente.
- Selecione a guia Gerenciar.
- Clique em Webhooks.
- Selecione o webhook pré-build_components_authentication:send_otp.
- Substitua o URL no campo URL do webhook do Dialogflow pelo endpoint do serviço que você quer integrar. Selecione o Método adequado no menu suspenso.
- Revise e atualize o Corpo da solicitação para formar o formato de solicitação adequado para o webhook.
- Revise e atualize a Configuração de resposta para extrair campos específicos da resposta do webhook. Não modifique os nomes dos parâmetros, porque eles são exigidos pelo componente para acessar os valores de campo retornados.
- Revise e atualize as configurações de Autenticação conforme necessário.
- Clique em Save.
Respostas de segurança
O webhook prebuilt_components_authentication:security_answers
é usado pelo
componente para recuperar as respostas de segurança do usuário final na conta registrada.
Parâmetros de solicitação de API
Os parâmetros a seguir são fornecidos pelo componente como entradas para a solicitação de API.
Nome do parâmetro | Descrição | Formato da entrada |
---|---|---|
$session.params.phone_number | Número de telefone local do usuário, sem o código do país, utilizado para identificá-lo. | string |
Parâmetros de resposta da API
Os parâmetros a seguir são extraídos da resposta da API a ser usado pelo componente.
Nome do parâmetro | Descrição | Formato da saída |
---|---|---|
security_last_trans_amount | Indica o valor total da última transação do usuário, sem o símbolo de moeda. Por exemplo, se o valor da última transação do usuário for US $100,30, o valor esperado desse campo será "100.30" . |
string |
last_payment_mode | A forma de pagamento usada na última transação do usuário, com valores válidos definidos pela entidade personalizada prebuilt_components_authentication_payment_mode . Por padrão, esses valores incluem mobile , upi , online , debit , credit e account . |
string |
security_card_number | Os últimos quatro dígitos do número do cartão de débito do usuário. | string |
user_dob | A data de nascimento (DOB) do usuário no formato AAAA-MM-DD. | string |
cards_exp_date_all | As datas de validade de todos os cartões de crédito registrados com o usuário no formato MMAAAA. | Lista (string) |
Para configurar o webhook das respostas de segurança para esse componente, expanda para ver instruções.
- Abra o Console do Dialogflow CX.
- Escolha seu projeto do Google Cloud.
- Selecione seu agente.
- Selecione a guia Gerenciar.
- Clique em Webhooks.
- Selecione o webhook prebuilt_components_authentication:security_answers.
- Substitua o URL no campo URL do webhook do Dialogflow pelo endpoint do serviço que você quer integrar. Selecione o Método adequado no menu suspenso.
- Revise e atualize o Corpo da solicitação para formar o formato de solicitação adequado para o webhook.
- Revise e atualize a Configuração de resposta para extrair campos específicos da resposta do webhook. Não modifique os nomes dos parâmetros, porque eles são exigidos pelo componente para acessar os valores de campo retornados.
- Revise e atualize as configurações de Autenticação conforme necessário.
- Clique em Save.
Validação de dois fatores
O webhook prebuilt_components_authentication:2fa_validation
é usado pelo componente para validar a chave de segurança fornecida pelo usuário final para autenticação de dois fatores.
Parâmetros de solicitação de API
Os parâmetros a seguir são fornecidos pelo componente como entradas para a solicitação de API.
Nome do parâmetro | Descrição | Formato da entrada |
---|---|---|
$session.params.phone_number | Número de telefone local do usuário, sem o código do país, utilizado para identificá-lo. | string |
$flow.security_key | A chave de segurança fornecida pelo usuário final, gerada usando um app de banco ou um app autenticador. | string |
Parâmetros de resposta da API
Os parâmetros a seguir são extraídos da resposta da API a ser usado pelo componente.
Nome do parâmetro | Descrição | Formato da saída |
---|---|---|
security_key_verified | Indica se a chave de segurança fornecida pelo usuário final é válida. true indica que a chave de segurança fornecida é válida. false indica que a chave de segurança fornecida é inválida. |
boolean |
Para configurar o webhook de validação de dois fatores para esse componente, expanda para ver instruções.
- Abra o Console do Dialogflow CX.
- Escolha seu projeto do Google Cloud.
- Selecione seu agente.
- Selecione a guia Gerenciar.
- Clique em Webhooks.
- Selecione o webhook pré-build_components_authentication:2fa_validation.
- Substitua o URL no campo URL do webhook do Dialogflow pelo endpoint do serviço que você quer integrar. Selecione o Método adequado no menu suspenso.
- Revise e atualize o Corpo da solicitação para formar o formato de solicitação adequado para o webhook.
- Revise e atualize a Configuração de resposta para extrair campos específicos da resposta do webhook. Não modifique os nomes dos parâmetros, porque eles são exigidos pelo componente para acessar os valores de campo retornados.
- Revise e atualize as configurações de Autenticação conforme necessário.
- Clique em Save.
Concluído
Seu agente e os webhooks dele agora precisam estar configurados e prontos para serem testados.