Componente precompilado de autenticación

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

Niveles de autenticación

Existen varios niveles de autenticación requeridos por diferentes componentes precompilados, y los niveles más altos requieren más información del usuario para autenticarlo. El componente de autenticación permite a los usuarios autenticarse en el nivel 0 (ANI Match), el nivel 1 (básico) o el nivel 2 (varios factores), como se describe en la tabla del nivel de autenticación.

Nivel de autenticación Requisitos
Nivel 0: ANI Match Para autenticar al usuario, debes llamar desde un número de teléfono que corresponda a una cuenta registrada o proporcionarlo.

Un usuario se puede autenticar en el nivel 0 con el componente precompilado de saludo.
Nivel 1: Básico Para autenticar al usuario, se debe verificar un código de contraseña de un solo uso (OTP) que se envió a su correo electrónico o número de teléfono. Si falla la verificación de la OTP, el usuario puede responder a tres de cuatro preguntas de seguridad para realizar una autenticación exitosa: fecha de nacimiento (DOB), últimos cuatro dígitos de la tarjeta de débito o crédito del usuario (según si se trata de un titular de la cuenta), el importe de la última transacción y la última forma de pago de la factura de la tarjeta de crédito.
Nivel 2: Varios factores Además, el usuario se autentica mediante la verificación de 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 proporciona asistencia para los usuarios que son clientes del banco inscritos y que son titulares de cuentas, titulares de tarjetas o ambos. El componente también admite la autenticación para los usuarios que no son clientes del banco inscritos, pero que tienen poder notarial para las cuentas registradas en el banco. Los usuarios pueden tener una o más cuentas o tarjetas registradas en el banco.

Tipos de autenticación

Este componente te permite configurar si un usuario debe autenticarse como titular de la cuenta, titular de la tarjeta o ambos. Para configurar estas opciones, establece los parámetros de entrada $session.params.account_auth_enabled y $session.params.card_auth_enabled. En esta tabla, se describe el comportamiento de los componentes de distintas combinaciones de valores para las marcas de autenticación de la cuenta y de autenticación de la tarjeta.

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

Limitaciones

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

  • Las OTP solo se enviarán a un número de celular o una dirección de correo electrónico que el usuario haya registrado con anterioridad. El componente no usará OTP para autenticar a los clientes que llamen desde un número de teléfono alternativo que no esté registrado con su cuenta. Cuando un usuario llama desde un número de teléfono alternativo, se usan preguntas de seguridad para autenticar al emisor.
  • Este componente no encripta ningún dato.

Diálogos de muestra

En los siguientes diálogos de muestra, se muestran situaciones comunes controladas por este componente compilado previamente. Los diálogos de muestra demuestran el comportamiento cuando se llama al componente mediante telefonía, lo cual activa el intent de bienvenida predeterminado y la primera respuesta del agente al comienzo de la conversación.

Autenticación exitosa de nivel 1: OTP

El usuario ya se autenticó en el nivel 0 de autenticación. El componente envía y le pide al usuario que confirme una OTP que se envió al canal que eligió. El usuario puede proporcionar una OTP válida y se autenticó correctamente al nivel 1.

Entrada del usuario Respuesta del agente
Por motivos de seguridad, debemos validar tu identidad, así 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 al 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, se autenticó correctamente.

Autenticación de nivel 1 correcta: preguntas de seguridad

El componente confirma la autenticación de nivel 0 del usuario mediante la recopilación y verificación del número de teléfono proporcionado. El componente solicita y valida las respuestas correctas del usuario a tres preguntas de seguridad: fecha de nacimiento, últimos cuatro dígitos del número de la tarjeta de débito del usuario y el importe de la última transacción. El usuario se autenticó correctamente en el nivel 1.

Entrada del usuario Respuesta del agente
¿Es cliente de nuestro banco o tiene un poder notarial? Para confirmar, di sí o no.
Bien, necesitamos obtener tu número de teléfono para obtener los detalles de tu cuenta.
El agente recopila el número de teléfono del usuario mediante el componente precompilado de Recopilación de números de teléfono.
Entendido El número que mencionaste es más 1 6502530000, ¿correcto?
Terminamos de recopilar 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 de recopilación de la fecha de nacimiento.
Bien, tu fecha de nacimiento es el 3 de febrero de 1995, ¿correcto?
Genial. Ya recopilamos tu fecha de nacimiento.
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".
Era 500 dólares
Gracias, se autenticó correctamente.

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

El usuario ya se autenticó en el nivel 1 de autenticación. El componente le solicita al usuario que genere una llave de seguridad con su app bancaria o de autenticador. El usuario confirma correctamente la llave de seguridad generada y se autentica 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 de autenticación. Luego, di o ingresa los dígitos.
232425
Gracias, se autenticó correctamente.

Negación de información

