Ejemplos de flujos de inicio de sesión
Puede utilizar un flujo de inicio de sesión para personalizar la experiencia de inicio de sesión e integrar procesos de negocio con la autenticación de Salesforce. Entre los casos comunes de utilización de estos flujos se incluye la recopilación y actualización de datos de usuarios al iniciar sesión, la configuración de métodos de autenticación de múltiples factores o la integración de métodos de autenticación sólida de terceros.
Ediciones necesarias
| Disponible en: Salesforce Classic y Lightning Experience |
| Disponible en: Essentials Edition, Professional Edition, Enterprise Edition, Performance Edition, Unlimited Edition y Developer Edition |
Veamos tres casos comunes de utilización de flujos de inicio de sesión:
- Recopilación y actualización de datos de usuarios al iniciar sesión
- Aplicación de métodos de autenticación de múltiples factores personalizados (MFA)
- Integración de mecanismos de autenticación sólida de terceros
Recopilación y actualización de datos de usuarios al iniciar sesión
Este flujo de inicio de sesión solicita a los usuarios que confirmen o actualicen sus números de teléfono, que luego se actualizan en las cuentas de usuario.
- Consulta del objeto del usuario para los números de teléfono del usuario, si existen.
- Visualización de los números y solicitud de confirmación o actualización al usuario.
- Actualización del objeto del usuario con los nuevos números, si procede.
Creación del flujo
- Ir a https://help.salesforce.com/articleView?id=flow_builder.htm&language=es_MX.
-
Desde la ficha Gestor en la caja de herramientas, haga clic en Nuevo recurso y cree una variable para almacenar el Id. de usuario.
El evento de inicio de sesión pasa al flujo una lista de atributos de contexto. Cuando se inicia el flujo, los valores de atributos correspondientes se rellenan en la variable de entrada apropiada. Para utilizar estos atributos en el flujo, defina variables de texto local utilizando el formato LoginFlow_ATTRIBUTE_NAME. Por ejemplo, LoginFlow_UserId, que puede utilizar para comprobar el id. del usuario que inicia sesión y consultar el objeto de usuario asociado.

Tras agregar cada variable, este aparecerĆ” en la ficha Gestor.
Se admiten las siguientes variables de entrada.
- LoginFlow_LoginType
- LoginFlow_LoginSubType
- LoginFlow_IpAddress
- LoginFlow_UserAgent
- LoginFlow_Platform
- LoginFlow_Application
- LoginFlow_Community
- LoginFlow_SessionLevel
- LoginFlow_UserId
TambiƩn puede almacenar estos atributos como variables de salida en el flujo.
- LoginFlow_FinishLocation (tipo Texto): Esta variable determina dónde se debe enviar al usuario cuando se completa el flujo.
- LoginFlow_ForceLogout (tipo Booleano): Cuando esta variable se define con el valor
true, la sesión del usuario se cierra de inmediato.
-
En la ficha Gestor, haga clic en Nuevo recurso para crear una variable de registro para almacenar valores del usuario.

-
Agregue un elemento Obtener registros para buscar el usuario que estÔ intentando iniciar sesión.

-
Especifique los campos del usuario que desea almacenar en la variable, como, por ejemplo, Phone y MobilePhone.

-
Cree una pantalla de bienvenida para solicitar al usuario confirmar los números de teléfono en el archivo.

- Para establecer un valor predeterminado para cada componente TelƩfono en la pantalla, establezca Valor como el campo apropiado en la variable de registro {!user}. Para TelƩfono, eso es {!user.Phone}. Para TelƩfono celular, eso es {!user.mobilePhone}.
-
Para almacenar el ingreso del usuario para cada componente Teléfono, establezca Valor en la sección Almacenar valores de salida del componente en el mismo campo que en el paso anterior.

-
Agregue un elemento Actualizar registros que utiliza los valores en la variable de registro {!user} para actualizar los números de teléfono del usuario. Como almacenó salidas de cada componente de pantalla Teléfono en campos en la variable de registro {!user}, el flujo utiliza esos valores para actualizar el usuario.

-
Conecte los elementos juntos.

-
Asigne un nombre al flujo de inicio de sesión y guÔrdelo.

