Saltar al contenido

Proveedor de seguridad de autenticación de aplicaciones en Jitterbit App Builder

Introducción

App Builder admite Autenticación de Aplicaciones como un proveedor de seguridad, lo que te permite crear tus propios formularios de inicio de sesión y autenticar a los clientes utilizando un enfoque personalizado. En lugar de redirigir a los clientes a un Proveedor de Identidad (IdP) de terceros, los clientes son redirigidos a una página de App Builder que tú creas. (Este proveedor se utiliza para iniciar sesión a los usuarios en App Builder; no se puede usar para autorizar a usuarios que ya han iniciado sesión.)

Es posible que desees utilizar un flujo de inicio de sesión personalizado en situaciones como las siguientes:

  • Permitir que los clientes mantengan sus propias cuentas de usuario.

  • Validar credenciales contra un servicio de terceros a través de una API.

  • Verificar un número de teléfono enviando un Código de Acceso Único (OTP).

  • Permitir que los clientes inicien sesión de manera semi-anónima.

Esta página explica cómo funciona el flujo de autenticación y cómo configurarlo.

Cómo funciona: el flujo de autenticación

Entender el flujo de Autenticación de Aplicaciones es clave para implementarlo correctamente, especialmente al dirigir a los usuarios a una página que requiere un inicio de sesión. Esto se conoce como un "desafío".

El proceso de desafío y redirección

Aquí está el recorrido típico del usuario al intentar acceder a una página protegida:

  1. Solicitud inicial: Un usuario no autenticado intenta acceder a un "enlace profundo" a una página dentro de tu aplicación que requiere un inicio de sesión. El enlace incluso puede contener parámetros de URL.

    Ejemplo de URL
    https://<tu-dominio>/app/MyApp/MyProtectedPage?orderId=123
    
  2. Desafío de autenticación: App Builder determina que el usuario no ha iniciado sesión y que la página requiere autenticación. Inicia un "desafío".

  3. Redirección a la página de inicio de sesión: App Builder redirige al usuario a la página de inicio de sesión personalizada definida en la propiedad LoginPath de tu proveedor de seguridad de Autenticación de Aplicaciones.

    Importante

    Para que esto suceda automáticamente, debes hacer lo siguiente:

    • Establezca este proveedor de seguridad como el proveedor de Autenticación Predeterminada para su aplicación. (Esto anula cualquier predeterminado a nivel de sistema que pueda estar configurado en IDE > Proveedores de Seguridad > Configuración > Autenticación Predeterminada.)

    • Habilite la opción Redirigir en Desafío.

  4. El usuario inicia sesión: El usuario ingresa sus credenciales en su página de inicio de sesión personalizada y envía el formulario.

  5. Se ejecuta la regla de autenticación: Su regla de autenticación personalizada se ejecuta, verifica las credenciales y registra al usuario en App Builder.

  6. Redirigir a la página original: Después de un inicio de sesión exitoso, App Builder redirige automáticamente al usuario de regreso a la página que originalmente intentó acceder, incluyendo todos los parámetros de URL originales.

Este flujo sin interrupciones asegura que los usuarios lleguen exactamente a donde pretendían ir después de iniciar sesión, sin perder ningún contexto del enlace original que siguieron.

Resumen de configuración

Para configurar la Autenticación de Aplicaciones, necesita configurar varios componentes en su entorno y dentro de su aplicación.

Configuración del entorno

Lo siguiente debe configurarse en cada entorno (por ejemplo, Dev, QA y Producción):

  • Aplicación de página de inicio de sesión: Una aplicación de App Builder independiente que sirve como su formulario de inicio de sesión.

  • Proveedor de seguridad de autenticación de la aplicación: El proveedor de seguridad que define el comportamiento de inicio de sesión personalizado.

  • Cuentas de usuario genéricas: Una o más cuentas de usuario en App Builder a las que se asignan los usuarios autenticados.

Configuración de la aplicación

Debe configurar estos elementos en su aplicación principal:

  • Regla de autenticación: Una regla de negocio que contiene la lógica para verificar las credenciales del usuario.

  • (Opcional) Tablas de soporte: Tablas para gestionar sesiones de usuario, contraseñas y datos de usuario específicos de la aplicación.

Guía de configuración paso a paso

1. Crear la aplicación de página de inicio de sesión

