Componente pré-criado de autenticação

O componente pré-criado de autenticação coleta informações do usuário para autenticá-lo no nível necessário. Esse componente aborda requisitos de autenticação comuns, mas não exclusivos, do setor de serviços financeiros (FSI, na sigla em inglês). Esse componente usa os componentes pré-criados Coleta da data de validade do cartão de crédito, Coleta da data de nascimento e Coleta do número de telefone para coletar e validar os detalhes do usuário.

Níveis de autenticação

Há vários níveis de autenticação exigidos por diferentes componentes pré-criados, e os níveis mais altos exigem mais informações do usuário para autenticá-lo. O componente de autenticação 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 de níveis de autenticação.

Nível de autenticação Requisitos
Nível 0: correspondência de ANI O usuário é autenticado ao ligar ou fornecer 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 de saudação.
Nível 1: básico O usuário é autenticado ao verificar um código de senha única (OTP) 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 método de pagamento da última 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 bancos inscritos e 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 têm procuração para contas registradas na instituição. Os usuários podem ter uma ou mais contas ou cartões registrados no banco.

Tipos de autenticação

Com esse componente, é possível configurar se um usuário precisa ser autenticado como titular de uma conta, titular de um cartão ou ambos. Essas opções são configuradas definindo 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 das flags de autenticação da conta e do cartão.

account_auth_enabled card_auth_enabled Tipo de autenticação
true false O usuário será autenticado como titular 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 será autenticado como titular do cartão, verificando se ele tem um ou mais cartões de crédito com o 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 titular de 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 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 titular de conta registrado. Se o usuário tiver uma ou mais contas no banco, o componente vai autenticar o usuário na 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 dos componentes pré-criados, este componente pré-criado tem as seguintes limitações:

  • Os OTPs só serão enviados para um número de celular ou endereço de e-mail registrado anteriormente para o usuário. O componente não usa OTP para autenticar clientes que ligam de um número de telefone alternativo não registrado na conta. Quando um usuário liga de um número de telefone alternativo, as perguntas de segurança são usadas para autenticar quem está ligando.
  • Esse componente não criptografa nenhum dado.

Diálogos de exemplo

As caixas de diálogo de exemplo a seguir 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, 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 usuário já foi autenticado para a autenticação de nível 0. O componente envia e pede que o usuário confirme um OTP enviado ao canal de escolha dele. O usuário consegue fornecer um OTP válido e é autenticado no nível 1.

Entrada do usuário Resposta do agente
Por questões 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 terminado em 0000. Isso pode levar alguns segundos. Você pode confirmar o código?
O código é 123457
Agradecemos. Sua 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 a três perguntas de segurança: data de nascimento, últimos quatro dígitos do número do cartão de débito e valor da última transação. O usuário foi autenticado 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
Ok, 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
Ok. O número que você mencionou é +1 6502530000, está correto?
Sim
Ótimo, terminamos de coletar o número de telefone.
Por questões 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, coletamos sua data de nascimento.
Informe os quatro últimos dígitos do número do seu cartão de débito.
É 1234
Informe o valor em dólar da sua última transação. Por exemplo, se o valor da sua última transação foi de R $100,30, diga "100".
Era 500 dólares
Agradecemos. Sua 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 componente pede que o usuário gere uma chave de segurança usando o banco ou o app autenticador. O usuário confirma a chave de segurança gerada e é 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 autenticador. Depois, diga ou digite os dígitos.
232425
Agradecemos. Sua autenticação foi concluída.

Negação de informações

O usuário se recusa a fornecer as informações necessárias para autenticar. O componente sai com uma mensagem de falha.

Entrada do usuário Resposta do agente
Por questões 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
Ok, por questões de segurança, precisamos de mais 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, coletamos sua data de nascimento.
Informe os quatro últimos dígitos do número do seu cartão de débito.
É 1234
Informe o valor em dólar da sua última transação. Por exemplo, se o valor da sua ú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

Esse componente pré-criado usa as seguintes convenções de nomenclatura:

Recurso Formato Exemplo
Fluxo [Nome do componente] Autenticação
Intent 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 são usados para configurar determinados comportamentos do componente. Os parâmetros serão usados por uma ou mais condições no fluxo para determinar como o componente deve se comportar. Os parâmetros no escopo do 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 do usuário final. 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 titular 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) Número de telefone do usuário final. Se esse parâmetro não for fornecido, o componente vai 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 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 fornecer respostas incorretas para duas perguntas diferentes, o componente será encerrado com falha. 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 tamanho válido da chave de segurança fornecida pelo app autenticador para autenticação de nível 2. O valor padrão é 6. integer
$flow.otp_length Especifica o comprimento válido da senha única (OTP) para autenticação de nível 1. O valor padrão é 6. integer

Para configurar os parâmetros de entrada desse componente, expanda para instruções.

  1. Abra o console do Dialogflow CX.
  2. Escolha seu projeto do Google Cloud.
  3. Selecione seu agente.
  4. Selecione a guia Build.
  5. Clique no componente importado na seção Fluxos.
  6. Clique em "Página inicial" na seção Páginas.
  7. Clique na rota true na página inicial.
  8. Na janela "Rota", edite os valores de Predefinições de parâmetros conforme necessário.
  9. 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 de sair 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, usado para identificar o usuário. string
transfer_reason Esse parâmetro indica o motivo da saída do fluxo, caso ele não tenha sido concluído. 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 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 de não correspondência.

webhook_error: ocorreu um erro de webhook. Consulte evento integrado webhook.error.

webhook_not_found: um URL de webhook estava inacessível. Consulte evento integrado webhook.error.not-found.
string

Configuração básica

