Componente precompilado de autenticación

El componente compilado previamente de autenticación recopila información del usuario para alcanzar el nivel de autenticación requerido. Este componente abarca los requisitos de autenticación que son comunes, pero no exclusivos, para la industria de servicios financieros (FSI). Usa los componentes precompilados Recopilación de fechas de vencimiento de tarjetas de crédito, Recopilación de fechas de nacimiento y Recopilación de números de teléfono para recopilar y validar los detalles del usuario.

Niveles de autenticación

Los diferentes componentes precompilados requieren varios niveles de autenticación, y los niveles más altos requieren más información del usuario para autenticarse.

El componente de autenticación permite que el usuario se autentique en el nivel 0 (coincidencia de ANI), el nivel 1 (básico) o el nivel 2 (autenticación de varios factores), como se describe en la siguiente tabla:

Nivel de autenticación Requisitos
Nivel 0: Coincidencia de ANI Autentica al usuario llamando desde un número de teléfono que corresponda a una cuenta registrada o proporcionándolo.

El usuario puede autenticarse en el nivel 0 con el componente precompilado de saludo.
Nivel 1: Básico Autentica al usuario verificando un código de contraseña de un solo uso (OTP) enviado a su correo electrónico o número de teléfono. Si falla la verificación de la OTP, el usuario puede responder tres de las cuatro preguntas de seguridad para autenticarse correctamente: fecha de nacimiento, los últimos cuatro dígitos de la tarjeta de débito o la fecha de vencimiento de la tarjeta de crédito del usuario (según si es titular de la cuenta o de la tarjeta), el importe de la última transacción y la forma de pago de la última factura de la tarjeta de crédito.
Nivel 2: Varios factores Además, autentica al usuario verificando una llave de seguridad generada por una app de autenticación externa o una notificación push.

Tipos de usuarios admitidos

El componente de autenticación admite clientes bancarios inscritos que son titulares de cuentas, titulares de tarjetas o ambos. El componente también admite la autenticación de usuarios que no son clientes registrados del banco, pero que tienen un poder para las cuentas registradas en el banco. El usuario puede tener una o más cuentas o tarjetas registradas en el banco.

Tipos de autenticación

Este componente te permite configurar si el usuario debe autenticarse como titular de la cuenta, titular de la tarjeta o ambos. Puedes configurar estas opciones con los parámetros de entrada $session.params.account_auth_enabled y $session.params.card_auth_enabled.

En esta tabla, se describe el comportamiento del componente para diferentes combinaciones de valores de los parámetros de autenticación de la cuenta y de la tarjeta:

account_auth_enabled card_auth_enabled Tipo de autenticación
true false Se autentica al usuario como titular de la cuenta, se verifica que tenga una o más cuentas en el banco y se confirman las preguntas de seguridad, incluidos los últimos cuatro dígitos de la tarjeta de débito registrada.
false true Se autentica al usuario como titular de la tarjeta, se verifica que tenga una o más tarjetas de crédito con el banco y se confirman las preguntas de seguridad, incluida la fecha de vencimiento de una tarjeta de crédito registrada.
true true Primero, el componente verifica si el usuario es un titular de la cuenta registrado. Si el usuario tiene una o más cuentas en el banco, el componente lo autentica con la información de la cuenta. Si el usuario no tiene ninguna cuenta en el banco, el componente intentará autenticarlo con la información del titular de la tarjeta.
false false Primero, el componente verifica si el usuario es un titular de la cuenta registrado. Si el usuario tiene una o más cuentas en el banco, el componente lo autentica con el nivel 0 de autenticación. Si el usuario no tiene ninguna cuenta en el banco, el componente verifica si es titular de una tarjeta. Si el usuario tiene una o más tarjetas de crédito con el banco, el componente lo autentica con el nivel 0 de autenticación.

Limitaciones

Además de las limitaciones comunes de los componentes compilados previamente, este componente tiene las siguientes limitaciones:

  • Las OTP solo se envían a un número de celular o una dirección de correo electrónico que se hayan registrado previamente en la cuenta. El componente no usa OTP para autenticar a los clientes que llaman desde un número de teléfono alternativo que no está registrado en su cuenta. Cuando se llama desde un número de teléfono alternativo, las preguntas de seguridad autentican al usuario.
  • Este componente no encripta datos.

