Aplicación de aprovisionamiento de usuarios en Jitterbit App Builder
Introducción
Esta página muestra cómo crear una aplicación de aprovisionamiento de usuarios que los usuarios finales pueden utilizar para aprovisionar acceso a la aplicación de manera semi-automática, sin necesidad de acceso al IDE. Este es un enfoque alternativo para gestionar el acceso de los usuarios cuando un proveedor de identidad (como Okta o Azure) no está disponible.
El proceso implica crear proveedores de seguridad, configurar reinos, preparar el modelo de datos, construir una secuencia de reglas de negocio para manejar la lógica y crear una interfaz de usuario simple para que los usuarios finales inicien el proceso.
Estas instrucciones utilizan el ejemplo de proporcionar acceso a los empleados de una empresa. Las instrucciones se dividen en cinco pasos:
Preparación
Para comenzar, crea una aplicación dedicada para aprovisionar usuarios. La que se utiliza en este tutorial se llama simplemente Aplicación de Aprovisionamiento de Usuarios y comienza con las siguientes tablas:
| Tabla | Columnas |
|---|---|
Empleado |
EmployeeID (ID único, PK), FullName (Cadena), Email (Cadena), EmployeeNo (Cadena) |
Departamento |
DepartmentID (ID único, PK), Name (Cadena) |
Parámetro |
ParameterID (ID único, PK) |
Se agregarán columnas adicionales a estas tablas durante los pasos a continuación.
Paso 1: Configuración inicial
Primero, necesitas un proveedor de seguridad para manejar el aprovisionamiento y un lugar para almacenar los detalles de su configuración.
Crear un proveedor de seguridad
Para crear un proveedor de seguridad, sigue estos pasos:
-
Selecciona IDE > Proveedores de Seguridad.
-
En Autenticación de Usuario, haz clic en + Autenticación de Usuario.
-
Configura el proveedor con estos ajustes:
-
Nombre:
User ProvisioningNota
No debe confundirse con la aplicación de aprovisionamiento en sí, que se llama
User Provisioning App. -
Tipo: User Provisioning
-
Habilitado: Marcado.
-
Aprovisionamiento de Usuario: Marcado.
-
-
Haz clic en Guardar.
-
Copia y guarda la clave Identificador del nuevo proveedor para el siguiente paso.
Parametrizar la configuración
Para almacenar el ID del proveedor y una contraseña predeterminada en la tabla Parameter de tu aplicación, sigue estos pasos:
-
Ejecuta tu aplicación de aprovisionamiento de usuarios, luego ve a la pestaña Tablas del App Workbench.
-
En Tablas, encuentra la tabla Parameter, luego haz clic en su ícono Abrir registro.
-
Agrega las siguientes dos columnas:
-
MyProviderID(Tipo: ID Único) -
DefaultPassword(Tipo: Cadena)
-
-
Ve a la pestaña Páginas del App Workbench.
-
En Páginas, encuentra la página Parameter, luego haz clic en su ícono .
-
Agrega nuevos controles (tipo de control Texto) a la página para las columnas
MyProviderIDyDefaultPassword. -
Ejecuta la aplicación y selecciona Configuración > Parámetros. Se abre el popup de Parámetros.
-
Haz clic en Editar.
-
Pega el identificador del proveedor de seguridad (copiado anteriormente) en el campo MyProviderID.
-
Ingresa una contraseña predeterminada segura en el campo DefaultPassword. Esta es la contraseña que se asigna a los nuevos usuarios.
-
Haz clic en Guardar, luego cierra el popup de Parameter.
Paso 2: Configurar el control de acceso
Con el proveedor creado, ahora puedes configurar los grupos de usuarios y los dominios que rigen el acceso. Para hacer esto, sigue estos pasos:
-
Selecciona IDE > Gestión de Usuarios.
-
Selecciona la pestaña Grupos.
-
Haz clic en + Grupo. Se abre el popup de Grupo.
-
Establece los siguientes valores:
-
Nombre:
Demo General User -
Descripción:
Permisos de usuario general para la aplicación de demostración.
-
-
Haz clic en Guardar, luego cierra el popup de Grupo.
-
En Grupos, haz clic en Gestionar Privilegios para el nuevo grupo.
-
En Privilegios, haz clic en Crear. Se abre el popup de Privilegio.
-
Establece los siguientes valores:
-
Tipo: Selecciona Aplicación.
-
Aplicación: Abre el menú y selecciona la aplicación a la que accederán los usuarios finales.
Nota
La aplicación que debes seleccionar aquí es aquella a la que los usuarios finales iniciarán sesión. Esta puede o no ser la aplicación de aprovisionamiento en sí. En este tutorial, se construyó una aplicación de aprovisionamiento dedicada para gestionar el acceso a una o más aplicaciones, por lo tanto, debes seleccionar la aplicación objetivo aquí, no la aplicación de aprovisionamiento.
-
-
Haz clic en Guardar, luego cierra el panel de Privilegios/Roles.
-
En Roles, otorga los roles apropiados para los usuarios generales.
-
Selecciona la pestaña Reinos.
-
Haz clic en + Reino.
-
Ingresa
Demo Realmcomo el nombre, luego haz clic en el ícono . -
En la pestaña Aplicaciones, haz clic en Seleccionar para la aplicación a la que accederán los usuarios finales.
-
Selecciona la pestaña Grupos, luego haz clic en Seleccionar para el grupo
Demo General Userque acabas de crear. -
Selecciona la pestaña Proveedores, luego haz clic en Seleccionar para el proveedor de seguridad
User Provisioningcreado anteriormente.
Paso 3: Preparar el modelo de datos
Ahora debes actualizar tus tablas Department y Employee para almacenar información de seguridad y estado de aprovisionamiento.
Vincular Departamentos a grupos de seguridad
Sigue estos pasos:
-
Con tu aplicación en funcionamiento, ve a la pestaña Fuentes de Datos del App Workbench.
-
Haz clic en + Fuente.
-
Selecciona Vincular a fuente existente, luego haz clic en Siguiente.
-
Busca y selecciona App Builder (Sealed) (Default), luego haz clic en Vincular 1 Fuente y Listo. Esto te da acceso a los objetos de datos públicos necesarios para el aprovisionamiento.
-
Ve a la pestaña Tablas del App Workbench.
-
En Tablas, encuentra la tabla
Department, luego haz clic en su ícono de Abrir registro. -
Agrega una nueva columna llamada
MyGroupID(Tipo: ID Único). -
Ve a la pestaña Páginas del App Workbench, luego abre tu página de
Departamentopara editar. -
Agrega el control
MyGroupIDa tu página. Establece su Tipo de Control en Lista, luego haz clic en Siguiente. -
En la siguiente página, establece estos valores, luego haz clic en Siguiente:
-
Fuente:
Realm_Group -
Clave (Columna):
GroupId (PK) -
Título (Columna):
Name
-
-
Haz clic en Finalizar.
-
Ve a la pestaña Páginas del App Workbench, luego abre tu página de
Departamentopara editar. -
Selecciona la pestaña Métodos de Actualización.
-
Asegúrate de que la configuración de Método de Edición sea Estándar.
-
Ejecuta la aplicación, navega a la página de Departamentos y asigna el grupo
Demo General Usera uno de tus departamentos.
Actualiza la tabla de Empleados
Sigue estos pasos:
-
Ve a la pestaña Tablas del App Workbench.
-
Bajo Tablas, encuentra la tabla
Empleado, luego haz clic en su ícono de Abrir registro. -
Agrega las siguientes columnas:
-
MyUserID(Tipo: ID Único): Almacena el ID de App Builder del usuario después de la creación. -
ProvisionedOn(Tipo: FechaHora): Una marca de tiempo de cuándo ocurrió la provisión. -
ProvisionedBy(Tipo: Cadena, longitud: 150): El nombre del usuario que realizó la provisión.
-
Paso 4: Construir la lógica de provisión
El núcleo de la aplicación es un evento a nivel de tabla en la tabla Empleado que orquesta una secuencia de reglas. Estas reglas se ejecutan una tras otra utilizando manejadores de éxito.
Regla 1: Crear el usuario
Esta regla crea el registro del usuario, pero solo si no existe uno ya. Sigue estos pasos:
-
Ve a la pestaña Tablas del App Workbench.
-
Bajo Tablas, encuentra la tabla
Empleado, luego haz clic en su ícono de Abrir registro. -
Haz clic en Eventos. Se abre el popup de Eventos de Almacenamiento de Datos (Empleado).
-
Haz clic en + Evento de Tabla.
-
Bajo Información del Evento, establece el Nombre como
Provisionar Usuario, luego haz clic en Guardar. -
En Acciones, haz clic en + Regla y Registro.
-
En la página de Constructor de Reglas, establece los siguientes valores:
-
Nombre:
Realm_User_Create (Insertar Empleado) -
Propósito: XP CRUD
-
Acción: Insertar
-
Fuente de Datos: Selecciona la aplicación de aprovisionamiento de usuarios que has creado. En este tutorial, es
Aplicación de Aprovisionamiento de Usuarios. -
Destino de Datos:
Vinilo (Sellado) -
Opciones: Selecciona Capa de Lógica.
-
Destino:
Realm_User_Create
-
-
Haz clic en Crear.
-
Con la pestaña Tablas seleccionada, haz clic en + Tabla.
-
En la pestaña Fuente de Datos Actual, agrega la tabla
Empleado. -
Selecciona la pestaña Dónde.
-
Haz clic en + Cláusula Where.
-
En Expresión Izquierda, ingresa
E.MyUserID. -
Abre el menú Operador, luego selecciona ES NULO.
-
Haz clic en Guardar, luego cierra el popup de Dónde.
-
Selecciona la pestaña Tablas, luego selecciona
EmployeeIDy cualquier columna adicional que la regla necesite para su acción (por ejemplo, el nombre y la dirección de correo electrónico del usuario aprovisionado). -
Selecciona la pestaña Columnas, y establece los campos de la siguiente manera:
Columna o Expresión Alias Destino PK E.EmployeeIDUserId (PK)E.FullNameFullNameE.EmailEmailAddressE.FullNameDisplayNameDisplayNameE.EmployeeNoUserNameUserName -
(Opcional, pero recomendado) Selecciona la pestaña Resultados y haz clic en Validar.
-
Ve a la pestaña Tablas del App Workbench.
-
En Tablas, encuentra la tabla
Empleado, luego haz clic en su ícono de Abrir registro. -
Haz clic en Eventos. Se abre el popup de Eventos de Almacenamiento de Datos (Empleado).
-
Haz clic en el ícono de Abrir registro para el evento Provisionar Usuario.
-
En Acciones, haz clic en el ícono de Abrir registro para la regla Realm_User_Create (Insertar Empleado).
-
Bajo Bindings, haz clic en + Binding.
-
Establece el siguiente enlace:
Columna de Origen Columna de Regla EmployeeIDEmployeeID -
Haz clic en el ícono , luego cierra el popup de Action/Bindings/SQL.
Regla 2: Actualizar el registro del empleado
Después de que se crea el usuario de App Builder mediante la Regla 1, esta regla escribe el ID del nuevo usuario de vuelta en el campo MyUserID en la tabla Employee. Esto vincula el registro del empleado a su cuenta de App Builder para que las reglas subsiguientes puedan hacer referencia a su ID.
-
En la página Event/Validations/Actions, bajo Actions, haz clic en + Rule & Register.
-
Establece los siguientes valores:
-
Name:
Employee (Update MyUserID to EmployeeID) -
Purpose: CRUD
-
Action: Update
-
Target Layer: Data Layer
-
Target:
Employee
-
-
Haz clic en Create.
-
Selecciona la pestaña Columns.
-
Haz clic en + Column.
-
En el cuadro Column or Expression, ingresa
E.EmployeeID, luego establece estos valores restantes:-
Alias:
MyUserID -
Target:
MyUserID -
TargetType: Target
-
-
Haz clic en Save, luego cierra el popup de Add Column.
-
(Opcional, pero recomendado) Selecciona la pestaña Results y haz clic en Validate.
-
Haz clic en < Event para regresar a la página de Provision User (Event/Validations/Actions).
-
Bajo Actions, haz clic en para desregistrar la regla que se acaba de agregar y registrar (Employee (Update MyUserID to EmployeeID)), luego haz clic en Proceed.
-
Bajo Actions, haz clic en el ícono Open record para la acción restante Realm_User_Create (Insert Employee). Se abre el popup de Action/Bindings/SQL.
-
Haz clic en Success. Se abre el popup de Success Handlers.
-
Haz clic en Create. Se abre el popup de Action.
-
Establece los siguientes valores:
-
Type: Rule
-
Rule: Selecciona Employee (Update MyUserID to EmployeeID)
-
-
Haz clic en Guardar.
-
En Vínculos, haz clic en + Vínculo.
-
Establece el siguiente vínculo:
Columna de Origen Columna de Regla EmployeeIDEmployeeID -
Cierra los popups para regresar a la página de Evento/Validaciones/Acciones para Provisionar Usuario.
Consejo
El número 1 junto al ícono indica la presencia de un manejador de éxito para esta acción.
Regla 3: Establecer la contraseña del usuario
Esta regla establece la contraseña inicial del nuevo usuario utilizando el valor predeterminado almacenado en la tabla Parameter.
-
Ve a la pestaña Reglas del App Workbench.
-
Haz clic en + Regla.
-
Establece los valores de la siguiente manera:
-
Nombre:
User_SetPassword (Actualizar Contraseña Predeterminada) -
Propósito: Selecciona XPCRUD
-
Acción: Actualizar
-
Fuente de Datos de Origen: Selecciona la aplicación de aprovisionamiento de usuarios que has creado. En este tutorial, es
Aplicación de Aprovisionamiento de Usuarios. -
Fuente de Datos de Destino:
Vinyl (Sellado) -
Capa de Destino: Capa de Lógica
-
Destino:
User_SetPassword
-
-
Haz clic en Crear.
-
Selecciona la pestaña Tablas.
-
En la pestaña Fuente de Datos Actual, haz clic en + Tabla, luego agrega las tablas
EmployeeyParameter. -
En la tabla Employee, selecciona las columnas EmployeeID y MyUserID.
-
En la tabla Parameter, selecciona la columna DefaultPassword.
-
Selecciona la pestaña Columnas y establece los campos de la siguiente manera:
Columna o Expresión Alias Destino PK E.MyUserIDUserID (PK)P.DefaultPasswordPassword -
(Opcional) Haz clic en el ícono Abrir registro para la columna
E.MyUserID. En el popup de Columna, confirma que el Tipo de Destino es Vincular. -
(Opcional) Haz clic en el ícono Abrir registro para la columna
P.DefaultPassword. En el popup de Columna, confirma que el Tipo de Destino es Destino. -
Selecciona la pestaña Where, luego haz clic en + Where Clause.
-
En Left Expression, ingresa
E.MyUserID. -
Abre el menú Operator, luego selecciona IS NOT NULL.
-
Haz clic en Save, luego cierra el popup de Where.
-
Ve a la pestaña Rules del App Workbench.
-
En App Data Sources, selecciona All Events.
-
En All Events, haz clic en Provision User en la columna Event.
-
Para la entrada de Provision User, haz clic en Rule Event Detail.
-
En Actions, haz clic en el ícono Success handlers para la regla Realm_User_Create (Insert Employee). Se abre el popup de Success Handlers.
-
Haz clic en Create. Se abre el popup de Action.
-
Establece los siguientes valores:
-
Type: Rule
-
Rule: Selecciona User_SetPassword (Update Default Password)
-
-
Haz clic en Save.
-
En Bindings, haz clic en + Binding.
-
Establece el siguiente binding:
Source Column Rule Column EmployeeIDEmployeeID -
Cierra los popups para regresar a la página de Event/Validations/Actions para Provision User.
-
Actualiza la página y observa que el número de success handlers para la regla Realm_User_Create (Insert Employee) ahora es 2.
Rule 4: Grant group access
Esta regla otorga al nuevo usuario acceso al grupo App Builder asociado con su departamento, utilizando el valor MyGroupID establecido en la tabla Department.
-
Ve a la pestaña Rules del App Workbench.
-
Haz clic en + Rule.
-
Establece los valores de la siguiente manera:
-
Name:
Realm_UserGroup (Cram Department) -
Purpose: Selecciona XPCRUD
-
Action: Cram
-
Source Data Source: Selecciona la aplicación de aprovisionamiento de usuarios que has creado. En este tutorial, es
User Provisioning App. -
Target Data Source:
Vinyl (Sealed) -
Target Layer: Logic Layer
-
Target:
Realm_UserGroup
-
-
Haz clic en Create.
-
Selecciona la pestaña Tables.
-
En la pestaña Current Data Source, haz clic en + Table, luego agrega las tablas
EmployeeyDepartment.Consejo
App Builder crea automáticamente una relación de clave foránea entre las columnas
DepartmentIDde las dos tablas. -
En la tabla Employee, selecciona las columnas EmployeeID y MyUserID.
-
En la tabla Department, selecciona la columna MyGroupID.
-
Selecciona la pestaña Where, luego haz clic en + Where Clause.
-
En Left Expression, ingresa
D.MyGroupID. -
Abre el menú Operator, luego selecciona IS NOT NULL.
-
Haz clic en Save, luego cierra el popup de Where.
-
Haz clic en + Where Clause.
-
En Left Expression, ingresa
E.MyUserID. -
Abre el menú Operator, luego selecciona IS NOT NULL.
-
Haz clic en Save, luego cierra el popup de Where.
-
Selecciona la pestaña Columns, y establece los campos de la siguiente manera (por ejemplo):
Column or Expression Alias Target PK E.EmployeeIDE.MyUserIDUserID (PK)D.MyGroupIDGroupID (PK) -
Selecciona More > Edge Case. Se abre el popup de Edge Case Settings.
-
Habilita la opción Select Distinct, luego cierra el popup.
-
Ve a la pestaña Rules del App Workbench.
-
En App Data Sources, selecciona All Events.
-
En All Events, haz clic en Provision User en la columna Event.
-
Para la entrada Provision User, haz clic en Rule Event Detail.
-
En Actions, haz clic en el ícono Open record para la regla Realm_User_Create (Insert Employee).
-
Haz clic en Success. Se abre el popup de Success Handlers.
-
Haz clic en Create. Se abre el popup de Action.
-
Establece los siguientes valores:
-
Type: Rule
-
Rule: Selecciona Realm_UserGroup (Cram Department)
-
-
Haz clic en Save.
-
En Bindings, haz clic en + Binding.
-
Establece el siguiente binding:
Source Column Rule Column EmployeeIDEmployeeID -
Cierra los popups para regresar a la página de Evento/Validaciones/Acciones para Provisionar Usuario.
Regla 5: Registrar la acción de aprovisionamiento
Esta regla registra quién activó el aprovisionamiento y cuándo, escribiendo la marca de tiempo actual y el nombre del usuario conectado en los campos ProvisionedOn y ProvisionedBy en la tabla Employee.
-
Ve a la pestaña Reglas del App Workbench.
-
Haz clic en + Regla.
-
Establece los siguientes valores:
-
Nombre:
Employee (Actualizar ProvisionedOn/By) -
Propósito: CRUD
-
Acción: Actualizar
-
Capa de Destino: Capa de Datos
-
Destino:
Employee
-
-
Haz clic en Crear.
-
Selecciona la pestaña Columnas.
-
Haz clic en + Columna.
-
En el cuadro Columna o Expresión, ingresa
now(), luego establece estos valores restantes:-
Destino:
ProvisionedOn -
Tipo de Destino: Destino
-
-
Haz clic en Guardar, luego cierra el popup Agregar Columna.
-
Haz clic en + Columna.
-
En el cuadro Columna o Expresión, ingresa
who(), luego establece estos valores restantes:-
Destino:
ProvisionedBy -
Tipo de Destino: Destino
-
-
Haz clic en Guardar, luego cierra el popup Agregar Columna.
-
(Opcional, pero recomendado) Selecciona la pestaña Resultados, luego haz clic en Validar.
-
Ve a la pestaña Reglas del App Workbench.
-
Bajo Fuentes de Datos de la Aplicación, selecciona Todos los Eventos.
-
Bajo Todos los Eventos, haz clic en Provisionar Usuario en la columna Evento.
-
Para la entrada Provisionar Usuario, haz clic en Detalle del Evento de Regla.
-
Bajo Acciones, haz clic en el ícono Controladores de Éxito para la regla Realm_User_Create (Insertar Empleado). Se abre el popup Controladores de Éxito.
-
Haz clic en Crear. Se abre el popup Acción.
-
Establece los siguientes valores:
-
Tipo: Regla
-
Regla: Selecciona Employee (Actualizar ProvisionedOn/By)
-
-
Haz clic en Guardar.
-
Bajo Vínculos, haz clic en + Vínculo.
-
Establece el siguiente vínculo:
Columna de Origen Columna de Regla EmployeeIDEmployeeID -
Cierra los popups para regresar a la página de Evento/Validaciones/Acciones para Provisionar Usuario.
Paso 5: Crear la interfaz de usuario
-
Navega a Páginas y abre tu página de
Empleadopara editar. -
Agrega un nuevo control de Botón con la etiqueta
Provisionar Usuario. -
En las propiedades del botón, navega a la pestaña de Eventos y selecciona el evento
Provisionar Usuario. -
Para asegurar que la interfaz de usuario se actualice correctamente, en la pestaña de Comportamiento, establece el Ámbito de Actualización en Fila.
-
Para ocultar el botón para los usuarios ya provisionados, ve a la pestaña de Visibilidad y agrega una condición:
ProvisionadoEn NO ES NULO.
Próximos pasos
La lógica central de aprovisionamiento ahora está completa. Puedes mejorar este proceso aún más al:
-
Agregar un evento de flujo de trabajo para enviar por correo electrónico a los nuevos usuarios sus credenciales de inicio de sesión (ver Correo Electrónico en Notificaciones).
-
Usar otros objetos de datos públicos para requerir un cambio de contraseña en el primer inicio de sesión (ver Objeto de datos públicos User_LocalAuthentication).
-
Ampliar el conjunto de reglas para manejar la desprovisión de usuarios (ver Objeto de datos públicos Realm_UserGroup).