-
Conecte el flujo de inicio de sesión a un perfil de usuario. Mejores prÔcticas para crear un usuario de prueba dedicado con un perfil de prueba.
Nota No asocie ningún flujo de inicio de sesión con el perfil de administrador hasta que no esté seguro de que el flujo de inicio de sesión funciona correctamente. De lo contrario, en caso de error, no podrÔ iniciar sesión en su organización. - Cierre la sesión y, a continuación, inicie sesión como usuario de prueba y pruebe el flujo.
Este es el aspecto del flujo Welcome Flow que se obtiene al utilizar Lightning Experience.
Configurar la autenticación de múltiples factores (MFA)
Este ejemplo implementa un flujo de inicio de sesión que mejora la autenticación de contraseña simultÔnea basada en el tiempo (TOTP) con un método de autenticación de múltiples factores compatible con Salesforce. El algoritmo TOTP computa una contraseña simultÔnea a partir de una clave secreta compartida y la hora actual.
El flujo realiza las acciones que se indican a continuación.
- Si el usuario aún no estÔ registrado, el flujo genera una nueva clave secreta y solicita al usuario que registre la clave con un código de Respuesta rÔpida (QR). Cuando el usuario proporciona un token TOTP vÔlido, la clave secreta se almacena en el registro del usuario. Esta clave se volverÔ a utilizar en próximos inicios de sesión.
- Si el usuario ya estĆ” registrado, solo se solicita al usuario el token TOTP.
Los usuarios pueden utilizar aplicaciones de autenticación basadas en el tiempo, como Salesforce Authenticator o Google Authenticator, para escanear el código QR y generar un token TOTP.
Es posible mejorar este flujo y personalizar la experiencia del usuario agregando un logotipo y colores corporativos. Puede incluso agregar y aplicar distintas polĆticas. Por ejemplo, puede crear un proceso de MFA basado en IP que requiera un segundo factor de autenticación solo cuando la dirección IP estĆ© fuera de un determinado intervalo.
Este ejemplo utiliza el objeto TwoFactorInfo y la clase de Apex Auth.SessionManagement para personalizar y gestionar la autenticación de múltiples factores TOTP basada en estÔndares compatible con Salesforce.
- BĆŗsqueda del objeto TwoFactorInfo para el usuario actual. Si el usuario no estĆ” registrado, genere una clave.
- A continuación, se determina si el usuario ya estÔ registrado mediante TOTP.
- Si el usuario ya estĆ” registrado, se solicita al usuario que proporcione el token TOTP.
- Si el usuario no estÔ registrado, solicite al usuario que se registre mediante un código QR y que proporcione el token TOTP.
- Valide el token TOTP. Si el token es vÔlido, el flujo de inicio de sesión finalizarÔ y el usuario habrÔ iniciado su sesión.
- Si el token TOTP no es vƔlido, se devolverƔ al usuario al paso 2.
Configuración del flujo TOTP
-
Cree las variables.
- secret: almacena la clave secreta para todas las operaciones de mĆŗltiples factores.
- qr_url: almacena la URL para la codificación del código QR de la clave secreta.
- IsTokenValid: almacena el resultado de la verificación.
secret y qr_url son variables de Texto y IsTokenValid es una variable de Booleano.

-
Para generar un nuevo secreto para usuarios que no estÔn ya registrados con un TOTP, arrastre un elemento Acción de Apex (Heredado) en el lienzo y seleccione la acción de Apex heredada TOTPPlugin.

Las acciones de Apex son clases de Apex que amplĆan la funcionalidad estĆ”ndar de un flujo. Puede utilizar una acción de Apex para realizar cĆ”lculos completos, realizar llamadas de API a servicios externos y mucho mĆ”s.
El complemento TOTPPlugin accede a los métodos TOTP de Salesforce, genera una clave secreta basada en el tiempo con un código QR y valida el TOTP. La clase de Apex para el complemento TOTPPlugin estÔ disponible en el paquete de muestras de flujos de inicio de sesión.
La acción de Apex heredada tiene estos parÔmetros heredados.
- OTP_INPUT: token TOTP que proporciona el usuario.
- OTP_REGISTRATION_INPUT: token TOTP que proporciona el usuario al registrarse por primera vez.
- SECRET_INPUT: clave secreta que se utiliza para generar el TOTP.
Devuelve los siguientes valores de salida.
- SECRET_OUTPUT: clave secreta que genera el complemento.
- QR_URL_OUTPUT: codificación QR de la clave secreta.
- IsValid_OUTPUT: Si la validación se completa correctamente, devuelve
true. De lo contrario, devuelvefalse.
Configure esta instancia de TOTPPlugin para generar una nueva clave secreta y un código QR en caso de que el usuario no esté ya registrado. En este caso, no se pasa ninguna entrada.

La clave secreta y la URL del código QR se almacenan en las variables qr_url y secret.