El usuario niega a proporcionar la información necesaria para la autenticación. El componente sale con un mensaje de error.

Entrada del usuario Respuesta del agente
Por motivos de seguridad, debemos validar tu identidad, así que te enviaremos un código. ¿Prefieres recibir el código por teléfono o por correo electrónico?
No, no quiero compartir
Por razones de seguridad, necesitaremos más información para validar tu identidad.
El agente recopila la fecha de nacimiento del usuario con el componente precompilado de recopilación de la fecha de nacimiento.
Bien, tu fecha de nacimiento es el 3 de febrero de 1995, ¿correcto?
Genial. Ya recopilamos tu fecha de nacimiento.
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 autenticarte, por lo que no podemos completar esta acción. Lamentamos las molestias que este problema pueda ocasionarte.

Convenciones de nombres

Este componente compilado previamente usa las siguientes convenciones de nomenclatura:

Ingeniería Formato Ejemplo
Flujo [Nombre del componente] Autenticación
Intent específico 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 son parámetros que se usan para configurar ciertos comportamientos del componente. Una o más condiciones dentro del flujo usarán los parámetros para determinar cómo debe comportarse el componente. Los parámetros centrados en el flujo deben establecerse en la página de inicio del componente, como se describe a continuación. Los parámetros centrados en la sesión se pueden configurar mediante un flujo de llamada o en la página de inicio de este componente.

Este componente compilado previamente acepta los siguientes parámetros de entrada:

Nombre del parámetro Descripción Formato de entrada
$session.params.auth_level Indica el nivel de autenticación actual del usuario final (opcional). integer
$session.params.auth_level_req Define el nivel de autenticación con el que se autenticará el usuario final. 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. boolean
$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. boolean
$session.params.phone_number. Número de teléfono del usuario final (opcional). Si no se proporciona este parámetro, el componente recopilará el número de teléfono del usuario final. string
$flow.max_retry_telephone_counter Especifica la cantidad de reintentos permitidos para recopilar 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 rechaza 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 llamador proporciona respuestas incorrectas a dos preguntas diferentes, el componente se cierra con errores. 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 final. El valor predeterminado es 2. integer
$flow.security_key_length Especifica la longitud válida de la llave de seguridad proporcionada por 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 de 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 permanecerán activos después de salir del componente. Estos parámetros contienen información importante que recopila el componente. Este componente compilado previamente 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 final. integer
phone_number Es el número de teléfono local del usuario, sin el código de país, que se usa para identificarlo. string
transfer_reason Este parámetro indica el motivo por el que se cerró el flujo, si no fue exitoso. El valor que se muestra es uno de los siguientes:

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

denial_of_information: El usuario final rechazó compartir la información solicitada por el componente.

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

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

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

webhook_not_found: No se pudo acceder a una URL de webhook. Consulta webhook.error.not-found contenido integrado.
string

Configuración básica

Para configurar este componente precompilado, haz lo siguiente:

  1. Importa el componente precompilado.
  2. Para configurar los webhooks flexibles proporcionados con la configuración que describe tus servicios externos de Dialogflow, consulta la configuración de webhook que se muestra a continuación.

Configuración de webhooks

Si deseas usar este componente, deberás configurar los webhooks flexibles incluidos para recuperar la información necesaria de tus servicios externos.

Verificación de telefonía

El componente usa el webhook prebuilt_components_authentication:telephony_verification para recuperar los detalles de la cuenta de usuario según el 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, que se usa para identificarlo. string

Parámetros de respuesta de la API

Los siguientes parámetros se extraen de la respuesta de la API para que los utilice el componente.

Nombre del parámetro Descripción Formato de salida
account_count La cantidad de cuentas asociadas con el número de teléfono registrado. Estas incluyen cuentas propias y de las que el usuario tiene poder notarial. integer
last_four_digit_of_account_number Si un usuario tiene una sola cuenta, se muestran 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. string
correo electrónico El correo electrónico registrado en la cuenta. Si no hay un correo electrónico registrado con la cuenta, el valor de este parámetro es null. string

Si deseas configurar el webhook de verificación de telefonía para este componente, expande la sección de 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 precompilado_components_authentication:telephony_verification.
  7. Reemplaza la URL en el campo URL de webhook de Dialogflow con el extremo del servicio con el que deseas integrarte. Selecciona el Método adecuado en el menú desplegable.
  8. Revisa y actualiza el Cuerpo de la solicitud a fin de obtener el formato de solicitud adecuado para tu webhook.
  9. Revisa y actualiza la Configuración de 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 muestran.
  10. Revisa y actualiza la configuración de Authentication según sea necesario.
  11. Haz clic en Guardar.

Cómo obtener detalles de tarjetas de crédito

El componente usa el webhook prebuilt_components_account_services:get_credit_card_details a fin de obtener 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, que se usa para identificarlo. string