Diálogos de muestra

En los siguientes diálogos de ejemplo, se muestran situaciones comunes que controla este componente precompilado. Los diálogos muestran el comportamiento cuando la telefonía llama al componente, lo que activa el intent de bienvenida predeterminado y la primera respuesta del agente al comienzo de la conversación.

Autenticación de nivel 1 correcta: OTP

  1. El componente verifica que el usuario se haya autenticado en el nivel 0.
  2. El componente envía una OTP al canal que elija el usuario.
  3. El componente le pide al usuario que confirme la OTP.
  4. El usuario proporciona una OTP válida para autenticarse en el nivel 1.
Entrada del usuario Respuesta del agente
Por motivos de seguridad, debemos validar tu identidad, por lo que te enviaremos un código. ¿Prefieres recibir el código por teléfono o por correo electrónico?
Teléfono
Enviamos un código a tu número de teléfono registrado que termina en 0000. Este proceso puede tardar unos segundos. ¿Puedes confirmar el código?
El código es 123457
Gracias, te autenticaste correctamente.

Autenticación de nivel 1 correcta: preguntas de seguridad

  1. El componente confirma la autenticación de nivel 0 del usuario recopilando y verificando el número de teléfono proporcionado.
  2. El componente solicita y valida las respuestas correctas del usuario a tres preguntas de seguridad, incluidas la fecha de nacimiento, los últimos cuatro dígitos del número de tarjeta de débito del usuario y el importe de la última transacción.
  3. El usuario se autentica correctamente en el nivel 1.
Entrada del usuario Respuesta del agente
¿Eres cliente de nuestro banco o tienes un poder notarial? Confirma diciendo sí o no.
Sí
De acuerdo, necesitamos recopilar tu número de teléfono para obtener los detalles de tu cuenta.
El agente recopila el número de teléfono del usuario con el componente precompilado Recopilación de números de teléfono.
Entendido. El número que mencionaste es +1 6502530000, ¿es correcto?
Sí
Excelente, ya recopilamos el número de teléfono.
Por motivos de seguridad, necesitaremos más información para validar tu identidad.
El agente recopila la fecha de nacimiento del usuario con el componente precompilado Recopilación de la fecha de nacimiento.
Bien, tu fecha de nacimiento es el 3 de febrero de 1995, ¿es correcto?
Sí
Excelente, ya registramos tu fecha de nacimiento.
Ahora, indícanos los últimos cuatro dígitos del número de tu tarjeta de débito.
Es 1234
Indícanos el importe en dólares de tu última transacción. Por ejemplo, si el importe de tu última transacción fue de USD 100.30, di "100".
Eran 500 dólares
Gracias, te autenticaste correctamente.

Autenticación de nivel 2 correcta: autenticación de dos factores

  1. El usuario se autenticó previamente con la autenticación de nivel 1.
  2. El usuario genera una llave de seguridad con la app de su banco o una app de autenticación.
  3. El usuario proporciona la llave de seguridad al componente para autenticarse en el nivel 2.
Entrada del usuario Respuesta del agente
Comparte tu llave de seguridad.
Genera la llave de seguridad de 6 dígitos en la app de tu banco o app de autenticación. Luego, di o ingresa los dígitos.
232425
Gracias, te autenticaste correctamente.

Negación de información

  1. El usuario se niega a proporcionar la información necesaria para la autenticación.
  2. El componente se cierra con un mensaje de error.
Entrada del usuario Respuesta del agente
Por motivos de seguridad, debemos validar tu identidad, por lo que te enviaremos un código. ¿Prefieres recibir el código por teléfono o por correo electrónico?
No, no quiero compartirla
De acuerdo, por motivos de seguridad, necesitaremos más información para validar tu identidad.
El agente recopila la fecha de nacimiento del usuario con el componente precompilado Recopilación de la fecha de nacimiento.
Bien, tu fecha de nacimiento es el 3 de febrero de 1995, ¿es correcto?
Sí
Excelente, ya registramos tu fecha de nacimiento.
Ahora, indícanos los últimos cuatro dígitos del número de tu tarjeta de débito.
Es 1234
Indícanos el importe en dólares de tu última transacción. Por ejemplo, si el importe de tu última transacción fue de USD 100.30, di "100".
No quiero compartir los detalles
No pudimos autenticar tu identidad, por lo que no podemos completar esta acción. Lamentamos las molestias que este problema pueda ocasionarte.