-
Configure un elemento Decisión para registrar un usuario.
Esta decisión verifica si secret tiene un valor nulo. Si no es nulo, el usuario debe registrarse. De este modo, defina Register como un resultado de la decisión. De lo contrario, el usuario ya estÔ registrado y solo debe especificar el token TOTP. Cambie la etiqueta del resultado predeterminado a Obtener TOTP.

-
Configure la pantalla de obtención de TOTP.
Los usuarios que ya estƩn registrados se redirigen a esta pantalla y se les pide que especifiquen el token TOTP. MƔs adelante en el flujo, puede utilizar el token TOTP que los usuarios ingresan haciendo referencia al nombre de API del componente Texto (OTP_input).

-
Configure la pantalla de registro. Solicite al usuario escanear el código QR, inicializar la aplicación del cliente TOTP e ingresar el token TOTP.

-
Para validar el token TOTP que el usuario ingresa, configure otra instancia de la acción de Apex heredada TOTPPlugin.
La acción de Apex heredada TOTPPlugin admite ambos casos de uso.
- El usuario procede de la pantalla de registro. El usuario debe escanear el código QR y proporcionar el token TOTP. El token TOTP y el secreto se pasan al complemento TOTPPlugin para su validación. TOTPPlugin valida el token TOTP con el secreto. Si es vÔlido, el secreto se registra en el registro del usuario y se utilizarÔ en próximos inicios de sesión.
- El usuario procede de la pantalla de obtención de tokens. El usuario ya estÔ registrado y solo debe especificar el token TOTP. El token TOTP se pasa a través del parÔmetro TokenInput al TOTPPlugin para su validación.

El parÔmetro isTokenValid devuelve el estado de validación, que se guarda a continuación en la variable de flujo isTokenValid.

-
Determine si iniciar sesión del usuario configurando otro elemento Decisión con dos posibles resultados.
- Si IsTokenValid es
true, el token es vƔlido. - De lo contrario, el token no es vƔlido.
Si la validación se realiza correctamente, el usuario podrÔ continuar hasta el final del flujo, para, a continuación, hacer clic en el paso siguiente e iniciar sesión en la aplicación. Si la validación produce un error, el flujo redirigirÔ al usuario al paso 2 del flujo. En el paso 2, los usuarios registrados deberÔn especificar un nuevo token TOTP. En caso de que el usuario aún no esté registrado, este deberÔ registrarse y proporcionar un nuevo token TOTP.

- Si IsTokenValid es
-
Conecte los elementos juntos.
- Para conectar la decisión Registro a la pantalla Registro, seleccione Registrar resultado
- Para conectar la decisión Registro con la pantalla Obtener TOTP, seleccione el resultado Obtener TOTP.
- Para conectar la decisión Iniciar sesión con la decisión Registro, seleccione el resultado Token no vÔlido.
- Guarde el flujo de inicio de sesión, actĆvelo y conĆ©ctelo a un perfil de usuario.
Integración de métodos de autenticación sólida de terceros
Puede utilizar flujos de inicio de sesión para interactuar con proveedores de autenticación de terceros mediante una API.
Por ejemplo, Yubico ofrece autenticación sólida a travĆ©s de una llave de seguridad fĆsica llamada YubiKey. Yubico tambiĆ©n ofrece una biblioteca de Apex de ejemplo y un flujo de inicio de sesión en GitHub. La biblioteca proporciona clases de Apex que permiten validar contraseƱas simultĆ”neas (OTP) de YubiKey. Las clases tambiĆ©n permiten a los usuarios de Salesforce utilizar YubiKey como segundo factor de autenticación al iniciar sesión. Para obtener mĆ”s información, consulte yubikey-salesforce-client.
También puede implementar un servicio de entrega de voz o SMS de terceros, como, por ejemplo, Twilio o TeleSign, para implementar un flujo de verificación de identidad y autenticación de múltiples factores basado en SMS. Para obtener mÔs información, consulte Implementación de autenticación de múltiples factores basada en SMS de terceros.
Paquete de muestras de flujos de inicio de sesión
El Paquete de muestras de flujos de inicio de sesión es un paquete no gestionando que instala diferentes muestras de flujo de inicio de sesión en su organización de Salesforce. Contiene los ejemplos que se indican a continuación.
- Confirmación de email: envĆa un email con un código de verificación.
- SF-TOTP: activa la autenticación de múltiples factores TOTP.
- Multifactor condicional: omite la autenticación de múltiples factores para aquellos usuarios que proceden de una dirección IP de confianza.
- Activación de dispositivo: Confirme la identidad del usuario utilizando la autenticación de múltiples factores o el email.
- Aceptación de los términos de servicio: solicita al usuario que acepte los términos antes de continuar.

