Aplicación de aprovisionamiento de usuarios en Jitterbit App Builder
Introducción
En esta página se muestra cómo crear una aplicación de aprovisionamiento de usuarios que los usuarios finales puedan usar para aprovisionar acceso de aplicaciones de manera semiautomatizada, sin necesidad de acceder al IDE. Este es un enfoque alternativo para gestionar el acceso de usuarios cuando no se dispone de un proveedor de identidad (como Okta o Azure).
El proceso implica crear proveedores de seguridad, configurar realms, preparar el modelo de datos, crear una secuencia de reglas de negocio para manejar la lógica y crear una interfaz de usuario simple para que los usuarios finales disparen 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 empezar, crea una aplicación dedicada para aprovisionar usuarios. La que se utiliza en este tutorial se llama simplemente User Provisioning App y comienza con las siguientes tablas:
| Tabla | Columnas |
|---|---|
Employee |
EmployeeID (ID único, PK), FullName (Cadena), Email (Cadena), EmployeeNo (Cadena) |
Department |
DepartmentID (ID único, PK), Name (Cadena) |
Parameter |
ParameterID (ID único, PK) |
Se añaden columnas adicionales a estas tablas durante los pasos siguientes.
Paso 1: Configuración inicial
Primero, necesitas un proveedor de seguridad para manejar el aprovisionamiento y un lugar para almacenar sus detalles de configuración.
Crear un proveedor de seguridad
Para crear un proveedor de seguridad, sigue estos pasos:
-
Selecciona IDE > Security Providers.
-
Haz clic en + Security Provider.
-
Configura el proveedor con estos ajustes:
-
Name:
User ProvisioningNota
No confundir con la aplicación de aprovisionamiento en sí, que se llama
User Provisioning App. -
Type: User Provisioning
-
Enabled: Marcado.
-
User Provisioning: Marcado.
-
-
Haz clic en Save.
-
Copia y guarda la clave Identifier 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 y luego ve a la pestaña Tables del App Workbench.
-
En Tables, encuentra la tabla Parameter y haz clic en su icono Open record.
-
Añade las siguientes dos columnas:
-
MyProviderID(Tipo: ID único) -
DefaultPassword(Tipo: Cadena)
-
-
Ve a la pestaña Pages del App Workbench.
-
En Pages, encuentra la página Parameter y haz clic en su icono .
-
Añade nuevos controles (tipo de control Text) a la página para las columnas
MyProviderIDyDefaultPassword. -
Ejecuta la aplicación y selecciona Configuration > Parameters. Se abre la ventana emergente Parameters.
-
Haz clic en Edit.
-
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 Save y cierra la ventana emergente Parameter.
Paso 2: Configurar el control de acceso
Con el proveedor creado, ahora puedes configurar los grupos de usuarios y realms que rigen el acceso. Para hacerlo, sigue estos pasos:
-
Selecciona IDE > User Management.
-
Selecciona la pestaña Groups.
-
Haz clic en + Group. Se abre la ventana emergente Group.
-
Establece los siguientes valores:
-
Nombre:
Demo General User- Descripción:
Permisos de usuario general para la aplicación de demostración.
- Descripción:
-
Haz clic en Guardar, luego cierra la ventana emergente Group.
-
En Groups, haz clic en Manage Privileges para el grupo nuevo.
-
En Privileges, haz clic en Create. Se abre la ventana emergente Privilege.
-
Establece los siguientes valores:
-
Type: Selecciona Application.
-
Application: 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 en la que inician sesión los usuarios finales. Puede o no ser la aplicación de aprovisionamiento en sí. En este tutorial, se creó una aplicación de aprovisionamiento dedicada para administrar el acceso a una o más aplicaciones, por lo que debes seleccionar la aplicación de destino aquí, no la aplicación de aprovisionamiento.
-
-
Haz clic en Guardar, luego cierra el panel Privileges/Roles.
-
En Roles, asigna los roles apropiados para los usuarios generales.
-
Selecciona la pestaña Realms.
-
Haz clic en + Realm.
-
Ingresa
Demo Realmcomo nombre, luego haz clic en el icono . -
En la pestaña Applications, haz clic en Select para la aplicación a la que accederán los usuarios finales.
-
Selecciona la pestaña Groups, luego haz clic en Select para el grupo
Demo General Userque acabas de crear. -
Selecciona la pestaña Providers, luego haz clic en Select para el proveedor de seguridad
User Provisioningcreado anteriormente.
Paso 3: Prepara el modelo de datos
Ahora debes actualizar tus tablas Department y Employee para almacenar información de seguridad y estado de aprovisionamiento.
Vincula departamentos a grupos de seguridad
Sigue estos pasos:
-
Con tu aplicación ejecutándose, ve a la pestaña Data Sources del App Workbench.
-
Haz clic en + Source.
-
Selecciona Link to existing source, luego haz clic en Next.
-
Busca y selecciona App Builder (Sealed) (Default), luego haz clic en Link 1 Source y Done. Esto te da acceso a los objetos de datos públicos necesarios para el aprovisionamiento.
-
Ve a la pestaña Tables del App Workbench.
-
En Tables, busca la tabla
Department, luego haz clic en su icono Open record. -
Agrega una columna nueva llamada
MyGroupID(Type: Unique ID). -
Ve a la pestaña Pages del App Workbench, luego abre tu página
Departmentpara editarla. -
Agrega el control
MyGroupIDa tu página. Establece su Control Type en List, luego haz clic en Next. -
En la página siguiente, establece estos valores, luego haz clic en Next:
-
Source:
Realm_Group -
Key (Column):
GroupId (PK) -
Title (Column):
Name
-
-
Haz clic en Finish.
-
Ve a la pestaña Pages del App Workbench, luego abre tu página
Departmentpara editarla. -
Selecciona la pestaña Update Methods.
-
Asegúrate de que la opción Edit Method sea Standard.
-
Ejecuta la aplicación, navega a la página Departments y asigna el grupo
Demo General Usera uno de tus departamentos.
Actualiza la tabla Employee
Sigue estos pasos:
-
Ve a la pestaña Tables del App Workbench.
-
En Tables, busca la tabla
Employee, luego haz clic en su icono Open record. -
Agrega las siguientes columnas:
-
MyUserID(Type: Unique ID): Almacena el ID de App Builder del usuario después de su creación. -
ProvisionedOn(Type: DateTime): Una marca de tiempo de cuándo ocurrió el aprovisionamiento. -
ProvisionedBy(Type: String, length: 150): El nombre del usuario que realizó el aprovisionamiento.
-
Paso 4: Construye la lógica de aprovisionamiento
El núcleo de la aplicación es un evento de nivel de tabla en la tabla Employee que orquesta una secuencia de reglas. Estas reglas se ejecutan una tras otra usando controladores de éxito.
Regla 1: Crear el usuario
Esta regla crea el registro de usuario, pero solo si uno no existe ya. Sigue estos pasos:
-
Ve a la pestaña Tables del App Workbench.
-
En Tables, busca la tabla
Employee, luego haz clic en su icono Open record. -
Haz clic en Events. Se abre la ventana emergente Data Storage Events (Employee).
-
Haz clic en + Table Event.
-
En Event Information, establece el Name como
Provision User, luego haz clic en Save. -
En Actions, haz clic en + Rule & Register.
-
En la página Rule Builder, establece los siguientes valores:
-
Name:
Realm_User_Create (Insert Employee) -
Purpose: XP CRUD
-
Action: Insert
-
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) -
Options: Selecciona Logic Layer.
-
Target:
Realm_User_Create
-
-
Haz clic en Create.
-
Con la pestaña Tables seleccionada, haz clic en + Table.
-
En la pestaña Current Data Source, agrega la tabla
Employee. -
Selecciona la pestaña Where.
-
Haz clic en + Where Clause.
-
En Left Expression, ingresa
E.MyUserID. -
Abre el menú Operator, luego selecciona IS NULL.
-
Haz clic en Save, luego cierra la ventana emergente Where.
-
Selecciona la pestaña Tables, luego selecciona
EmployeeIDy las columnas adicionales que necesita la regla para su acción (por ejemplo, el nombre y la dirección de correo electrónico del usuario aprovisionado). -
Selecciona la pestaña Columns y establece los campos como se indica a continuación:
Column or Expression Alias Target PK E.EmployeeIDUserId (PK)E.FullNameFullNameE.EmailEmailAddressE.FullNameDisplayNameDisplayNameE.EmployeeNoUserNameUserName -
(Opcional, pero recomendado) Selecciona la pestaña Results y haz clic en Validate.
-
Ve a la pestaña Tables del App Workbench.
-
En Tables, busca la tabla
Employee, luego haz clic en su icono Open record. -
Haz clic en Events. Se abre la ventana emergente Data Storage Events (Employee).
-
Haz clic en el icono Open record del evento Provision User.
-
En Actions, haz clic en el icono Open record de la regla Realm_User_Create (Insert Employee).
-
En Bindings, haz clic en + Binding.
-
Establece el siguiente vinculación:
Source Column Rule Column EmployeeIDEmployeeID -
Haz clic en el icono , luego cierra la ventana emergente Action/Bindings/SQL.
Rule 2: Actualiza el registro del empleado
Después de que el usuario de App Builder se crea mediante la Regla 1, esta regla escribe el ID del nuevo usuario nuevamente en el campo MyUserID de la tabla Employee. Esto vincula el registro del empleado a su cuenta de App Builder para que las reglas posteriores puedan hacer referencia a su ID.
-
En la página Event/Validations/Actions, en 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 la ventana emergente 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 Provision User (Event/Validations/Actions).
-
En Actions, haz clic en para desregistrar la regla que acabas de agregar y registrar (Employee (Update MyUserID to EmployeeID)), luego haz clic en Proceed.
-
En Actions, haz clic en el icono Open record de la acción Realm_User_Create (Insert Employee) restante. Se abre la ventana emergente Action/Bindings/SQL.
-
Haz clic en Success. Se abre la ventana emergente de Success Handlers.
-
Haz clic en Create. Se abre la ventana emergente de Action.
-
Establece los siguientes valores:
-
Type: Rule
-
Rule: Selecciona Employee (Update MyUserID to EmployeeID)
-
-
Haz clic en Save.
-
En Bindings, haz clic en + Binding.
-
Establece el siguiente binding:
Source Column Rule Column EmployeeIDEmployeeID -
Cierra las ventanas emergentes para volver a la página Event/Validations/Actions de Provision User.
Consejo
El número 1 junto al icono indica la presencia de un success handler para esta acción.
Rule 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 Rules de App Workbench.
-
Haz clic en + Rule.
-
Establece los valores de la siguiente manera:
-
Name:
User_SetPassword (Update Default Password) -
Purpose: Selecciona XPCRUD
-
Action: Update
-
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:
User_SetPassword
-
-
Haz clic en Create.
-
Selecciona la pestaña Tables.
-
En la pestaña Current Data Source, haz clic en + Table y añade 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 Columns y establece los campos de la siguiente manera:
Column or Expression Alias Target PK E.MyUserIDUserID (PK)P.DefaultPasswordPassword -
(Opcional) Haz clic en el icono Open record de la columna
E.MyUserID. En la ventana emergente Column, confirma que Target Type es Bind. -
(Opcional) Haz clic en el icono Open record de la columna
P.DefaultPassword. En la ventana emergente Column, confirma que Target Type es Target. -
Selecciona la pestaña Where y haz clic en + Where Clause.
-
En Left Expression, ingresa
E.MyUserID. -
Abre el menú Operator y selecciona IS NOT NULL.
-
Haz clic en Save y cierra la ventana emergente Where.
-
Ve a la pestaña Rules de 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 icono Success handlers de la regla Realm_User_Create (Insert Employee). Se abre la ventana emergente de Success Handlers.
-
Haz clic en Create. Se abre la ventana emergente 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 las ventanas emergentes para volver a la página Event/Validations/Actions de Provision User.
-
Actualiza la página y observa que el número de success handlers de la regla Realm_User_Create (Insert Employee) es ahora 2.
Rule 4: Otorgar acceso a grupos
Esta regla otorga al nuevo usuario acceso al grupo de App Builder asociado con su departamento, utilizando el valor MyGroupID establecido en la tabla Department.
-
Ve a la pestaña Rules de App Workbench.
-
Haz clic en + Rule.
-
Establece los valores de la siguiente manera:
-
Name:
Realm_UserGroup (Cram Department) -
Purpose: Selecciona XPCRUD
-
Action: Cram
-
-
Fuente de Datos de Origen: Selecciona la aplicación de aprovisionamiento de usuarios que creaste. En este tutorial, es
User Provisioning App. -
Fuente de Datos de Destino:
Vinyl (Sealed) -
Capa de Destino: Logic Layer
-
Destino:
Realm_UserGroup -
Haz clic en Create.
-
Selecciona la pestaña Tables.
-
En la pestaña Current Data Source, haz clic en + Table y luego agrega las tablas
EmployeeyDepartment.Consejo
App Builder crea automáticamente una relación de clave externa 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 y luego haz clic en + Where Clause.
-
En Left Expression, ingresa
D.MyGroupID. -
Abre el menú Operator y luego selecciona IS NOT NULL.
-
Haz clic en Save y luego cierra la ventana emergente Where.
-
Haz clic en + Where Clause.
-
En Left Expression, ingresa
E.MyUserID. -
Abre el menú Operator y luego selecciona IS NOT NULL.
-
Haz clic en Save y luego cierra la ventana emergente Where.
-
Selecciona la pestaña Columns y configura 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 la ventana emergente Edge Case Settings.
-
Habilita la opción Select Distinct y luego cierra la ventana emergente.
-
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 icono Open record para la regla Realm_User_Create (Insert Employee).
-
Haz clic en Success. Se abre la ventana emergente Success Handlers.
-
Haz clic en Create. Se abre la ventana emergente 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 enlace:
Source Column Rule Column EmployeeIDEmployeeID -
Cierra las ventanas emergentes para volver a la página Event/Validations/Actions para Provision User.
Rule 5: Registra la acción de aprovisionamiento
Esta regla registra quién activó el aprovisionamiento y cuándo, al escribir la marca de tiempo actual y el nombre del usuario conectado en los campos ProvisionedOn y ProvisionedBy de la tabla Employee.
-
Ve a la pestaña Rules del App Workbench.
-
Haz clic en + Rule.
-
Establece los siguientes valores:
-
Name:
Employee (Update ProvisionedOn/By) -
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
now()y luego establece estos valores restantes:-
Target:
ProvisionedOn -
TargetType: Target
-
-
Haz clic en Save y luego cierra la ventana emergente Add Column.
-
Haz clic en + Column.
-
En el cuadro Column or Expression, ingresa
who()y luego establece estos valores restantes:-
Target:
ProvisionedBy -
TargetType: Target
-
-
Haz clic en Save y luego cierra la ventana emergente Add Column.
-
(Opcional, pero recomendado) Selecciona la pestaña Results y luego haz clic en Validate.
-
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 icono Success handlers de la regla Realm_User_Create (Insert Employee). Se abre la ventana emergente Success Handlers.
-
Haz clic en Create. Se abre la ventana emergente Action.
-
Establece los siguientes valores:
-
Type: Rule
-
Rule: Selecciona Employee (Update ProvisionedOn/By)
-
-
Haz clic en Save.
-
En Bindings, haz clic en + Binding.
-
Establece el siguiente binding:
Source Column Rule Column EmployeeIDEmployeeID -
Cierra las ventanas emergentes para regresar a la página Event/Validations/Actions de Provision User.
Paso 5: Crear la interfaz de usuario
-
Navega a Pages y abre tu página
Employeepara editarla. -
Agrega un nuevo control Button con la etiqueta
Provision User. -
En las propiedades del botón, navega a la pestaña Events y selecciona el evento
Provision User. -
Para asegurar que la interfaz se actualice correctamente, en la pestaña Behavior, establece Refresh Scope en Row.
-
Para ocultar el botón para usuarios ya aprovisionados, ve a la pestaña Visibility y agrega una condición:
ProvisionedOn IS NOT NULL.
Próximos pasos
La lógica de aprovisionamiento principal ya está completa. Puedes mejorar este proceso aún más mediante:
-
La adición de un evento de flujo de trabajo para enviar por correo a los nuevos usuarios sus credenciales de inicio de sesión (consulta Email en Notifications).
-
El uso de otros objetos de datos públicos para requerir un cambio de contraseña en el primer inicio de sesión (consulta User_LocalAuthentication public data object).
-
La expansión del conjunto de reglas para manejar el desaprovisionamiento de usuarios (consulta Realm_UserGroup public data object).