Para configurar esse componente pré-criado:

  1. Importe o componente pré-criado.
  2. Configure os webhooks flexíveis fornecidos com uma configuração que descreve seus serviços externos. Consulte a configuração de 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 seus 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

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, usado para identificar o usuário. string

Parâmetros de resposta da API

Os parâmetros a seguir são extraídos da resposta da API para serem usados 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 contas em que 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 dela serão retornados. Se um usuário tiver mais de uma conta, o valor desse parâmetro será null. string
e-mail 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, expanda para ver as instruções.

  1. Abra o console do Dialogflow CX.
  2. Escolha seu projeto do Google Cloud.
  3. Selecione seu agente.
  4. Selecione a guia Gerenciar.
  5. Clique em Webhooks.
  6. Selecione o webhook prebuilt_components_authentication:telephony_verification.
  7. Substitua o URL no campo URL do webhook do Dialogflow CX pelo endpoint do serviço que você quer integrar. Selecione o Método adequado no menu suspenso.
  8. Revise e atualize o corpo da solicitação para formar o formato adequado para seu webhook.
  9. 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 dos campos retornados.
  10. Revise e atualize as configurações de Autenticação conforme necessário.
  11. Clique em Salvar.

Receber detalhes do cartão de crédito

O webhook prebuilt_components_account_services:get_credit_card_details é usado pelo componente para receber 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, usado para identificar o usuário. string

Parâmetros de resposta da API

Os parâmetros a seguir são extraídos da resposta da API para serem usados 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 um usuário tiver um único cartão de crédito, os quatro últimos 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
e-mail 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 "Get credit card details" (Receber detalhes do cartão de crédito) para esse componente, abra as instruções.

  1. Abra o console do Dialogflow CX.
  2. Escolha seu projeto do Google Cloud.
  3. Selecione seu agente.
  4. Selecione a guia Gerenciar.
  5. Clique em Webhooks.
  6. Selecione o webhook prebuilt_components_account_services:get_credit_card_details.
  7. Substitua o URL no campo URL do webhook do Dialogflow CX pelo endpoint do serviço que você quer integrar. Selecione o Método adequado no menu suspenso.
  8. Revise e atualize o corpo da solicitação para formar o formato adequado para seu webhook.
  9. 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 dos campos retornados.
  10. Revise e atualize as configurações de Autenticação conforme necessário.
  11. Clique em Salvar.

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, usado para identificar o usuário. string
$flow.channel O canal que o usuário selecionou para receber o OTP. Os valores válidos são definidos pela entidade personalizada prebuilt_components_authentication_channel. Por padrão, email e mobile são compatíveis. string

Parâmetros de resposta da API

Os parâmetros a seguir são extraídos da resposta da API para serem usados pelo componente.

Nome do parâmetro Descrição Formato da saída
generated_otp O valor do OTP gerado e enviado ao usuário usando o canal selecionado. string

Para configurar o webhook "Enviar OTP" para esse componente, abra as instruções.

  1. Abra o console do Dialogflow CX.
  2. Escolha seu projeto do Google Cloud.
  3. Selecione seu agente.
  4. Selecione a guia Gerenciar.
  5. Clique em Webhooks.
  6. Selecione o webhook prebuilt_components_authentication:send_otp.
  7. Substitua o URL no campo URL do webhook do Dialogflow CX pelo endpoint do serviço que você quer integrar. Selecione o Método adequado no menu suspenso.
  8. Revise e atualize o corpo da solicitação para formar o formato adequado para seu webhook.
  9. 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 dos campos retornados.
  10. Revise e atualize as configurações de Autenticação conforme necessário.
  11. Clique em Salvar.

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, usado para identificar o usuário. string

Parâmetros de resposta da API

Os parâmetros a seguir são extraídos da resposta da API para serem usados 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 um 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 (DN) 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 MMYYYY. Lista (string)

Para configurar o webhook de respostas de segurança para esse componente, expanda para ver as instruções.

  1. Abra o console do Dialogflow CX.
  2. Escolha seu projeto do Google Cloud.
  3. Selecione seu agente.
  4. Selecione a guia Gerenciar.
  5. Clique em Webhooks.
  6. Selecione o webhook prebuilt_components_authentication:security_answers.
  7. Substitua o URL no campo URL do webhook do Dialogflow CX pelo endpoint do serviço que você quer integrar. Selecione o Método adequado no menu suspenso.
  8. Revise e atualize o corpo da solicitação para formar o formato adequado para seu webhook.
  9. 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 dos campos retornados.
  10. Revise e atualize as configurações de Autenticação conforme necessário.
  11. Clique em Salvar.

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, usado para identificar o usuário. string
$flow.security_key A chave de segurança fornecida pelo usuário final, gerada usando um app de banco ou autenticador. string

Parâmetros de resposta da API

Os parâmetros a seguir são extraídos da resposta da API para serem usados 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. booleano

Para configurar o webhook de validação de dois fatores para esse componente, expanda para ver as instruções.

  1. Abra o console do Dialogflow CX.
  2. Escolha seu projeto do Google Cloud.
  3. Selecione seu agente.
  4. Selecione a guia Gerenciar.
  5. Clique em Webhooks.
  6. Selecione o webhook prebuilt_components_authentication:2fa_validation.
  7. Substitua o URL no campo URL do webhook do Dialogflow CX pelo endpoint do serviço que você quer integrar. Selecione o Método adequado no menu suspenso.
  8. Revise e atualize o corpo da solicitação para formar o formato adequado para seu webhook.
  9. 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 dos campos retornados.
  10. Revise e atualize as configurações de Autenticação conforme necessário.
  11. Clique em Salvar.

Concluído

Seu agente e os webhooks dele agora estão configurados e prontos para teste.