Convenciones de nombres

Este componente precompilado usa las siguientes convenciones de nombres:

Función Formato Ejemplo
Flujo [Nombre del componente] Autenticación
Intención específica del componente prebuilt_components_[component_name]_[intent_name] prebuilt_components_authentication_power_of_attorney
Tipo de entidad 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

Los parámetros de entrada configuran ciertos comportamientos del componente. Una o más condiciones dentro del flujo usan los parámetros para determinar cómo se comporta el componente. El usuario debe establecer parámetros con alcance de flujo en la página de inicio del componente, como se describe en la siguiente tabla. El emisor puede establecer parámetros centrados en la sesión con un flujo de llamada o en la página de inicio de este componente.

Este componente precompilado acepta los siguientes parámetros de entrada:

Nombre del parámetro Descripción Formato de entrada
$session.params.auth_level (Opcional) Indica el nivel de autenticación actual del usuario. integer
$session.params.auth_level_req Define el nivel de autenticación con el que se autenticará el usuario. Los valores válidos son 0, 1 o 2. integer
$session.params.account_auth_enabled Indica si el usuario se debe autenticar como titular de la cuenta. El comportamiento del componente depende de este valor y del valor de $session.params.card_auth_enabled, como se describe en Niveles de autenticación. booleano
$session.params.card_auth_enabled Indica si el usuario debe autenticarse como titular de la tarjeta. El comportamiento del componente depende de este valor y del valor de $session.params.account_auth_enabled, como se describe en Niveles de autenticación. booleano
$session.params.phone_number (Opcional) El número de teléfono local del usuario, sin el código de país. Si no se proporciona este parámetro, el componente recopilará el número de teléfono del usuario. cadena
$flow.max_retry_telephone_counter Especifica la cantidad de reintentos permitidos cuando se recopila el número de teléfono del usuario. El valor predeterminado es 1. integer
$flow.max_retry_security_ans_count Especifica la cantidad de reintentos permitidos cuando se recopilan respuestas de seguridad. El valor predeterminado es 3. integer
$flow.max_retry_security_key Especifica la cantidad de reintentos permitidos cuando se recopila la llave de seguridad. El valor predeterminado es 3. integer
$flow.max_retry_otp_not_received Especifica la cantidad de reintentos permitidos cuando no se recibe la contraseña de un solo uso (OTP). El valor predeterminado es 1. integer
$flow.max_retry_otp_count Especifica la cantidad de reintentos permitidos cuando se recopila la contraseña de un solo uso (OTP). El valor predeterminado es 3. integer
$flow.security_ans_denial_count Especifica la cantidad de reintentos permitidos cuando un usuario se niega a proporcionar la información solicitada. El valor predeterminado es 1. integer
$flow.security_ans_mid_count Especifica la cantidad de respuestas de seguridad incorrectas que puede proporcionar un usuario. El valor predeterminado es 2, lo que significa que, si el emisor proporciona respuestas incorrectas a dos preguntas diferentes, el componente sale con un error. integer
$flow.max_retry_card_counter Especifica la cantidad de reintentos permitidos cuando se recopilan los últimos cuatro dígitos de la tarjeta de débito del usuario. El valor predeterminado es 2. integer
$flow.security_key_length Especifica la longitud válida de la llave de seguridad que proporciona la app de autenticación para la autenticación de nivel 2. El valor predeterminado es 6. integer
$flow.otp_length Especifica la longitud válida de la contraseña de un solo uso (OTP) para la autenticación de nivel 1. El valor predeterminado es 6. integer

Para configurar los parámetros de entrada de este componente, expande las instrucciones.

  1. Abre la consola de Dialogflow CX.
  2. Elige tu proyecto de Google Cloud.
  3. Selecciona el agente.
  4. Selecciona la pestaña Build.
  5. Haz clic en el componente importado en la sección Flujos.
  6. Haz clic en la página de inicio en la sección Páginas.
  7. Haz clic en la ruta true en la página de inicio.
  8. En la ventana Route, edita los valores de Parameter Presets según sea necesario.
  9. Haz clic en Guardar.