Deberías configurar la página de inicio de sesión como una aplicación independiente. Esta aplicación existe solo para autenticar usuarios. Estos son los requisitos para ella:

  • La página debe ser accesible para el grupo de Usuario Anónimo.

  • Debe contener un panel que funcione con la tabla de Sesión.

  • Necesita uno o más campos editables para capturar las credenciales del usuario (como un Nombre de Usuario, Correo Electrónico o Número de Teléfono).

  • (Opcional) Un campo de Contraseña (con validación de contraseña configurada).

  • Necesita un botón de Iniciar Sesión que active tu regla de autenticación. Este botón no debe enlazar a ninguna página; su único propósito es ejecutar la regla.

  • Opcionalmente, puedes incluir enlaces de Olvidé mi Contraseña o Registrarse.

2. Crear el proveedor de seguridad de autenticación de la aplicación

Para crear el proveedor de seguridad de autenticación de la aplicación, sigue estos pasos:

  1. Selecciona IDE > Proveedores de Seguridad.

  2. En el panel de Autenticación de Usuarios, haz clic en + Autenticación de Usuarios.

  3. En la página de Proveedor, establece lo siguiente:

    • Nombre: Un nombre para tu proveedor (por ejemplo, MyAppAuthentication).

    • Tipo: Selecciona Autenticación de Aplicación.

    • Habilitado: Deja esto deshabilitado hasta que toda la configuración esté completa.

    • Mostrar en el Formulario de Inicio de Sesión: Marca esta casilla.

    • Página Predeterminada: Selecciona la página de destino predeterminada que un usuario debería ver después de iniciar sesión, si no intentó acceder originalmente a una página de enlace profundo específica. La página debe estar marcada como Pública en su configuración de Caso Límite.

  4. Haz clic en Guardar.

  5. En Propiedades, haz clic en + Propiedad.

  6. En el popup de Propiedades, establece los valores de la siguiente manera:

    • Parámetro: Selecciona LoginPath.

    • Valor: Ingresa la ruta relativa a tu aplicación de página de inicio de sesión. La ruta debe estar codificada en URL y comenzar con un /.

      Ejemplo
      /app/Login%20App/Login%20Page
      
  7. Guarda las propiedades y cierra el popup.

3. Configurar una cuenta de usuario genérica

App Builder proporciona dos enfoques principales para manejar cuentas de usuario con Autenticación de Aplicaciones:

  1. Mapeo a una cuenta de usuario genérica: Esto implica crear una o más cuentas de usuario preexistentes en App Builder a las que se asignan los usuarios externos autenticados. Esto es particularmente útil para escenarios como el acceso semi-anónimo (por ejemplo, utilizando un número de teléfono y OTP) donde todos los usuarios externos podrían compartir una cuenta de bajo privilegio.

  2. Provisionamiento dinámico de usuarios: Este enfoque más avanzado implica crear cuentas de usuario individuales en App Builder sobre la marcha durante el proceso de inicio de sesión.

Esta sección se centra en el primer enfoque: mapeo a una cuenta de usuario genérica. Para hacer esto, sigue estos pasos:

  1. Selecciona IDE > Gestión de Usuarios y crea una nueva cuenta de usuario (por ejemplo, MyAppUser). Esta es la cuenta que proporciona los permisos dentro de la aplicación.

  2. Asigna al usuario a los Grupos que otorgan los roles necesarios para tu aplicación.

  3. En Identidades, haz clic en + Identidad para crear una identidad para este usuario con la siguiente configuración:

    • Nombre: Ingresa el valor que tu aplicación utilizará para identificar a la persona, como su nombre de usuario o dirección de correo electrónico. Este debe ser único para cada usuario. App Builder utilizará esto para encontrar la cuenta de usuario correcta, a menos que también proporciones un valor para Identificador.

    • Identificador (opcional pero recomendado): Ingresa un ID único y permanente para este usuario. Esta es la forma más confiable para que App Builder reconozca a un usuario, incluso si su dirección de correo electrónico o nombre de usuario cambia. Si proporcionas esto, App Builder siempre lo utiliza primero para encontrar al usuario.

4. Crear la regla de autenticación

Necesitas una regla de negocio para manejar la lógica de autenticación real. Para configurarla, sigue estos pasos:

  1. Crea una Regla de Negocio CRUD XP que realice una acción de Insertar.

  2. Establece la Fuente de Datos Objetivo en App Builder y el Objetivo en el objeto de datos público Authenticate.

  3. En el SQL de la regla, une tu tabla de credenciales de usuario con la tabla Session para obtener el nombre de usuario y la contraseña ingresados por el usuario.

  4. Mapea las siguientes cuatro columnas requeridas al destino Authenticate:

    • AuthenticateID: Un nuevo GUID. Usa newUUID().

    • ProviderId: El ID de tu proveedor de seguridad de autenticación de aplicación.

    • AppUserId: Un identificador para el usuario final que está iniciando sesión (como su correo electrónico o nombre de usuario). Esto se utiliza para auditoría a través de la función who('appuserid').

    • Name: El nombre de la Identidad del usuario genérico al que se debe mapear (por ejemplo, MyAppUser). Esto puede estar codificado de forma fija o determinarse dinámicamente según las credenciales del usuario.

