O componente pré-criado de autenticação coleta informações do usuário para alcançar o nível de autenticação necessário. Esse componente abrange requisitos de autenticação comuns, mas não exclusivos, ao setor de serviços financeiros (FSI). Ele usa os componentes pré-criados Coleta de data de validade do cartão de crédito, Coleta de data de nascimento e Coleta de número de telefone para coletar e validar os detalhes do usuário.
Níveis de autenticação
Diferentes componentes pré-criados exigem vários níveis de autenticação, sendo que os níveis mais altos exigem mais informações do usuário para autenticação.
O componente de autenticação permite que o usuário se autentique no nível 0 (correspondência de ANI), no nível 1 (básico) ou no nível 2 (multifator), conforme descrito na tabela a seguir:
| Nível de autenticação | Requisitos |
|---|---|
| Nível 0: correspondência de ANI | Autentica o usuário ligando de um número de telefone que corresponde a uma conta registrada ou fornecendo esse número. O usuário pode se autenticar no nível 0 usando o componente pré-criado de saudação. |
| Nível 1: básico | Autentica o usuário verificando um código de senha única (OTP, na sigla em inglês) enviado para o e-mail ou número de telefone dele. Se a verificação por OTP falhar, o usuário poderá responder a três das quatro perguntas de segurança para se autenticar: data de nascimento, últimos quatro dígitos do cartão de débito ou data de validade do cartão de crédito (dependendo se ele é titular da conta ou do cartão), valor da última transação e forma de pagamento da última fatura do cartão de crédito. |
| Nível 2: multifator | Além disso, autentica o usuário verificando uma chave de segurança gerada por um app autenticador externo ou uma notificação push. |
Tipos de usuário compatíveis
O componente de autenticação é compatível com clientes de bancos que são titulares de contas, titulares de cartões ou ambos. O componente também oferece suporte à autenticação para usuários que não são clientes do banco, mas que têm procuração para contas registradas no banco. O usuário pode ter uma ou mais contas ou cartões registrados no banco.
Tipos de autenticação
Esse componente permite configurar se o usuário deve ser autenticado como proprietário da conta, titular do cartão ou ambos. É possível definir essas opções usando
os parâmetros de entrada
$session.params.account_auth_enabled e
$session.params.card_auth_enabled.
Esta tabela descreve o comportamento do componente para diferentes combinações de valores para as flags de autenticação de conta e de cartão:
account_auth_enabled |
card_auth_enabled |
Tipo de autenticação |
|---|---|---|
true |
false |
O usuário é autenticado como proprietário da conta, verificando se ele tem uma ou mais contas no banco e confirmando perguntas de segurança, incluindo os últimos quatro dígitos do cartão de débito registrado. |
false |
true |
O usuário é autenticado como titular do cartão, verificando se ele tem um ou mais cartões de crédito no banco e confirmando perguntas de segurança, incluindo a data de validade de um cartão de crédito registrado. |
true |
true |
Primeiro, o componente verifica se o usuário é um proprietário da conta registrado. 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 contas no banco, o componente vai tentar autenticar o usuário usando as informações do titular do cartão. |
false |
false |
Primeiro, o componente verifica se o usuário é um proprietário de conta registrado. Se o usuário tiver uma ou mais contas no banco, o componente vai autenticar o usuário para a autenticação de nível 0. Se o usuário não tiver contas no banco, o componente vai verificar se ele é titular de um cartão. Se o usuário tiver um ou mais cartões de crédito com o 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, este componente tem as seguintes limitações:
- As OTPs são enviadas apenas para um número de celular ou endereço de e-mail registrado anteriormente na conta. O componente não usa OTP para autenticar clientes que ligam de um número de telefone alternativo que não está registrado na conta. Ao ligar de um número de telefone alternativo, as perguntas de segurança autenticam o usuário.
- Esse componente não criptografa dados.
Diálogos de exemplo
Os exemplos de diálogos a seguir demonstram cenários comuns que esse componente pré-criado processa. As caixas de diálogo mostram o comportamento quando a telefonia chama o componente, o que aciona a intent de boas-vindas padrão e a primeira resposta do agente no início da conversa.
Sucesso na autenticação de nível 1: OTP
- O componente verifica se o usuário foi autenticado no nível 0.
- O componente envia uma OTP para o canal escolhido pelo usuário.
- O componente pede que o usuário confirme a OTP.
- O usuário fornece uma OTP válida para se autenticar no nível 1.
| Entrada do usuário | Resposta do agente |
|---|---|
| Por motivos de segurança, precisamos validar sua identidade. Por isso, vamos enviar um código para você. Você prefere receber o código por telefone ou e-mail? | |
| Telefone | |
| Enviamos um código para seu número de telefone registrado que termina em 0000. Isso pode levar alguns segundos. Você pode confirmar o código? | |
| O código é 123457 | |
| Agradecemos sua atenção. A autenticação foi concluída. |
Sucesso na 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 pede e valida as respostas corretas do usuário para três perguntas de segurança, incluindo a data de nascimento, os últimos quatro dígitos do número do cartão de débito do usuário e o valor da última transação.
- O usuário se autentica no nível 1.
| Entrada do usuário | Resposta do agente |
|---|---|
| Você é cliente do nosso banco ou tem uma procuração? Diga "Sim" ou "Não" para confirmar. | |
| Sim | |
| Certo, precisamos coletar 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úmero de telefone. | |
| Entendi. O número que você mencionou é +1 6502530000, correto? | |
| Sim | |
| Ótimo, já temos o número de telefone. 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 Coleta de data de nascimento. | |
| Sua data de nascimento é 3 de fevereiro de 1995, certo? | |
| Sim | |
| Ótimo, já temos sua data de nascimento. Agora, informe os últimos quatro dígitos do número do seu cartão de débito. |
|
| É 1234 | |
| 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". | |
| Custou 500 dólares | |
| Agradecemos sua atenção. A autenticação foi concluída. |
Sucesso na autenticação de nível 2: autenticação de dois fatores
- O usuário já foi autenticado no nível 1.
- O usuário gera uma chave de segurança usando o app do banco ou um app autenticador.
- O usuário fornece a chave de segurança ao componente para se autenticar no nível 2.
| Entrada do usuário | Resposta do agente |
|---|---|
| Compartilhe sua chave de segurança. Gere a chave de segurança de 6 dígitos no app do seu banco ou no app autenticador. Depois, diga ou digite os dígitos. |
|
| 232425 | |
| Agradecemos sua atenção. A autenticação foi concluída. |
Negação de informações
- O usuário se recusa a fornecer 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, vamos enviar um código para você. Você 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 Coleta de data de nascimento. | |
| Sua data de nascimento é 3 de fevereiro de 1995, certo? | |
| Sim | |
| Ótimo, já temos sua data de nascimento. Agora, informe os últimos quatro dígitos do número do seu cartão de débito. |
|
| É 1234 | |
| 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 essa ação. Lamentamos qualquer inconveniente que isso possa causar. |
Convenções de nomenclatura
Este componente pré-criado usa as seguintes convenções de nomenclatura:
| Recurso | Formatar | Exemplo |
|---|---|---|
| Flow | [Component Name] | Autenticação |
| Intenção específica 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 configuram determinados comportamentos do componente. Uma ou mais condições no fluxo usam os parâmetros para determinar como o componente se comporta. O usuário precisa definir parâmetros com escopo de fluxo na página inicial do componente, conforme descrito na tabela a seguir. O autor da chamada pode definir parâmetros no escopo da sessão usando 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. | integer |
| $session.params.auth_level_req | Define o nível de autenticação do usuário. Os valores válidos são 0, 1 ou 2. |
integer |
| $session.params.account_auth_enabled | Indica se o usuário precisa 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. |
booleano |
| $session.params.card_auth_enabled | Indica se o usuário precisa 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. |
booleano |
| $session.params.phone_number | (Opcional) O número de telefone local do usuário, sem o código do país. Se esse parâmetro não for fornecido, o componente vai coletar o número de telefone do usuário. | 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 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 tentativas permitidas quando a senha de uso único (OTP, na sigla em inglês) 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 de uso único (OTP, na sigla em inglês). 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 fornecer respostas incorretas para duas perguntas diferentes, o componente será encerrado com falha. |
integer |
| $flow.max_retry_card_counter | Especifica o número de tentativas permitidas ao coletar os últimos quatro dígitos do cartão de débito do usuário. O valor padrão é 2. |
integer |
| $flow.security_key_length | Especifica o tamanho 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, na sigla em inglês) para a autenticação de nível 1. O valor padrão é 6. |
integer |
Para configurar os parâmetros de entrada desse componente, abra 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 Predefinições de parâmetros conforme necessário.
- Clique em Salvar.
Parâmetros de saída
Os parâmetros de saída são parâmetros de sessão que permanecem ativos depois que o usuário sai do componente. Esses parâmetros contêm informações importantes que o componente coleta.
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. | integer |
| phone_number | O número de telefone local fornecido pelo usuário, sem o código do país. | string |
| transfer_reason | Esse parâmetro indica o motivo pelo qual o fluxo foi encerrado, se não tiver sido bem-sucedido. O valor retornado é um dos seguintes:agent: o usuário solicitou um agente humano em algum momento da conversa.denial_of_information: o usuário se recusou a compartilhar as informações solicitadas pelo componente.max_no_input: a conversa atingiu o número máximo de novas tentativas para eventos sem entrada. Consulte eventos integrados sem entrada.max_no_match: a conversa atingiu o número máximo de novas 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: um URL do webhook não estava acessível. Consulte o evento integrado webhook.error.not-found. |
string |
Configuração básica
Para configurar esse componente pré-criado:
- Importe o componente pré-criado.
- Configure os webhooks flexíveis fornecidos com as configurações que descrevem seus serviços externos. Consulte Configuração de webhook.
Configuração do webhook
Para usar esse componente, o usuário precisa configurar 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 do usuário com base no número de telefone
fornecido.
Parâmetros de solicitação de API
O componente fornece os seguintes parâmetros como entradas para a solicitação de API:
| Nome do parâmetro | Descrição | Formato da entrada |
|---|---|---|
| $session.params.phone_number | O número de telefone local do usuário, sem o código do país. | string |
Parâmetros de resposta da API
O componente extrai os seguintes parâmetros da resposta da API:
| 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 contas para as quais o usuário tem procuração. | integer |
| last_four_digit_of_account_number | Se um usuário tiver uma única 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 para esse componente, abra 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 prebuilt_components_authentication:telephony_verification.
- Substitua o URL no campo URL do webhook do Dialogflow CX pelo endpoint do serviço com que você quer fazer a integração. Selecione o Método adequado no menu suspenso.
- Revise e atualize o corpo da solicitação para criar o formato de solicitação adequado para seu 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 necessários para que o componente acesse os valores de campo retornados.
- Revise e atualize as configurações de Autenticação conforme necessário.
- Clique em Salvar.
Receber detalhes do cartão de crédito
O componente usa o webhook prebuilt_components_account_services:get_credit_card_details para recuperar informações sobre os cartões de crédito registrados para um usuário.
Parâmetros de solicitação de API
O componente fornece os seguintes parâmetros como entradas para a solicitação de API:
| Nome do parâmetro | Descrição | Formato da entrada |
|---|---|---|
| $session.params.phone_number | O número de telefone local do usuário, sem o código do país. | string |
Parâmetros de resposta da API
O componente extrai os seguintes parâmetros da resposta da API:
| 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 um usuário tiver um único 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 esse componente, abra 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 prebuilt_components_account_services:get_credit_card_details.
- Substitua o URL no campo URL do webhook do Dialogflow CX pelo endpoint do serviço com que você quer fazer a integração. Selecione o Método adequado no menu suspenso.
- Revise e atualize o corpo da solicitação para criar o formato de solicitação adequado para seu 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 necessários para que o componente acesse os valores de campo retornados.
- Revise e atualize as configurações de Autenticação conforme necessário.
- Clique em Salvar.
Enviar OTP
O webhook prebuilt_components_authentication:send_otp envia uma senha única (OTP) para um canal registrado que você selecionar.
Parâmetros de solicitação de API
O componente fornece os seguintes parâmetros como entradas para a solicitação de API:
| Nome do parâmetro | Descrição | Formato da entrada |
|---|---|---|
| $session.params.phone_number | O número de telefone local do usuário, sem o código do país. | 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
O componente extrai os seguintes parâmetros da resposta da API:
| Nome do parâmetro | Descrição | Formato da saída |
|---|---|---|
| generated_otp | O valor da OTP gerada e enviada ao usuário usando o canal selecionado. | string |
Para configurar o webhook de envio de OTP para esse componente, abra 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 prebuilt_components_authentication:send_otp.
- Substitua o URL no campo URL do webhook do Dialogflow CX pelo endpoint do serviço com que você quer fazer a integração. Selecione o Método adequado no menu suspenso.
- Revise e atualize o corpo da solicitação para criar o formato de solicitação adequado para seu 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 necessários para que o componente acesse os valores de campo retornados.
- Revise e atualize as configurações de Autenticação conforme necessário.
- Clique em Salvar.
Respostas de segurança
O webhook prebuilt_components_authentication:security_answers recupera
as respostas de segurança do usuário da conta registrada.
Parâmetros de solicitação de API
O componente fornece os seguintes parâmetros como entradas para a solicitação de API:
| Nome do parâmetro | Descrição | Formato da entrada |
|---|---|---|
| $session.params.phone_number | O número de telefone local do usuário, sem o código do país. | string |
Parâmetros de resposta da API
O componente extrai os seguintes parâmetros da resposta da API:
| 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 da 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 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 de respostas de segurança para esse componente, abra 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 prebuilt_components_authentication:security_answers.
- Substitua o URL no campo URL do webhook do Dialogflow CX pelo endpoint do serviço com que você quer fazer a integração. Selecione o Método adequado no menu suspenso.
- Revise e atualize o corpo da solicitação para criar o formato de solicitação adequado para seu 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 necessários para que o componente acesse os valores de campo retornados.
- Revise e atualize as configurações de Autenticação conforme necessário.
- Clique em Salvar.
Validação de dois fatores
O webhook prebuilt_components_authentication:2fa_validation permite que o
componente valide a chave de segurança fornecida pelo usuário para autenticação
de dois fatores.
Parâmetros de solicitação de API
O componente fornece os seguintes parâmetros como entradas para a solicitação de API:
| Nome do parâmetro | Descrição | Formato da entrada |
|---|---|---|
| $session.params.phone_number | O número de telefone local do usuário, sem o código do país. | string |
| $flow.security_key | A chave de segurança fornecida pelo usuário, gerada com um app de banco ou app autenticador. | string |
Parâmetros de resposta da API
O componente extrai os seguintes parâmetros da resposta da API:
| Nome do parâmetro | Descrição | Formato da saída |
|---|---|---|
| security_key_verified | Indica se a chave de segurança fornecida pelo usuário é válida. true indica que a chave de segurança fornecida é válida. false indica que a chave de segurança fornecida é inválida. |
booleano |
Para configurar o webhook de validação de dois fatores para este componente, abra 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 de validação prebuilt_components_authentication:2fa.
- Substitua o URL no campo URL do webhook do Dialogflow CX pelo endpoint do serviço com que você quer fazer a integração. Selecione o Método adequado no menu suspenso.
- Revise e atualize o corpo da solicitação para criar o formato de solicitação adequado para seu 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 necessários para que o componente acesse os valores de campo retornados.
- Revise e atualize as configurações de Autenticação conforme necessário.
- Clique em Salvar.
Concluído
O componente pré-criado e os webhooks dele estão configurados e prontos para teste.