Los parámetros de resultado

Los parámetros de salida son parámetros de sesión que permanecen activos después de que el usuario sale del componente. Estos parámetros contienen información importante que recopila el componente.

Este componente precompilado proporciona valores para los siguientes parámetros de salida:

Nombre del parámetro Descripción Formato de salida
auth_level Indica el nivel de autenticación actual del usuario. integer
phone_number Es el número de teléfono local que proporcionó el usuario, sin el código de país. cadena
transfer_reason Este parámetro indica el motivo por el que se cerró el flujo, si no se completó correctamente. El valor que se devuelve es uno de los siguientes:

agent: El usuario solicitó un agente humano en algún momento de la conversación.

denial_of_information: El usuario rechazó compartir la información que solicitó el componente.

max_no_input: La conversación alcanzó la cantidad máxima de reintentos para eventos sin entrada. Consulta eventos integrados sin entrada.

max_no_match: La conversación alcanzó la cantidad máxima de reintentos para eventos sin coincidencia. Consulta los eventos integrados de no coincidencia.

webhook_error: Se produjo un error de webhook. Consulta el evento integrado webhook.error.

webhook_not_found: No se pudo acceder a una URL de webhook. Consulta el evento integrado webhook.error.not-found.
cadena

Configuración básica

Para configurar este componente compilado previamente, haz lo siguiente:

  1. Importa el componente compilado previamente.
  2. Configura los webhooks flexibles proporcionados con los parámetros de configuración que describen tus servicios externos. Consulta Configuración de webhooks.

Configuración del webhook

Para usar este componente, el usuario debe configurar los webhooks flexibles incluidos para recuperar la información necesaria de sus servicios externos.

Verificación telefónica

El componente usa el webhook prebuilt_components_authentication:telephony_verification para recuperar los detalles de la cuenta del usuario en función del número de teléfono proporcionado.

Parámetros de solicitud a la API

El componente proporciona los siguientes parámetros como entradas para la solicitud a la API:

Nombre del parámetro Descripción Formato de entrada
$session.params.phone_number Es el número de teléfono local del usuario, sin el código de país. cadena

Parámetros de respuesta de la API

El componente extrae los siguientes parámetros de la respuesta de la API:

Nombre del parámetro Descripción Formato de salida
account_count Es la cantidad de cuentas asociadas con el número de teléfono registrado. Estas cuentas incluyen las cuentas propias y aquellas para las que el usuario tiene un poder. integer
last_four_digit_of_account_number Si un usuario tiene una sola cuenta, se devuelven los últimos cuatro dígitos del número de cuenta. Si un usuario tiene más de una cuenta, el valor de este parámetro es null. cadena
correo electrónico Es el correo electrónico registrado con la cuenta. Si no hay ningún correo electrónico registrado con la cuenta, el valor de este parámetro es null. cadena

Para configurar el webhook de verificación de telefonía de este componente, expande las instrucciones.

  1. Abre la consola de Dialogflow CX.
  2. Elige tu proyecto de Google Cloud.
  3. Selecciona el agente.
  4. Selecciona la pestaña Administrar.
  5. Haz clic en Webhooks.
  6. Selecciona el webhook prebuilt_components_authentication:telephony_verification.
  7. Reemplaza la URL en el campo URL de webhook de Dialogflow CX por el extremo del servicio con el que deseas realizar la integración. Selecciona el Método adecuado en el menú desplegable.
  8. Revisa y actualiza el Cuerpo de la solicitud para formar el formato de solicitud adecuado para tu webhook.
  9. Revisa y actualiza la configuración de la respuesta para extraer campos específicos de la respuesta de tu webhook. No modifiques los nombres de los parámetros, ya que el componente los requiere para acceder a los valores de campo que se devuelven.
  10. Revisa y actualiza la configuración de Autenticación según sea necesario.
  11. Haz clic en Guardar.

Obtén los detalles de la tarjeta de crédito

El componente usa el webhook prebuilt_components_account_services:get_credit_card_details para recuperar información sobre las tarjetas de crédito registradas para un usuario.