5. Habilitar redirección automática en el desafío

Para asegurar que los usuarios sean enviados automáticamente a tu página de inicio de sesión personalizada cuando accedan a una página protegida, debes habilitar estas dos configuraciones:

  1. Configura el proveedor de autenticación predeterminado:

    (El proveedor de autenticación predeterminado puede configurarse a nivel del sistema o a nivel de la aplicación. La configuración a nivel de la aplicación anula la opción a nivel del sistema.)

    Para configurar el predeterminado a nivel de la aplicación, sigue estos pasos:

    1. Selecciona IDE > Proveedores de Seguridad.

    2. Bajo Autenticación de Usuario, selecciona Más > Administrar Aplicaciones.

    3. Haz clic en el ícono Editar para tu aplicación.

    4. Establece Autenticación Predeterminada al proveedor de autenticación de aplicación que creaste.

    5. Haz clic en Proceder y cierra el popup.

  2. Configura la redirección en el desafío:

    1. En la página de Proveedores de Seguridad, haz clic en el ícono Abrir registro para tu proveedor de autenticación de aplicación.

    2. Bajo Proveedor, haz clic en Editar.

    3. Marca la opción Redirigir en Desafío.

    4. Haz clic en Guardar.

6. Habilitar y probar

Una vez que todos los pasos anteriores estén completos, regresa a tu proveedor de seguridad de autenticación de aplicación en el IDE y habilítalo. Ahora puedes probar todo el flujo de inicio de sesión.

Temas avanzados

Una de las características más poderosas de este flujo es la capacidad de enviar a un usuario un enlace a un registro específico o vista filtrada dentro de tu aplicación. Debido a que App Builder preserva la URL originalmente solicitada (incluidos todos los parámetros de consulta) a través del proceso de autenticación, puedes construir enlaces profundos sin ningún formato especial. Por ejemplo, puedes enviar a un usuario un enlace a un pedido específico: https://<tu-dominio>/app/MyApp/Orders?Orders.OrderId=5011 Cuando el usuario no autenticado hace clic en este enlace, es llevado a tu página de inicio de sesión y, después de iniciar sesión, es redirigido a la página de Orders con el pedido 5011 cargado automáticamente.

Activar manualmente un desafío

Mientras que App Builder desafía automáticamente a los usuarios no autenticados cuando acceden a una página protegida, también puedes activar manualmente este proceso desde la lógica de tu aplicación. Esto es útil para escenarios como la expiración de la sesión de un usuario, o para proporcionar un botón de Inicio de sesión dedicado en el encabezado de tu aplicación.

Para hacer esto, creas una regla de negocio simple que inserta un registro en el objeto de datos público Challenge. Luego puedes adjuntar esta regla a un evento, como un clic en un botón.

Cómo crear un disparador de inicio de sesión manual

  1. Crear una Regla de Negocio: Crea una nueva Regla de Negocio CRUD XP y dale un nombre descriptivo, como Desafío de Inicio de Sesión Manual.

  2. Configurar el Objetivo de la Regla:

    • Establece la Fuente de Datos Objetivo en App Builder.

    • Establece el Objetivo en el objeto de datos público Challenge.

    • Establece la Acción en Insertar.

  3. Mapear el ID del Proveedor: En el diseño de la regla, solo necesitas mapear una columna. Mapea el ID de tu proveedor de seguridad de Autenticación de Aplicaciones a la columna ProviderId en el objetivo Challenge. Puedes encontrar este ID en la página de Proveedores de Seguridad en el IDE.

  4. Activar la Regla: Adjunta esta nueva regla de negocio a un evento. Por ejemplo, podrías agregar un botón de Inicio de sesión al encabezado de tu aplicación y configurar su evento on-click para ejecutar la regla Desafío de Inicio de Sesión Manual.

Cuando esta regla se ejecuta, App Builder redirige inmediatamente al usuario a la página de inicio de sesión definida en el LoginPath de su proveedor de seguridad, preservando la página actual del usuario para que pueda regresar a ella después de un inicio de sesión exitoso.