Parámetros de respuesta de la API

Los siguientes parámetros se extraen de la respuesta de la API para que los utilice el componente.

Nombre del parámetro Descripción Formato de salida
credit_card_count 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 mostrarán los últimos cuatro dígitos del número de la tarjeta. Si un usuario tiene más de una tarjeta, el valor de este parámetro es null. string
correo electrónico El correo electrónico registrado en la cuenta. Si no hay un correo electrónico registrado con la cuenta, el valor de este parámetro es null. string

Si deseas configurar el webhook para obtener detalles de la tarjeta de crédito para este componente, expande la sección de 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 compilado_components_account_services:get_credit_card_details.
  7. Reemplaza la URL en el campo URL de webhook de Dialogflow con el extremo del servicio con el que deseas integrarte. Selecciona el Método adecuado en el menú desplegable.
  8. Revisa y actualiza el Cuerpo de la solicitud a fin de obtener el formato de solicitud adecuado para tu webhook.
  9. Revisa y actualiza la Configuración de 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 muestran.
  10. Revisa y actualiza la configuración de Authentication según sea necesario.
  11. Haz clic en Guardar.

Enviar OTP

El componente usa el webhook prebuilt_components_authentication:send_otp para enviar una contraseña de un solo uso (OTP) a un canal registrado que seleccionó el usuario final.

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, que se usa para identificarlo. string
$flow.channel Es el canal que seleccionó el usuario para recibir la OTP. La entidad personalizada prebuilt_components_authentication_channel define los valores válidos. De forma predeterminada, se admiten email y mobile. string

Parámetros de respuesta de la API

Los siguientes parámetros se extraen de la respuesta de la API para que los utilice el componente.

Nombre del parámetro Descripción Formato de salida
generated_otp El valor de la OTP que se generó y se envió al usuario a través del canal seleccionado. string

Si quieres configurar el webhook de Enviar 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 compilado_components_authentication:send_otp.
  7. Reemplaza la URL en el campo URL de webhook de Dialogflow con el extremo del servicio con el que deseas integrarte. Selecciona el Método adecuado en el menú desplegable.
  8. Revisa y actualiza el Cuerpo de la solicitud a fin de obtener el formato de solicitud adecuado para tu webhook.
  9. Revisa y actualiza la Configuración de 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 muestran.
  10. Revisa y actualiza la configuración de Authentication según sea necesario.
  11. Haz clic en Guardar.

Respuestas de seguridad

El componente usa el webhook prebuilt_components_authentication:security_answers para recuperar las respuestas de seguridad del usuario final 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, que se usa para identificarlo. string

Parámetros de respuesta de la API

Los siguientes parámetros se extraen de la respuesta de la API para que los utilice el componente.

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 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 será "100.30". string
last_payment_mode Es la forma de pago que se usó en 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. string
security_card_number Son los últimos cuatro dígitos del número de la tarjeta de débito del usuario. string
user_dob Es la fecha de nacimiento del usuario en formato AAAA-MM-DD. string
cards_exp_date_all Las fechas de vencimiento de todas las tarjetas de crédito registradas con el usuario en formato MMAAAA. Lista (cadena)

Si quieres configurar el webhook de respuestas de seguridad para este componente, expande la sección de 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 compilado_components_authentication:security_answers.
  7. Reemplaza la URL en el campo URL de webhook de Dialogflow con el extremo del servicio con el que deseas integrarte. Selecciona el Método adecuado en el menú desplegable.
  8. Revisa y actualiza el Cuerpo de la solicitud a fin de obtener el formato de solicitud adecuado para tu webhook.
  9. Revisa y actualiza la Configuración de 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 muestran.
  10. Revisa y actualiza la configuración de Authentication según sea necesario.
  11. Haz clic en Guardar.

Validación de dos factores

El componente usa el webhook prebuilt_components_authentication:2fa_validation a fin de validar la llave de seguridad que proporciona el usuario final 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, que se usa para identificarlo. string
$flow.security_key La llave de seguridad que proporciona el usuario final, generada con una app del banco o una app de autenticación. string

Parámetros de respuesta de la API

Los siguientes parámetros se extraen de la respuesta de la API para que los utilice el componente.

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

Si quieres 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 precompilado_components_authentication:2fa_validation.
  7. Reemplaza la URL en el campo URL de webhook de Dialogflow con el extremo del servicio con el que deseas integrarte. Selecciona el Método adecuado en el menú desplegable.
  8. Revisa y actualiza el Cuerpo de la solicitud a fin de obtener el formato de solicitud adecuado para tu webhook.
  9. Revisa y actualiza la Configuración de 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 muestran.
  10. Revisa y actualiza la configuración de Authentication según sea necesario.
  11. Haz clic en Guardar.

Completado

Tu agente y sus webhooks ya deberían estar configurados y listos para las pruebas.