Parámetros de solicitud a la API

El componente proporciona los siguientes parámetros como entradas para la solicitud a la API:

Nombre del parámetro Descripción Formato de entrada
$session.params.phone_number Es el número de teléfono local del usuario, sin el código de país. cadena

Parámetros de respuesta de la API

El componente extrae los siguientes parámetros de la respuesta de la API:

Nombre del parámetro Descripción Formato de salida
credit_card_count Es la cantidad de tarjetas de crédito asociadas con el número de teléfono registrado. integer
last_four_digit_of_credit_card_number Si un usuario tiene una sola tarjeta de crédito, se devuelven los últimos cuatro dígitos del número de tarjeta. Si un usuario tiene más de una tarjeta, el valor de este parámetro es null. cadena
correo electrónico Es el correo electrónico registrado con la cuenta. Si no hay ningún correo electrónico registrado con la cuenta, el valor de este parámetro es null. cadena

Para configurar el webhook Obtener detalles de la tarjeta de crédito de este componente, expande las instrucciones.

  1. Abre la consola de Dialogflow CX.
  2. Elige tu proyecto de Google Cloud.
  3. Selecciona el agente.
  4. Selecciona la pestaña Administrar.
  5. Haz clic en Webhooks.
  6. Selecciona el webhook prebuilt_components_account_services:get_credit_card_details.
  7. Reemplaza la URL en el campo URL de webhook de Dialogflow CX por el extremo del servicio con el que deseas realizar la integración. Selecciona el Método adecuado en el menú desplegable.
  8. Revisa y actualiza el Cuerpo de la solicitud para formar el formato de solicitud adecuado para tu webhook.
  9. Revisa y actualiza la configuración de la respuesta para extraer campos específicos de la respuesta de tu webhook. No modifiques los nombres de los parámetros, ya que el componente los requiere para acceder a los valores de campo que se devuelven.
  10. Revisa y actualiza la configuración de Autenticación según sea necesario.
  11. Haz clic en Guardar.

Enviar OTP

El webhook de prebuilt_components_authentication:send_otp envía una contraseña de un solo uso (OTP) a un canal registrado que selecciones.

Parámetros de solicitud a la API

El componente proporciona los siguientes parámetros como entradas para la solicitud a la API:

Nombre del parámetro Descripción Formato de entrada
$session.params.phone_number Es el número de teléfono local del usuario, sin el código de país. cadena
$flow.channel Es el canal que el usuario seleccionó para recibir la OTP. Los valores válidos se definen con la entidad personalizada prebuilt_components_authentication_channel. De forma predeterminada, se admiten email y mobile. cadena

Parámetros de respuesta de la API

El componente extrae los siguientes parámetros de la respuesta de la API:

Nombre del parámetro Descripción Formato de salida
generated_otp Es el valor de la OTP generada y enviada al usuario a través del canal seleccionado. cadena

Para configurar el webhook de envío de OTP para este componente, expande las instrucciones.

  1. Abre la consola de Dialogflow CX.
  2. Elige tu proyecto de Google Cloud.
  3. Selecciona el agente.
  4. Selecciona la pestaña Administrar.
  5. Haz clic en Webhooks.
  6. Selecciona el webhook prebuilt_components_authentication:send_otp.
  7. Reemplaza la URL en el campo URL de webhook de Dialogflow CX por el extremo del servicio con el que deseas realizar la integración. Selecciona el Método adecuado en el menú desplegable.
  8. Revisa y actualiza el Cuerpo de la solicitud para formar el formato de solicitud adecuado para tu webhook.
  9. Revisa y actualiza la configuración de la respuesta para extraer campos específicos de la respuesta de tu webhook. No modifiques los nombres de los parámetros, ya que el componente los requiere para acceder a los valores de campo que se devuelven.
  10. Revisa y actualiza la configuración de Autenticación según sea necesario.
  11. Haz clic en Guardar.

Respuestas de seguridad

El webhook prebuilt_components_authentication:security_answers recupera las respuestas de seguridad del usuario de su cuenta registrada.

Parámetros de solicitud a la API

El componente proporciona los siguientes parámetros como entradas para la solicitud a la API:

Nombre del parámetro Descripción Formato de entrada
$session.params.phone_number Es el número de teléfono local del usuario, sin el código de país. cadena

Parámetros de respuesta de la API

El componente extrae los siguientes parámetros de la respuesta de la API:

Nombre del parámetro Descripción Formato de salida
security_last_trans_amount Indica el importe total de la última transacción del usuario, sin el símbolo de moneda. Por ejemplo, si el importe de la última transacción del usuario es de USD 100.30, el valor esperado de este campo es "100.30". cadena
last_payment_mode Es la forma de pago que se usó para la última transacción del usuario, con valores válidos definidos por la entidad personalizada prebuilt_components_authentication_payment_mode. De forma predeterminada, estos valores incluyen mobile, upi, online, debit, credit y account. cadena
security_card_number Son los últimos cuatro dígitos del número de tarjeta de débito del usuario. cadena
user_dob Es la fecha de nacimiento (DOB) del usuario en formato AAAA-MM-DD. cadena
cards_exp_date_all Son las fechas de vencimiento de todas las tarjetas de crédito registradas con el usuario en formato MMAAAA. Lista (cadena)

Para configurar el webhook de respuestas de seguridad de este componente, expande las instrucciones.

  1. Abre la consola de Dialogflow CX.
  2. Elige tu proyecto de Google Cloud.
  3. Selecciona el agente.
  4. Selecciona la pestaña Administrar.
  5. Haz clic en Webhooks.
  6. Selecciona el webhook prebuilt_components_authentication:security_answers.
  7. Reemplaza la URL en el campo URL de webhook de Dialogflow CX por el extremo del servicio con el que deseas realizar la integración. Selecciona el Método adecuado en el menú desplegable.
  8. Revisa y actualiza el Cuerpo de la solicitud para formar el formato de solicitud adecuado para tu webhook.
  9. Revisa y actualiza la configuración de la respuesta para extraer campos específicos de la respuesta de tu webhook. No modifiques los nombres de los parámetros, ya que el componente los requiere para acceder a los valores de campo que se devuelven.
  10. Revisa y actualiza la configuración de Autenticación según sea necesario.
  11. Haz clic en Guardar.

Validación de dos factores

El webhook prebuilt_components_authentication:2fa_validation permite que el componente valide la llave de seguridad que proporciona el usuario para la autenticación de dos factores.

Parámetros de solicitud a la API

El componente proporciona los siguientes parámetros como entradas para la solicitud a la API:

Nombre del parámetro Descripción Formato de entrada
$session.params.phone_number Es el número de teléfono local del usuario, sin el código de país. cadena
$flow.security_key Es la clave de seguridad que proporciona el usuario, generada con una app bancaria o de autenticación. cadena

Parámetros de respuesta de la API

El componente extrae los siguientes parámetros de la respuesta de la API:

Nombre del parámetro Descripción Formato de salida
security_key_verified Indica si la llave de seguridad proporcionada por el usuario es válida. true indica que la llave de seguridad proporcionada es válida. false indica que la clave de seguridad proporcionada no es válida. booleano

Para configurar el webhook de validación de dos factores para este componente, expande las instrucciones.

  1. Abre la consola de Dialogflow CX.
  2. Elige tu proyecto de Google Cloud.
  3. Selecciona el agente.
  4. Selecciona la pestaña Administrar.
  5. Haz clic en Webhooks.
  6. Selecciona el webhook de validación prebuilt_components_authentication:2fa_validation.
  7. Reemplaza la URL en el campo URL de webhook de Dialogflow CX por el extremo del servicio con el que deseas realizar la integración. Selecciona el Método adecuado en el menú desplegable.
  8. Revisa y actualiza el Cuerpo de la solicitud para formar el formato de solicitud adecuado para tu webhook.
  9. Revisa y actualiza la configuración de la respuesta para extraer campos específicos de la respuesta de tu webhook. No modifiques los nombres de los parámetros, ya que el componente los requiere para acceder a los valores de campo que se devuelven.
  10. Revisa y actualiza la configuración de Autenticación según sea necesario.
  11. Haz clic en Guardar.

Completado

El componente compilado previamente y sus webhooks ya están configurados y listos para probarse.