Procedimiento de sincronización

<< Clic para mostrar Tabla de Contenidos >>

Navegación:  Bizagi Studio > Definición de Seguridad > Seguridad del Portal de Trabajo > Sincronización de usuarios > Sincronizar usuarios con SCIM >

Procedimiento de sincronización

Sincronizando usuarios

Para sincronizar usuarios desde un sistema externo usted debe seguir los siguientes pasos:

 

1.Registrar la aplicación externa y crear las llaves OAuth 2.0 en el Portal de Trabajo de su ambiente.

2.Obtenga el token que permite usar los servicios SCIM.

3.Cree la estructura JSON necesario con la información del usuario a ser sincronizado.

4.Invoque el servicio.

 

El siguiente procedimiento usa POSTMAN como cliente. Sin embargo usted puede usar cualquier cliente usando un framework diferente, siempre y cuando sea compatible con servicios RESTful usando el protocolo OAuth 2.0.

 

Procedimiento

1. Registre la aplicación OAuth

Vaya al portal de Trabajo, dentro de la sección de Seguridad, en el menú de Admin, seleccione Aplicaciones OAuth2, para dar acceso a una aplicación externa:

 

SCIM_3

 

Esta opción enumera los servicios a los que acceden los dispositivos Bizagi y le permite incluir aplicaciones adicionales que representan el acceso otorgado a los servicios al proporcionar las claves de acceso adecuadas.

Haga clic en la opción para agregar un nuevo registro a esta tabla:

 

SCIM_4

 

La configuración debe ser como se muestra a continuación:

 

SCIM_5

 

Grant type: Client credentials

Allowed Scope: API y USER SYNC

User Name: admon

Token lifetime: Esta duración depende de las necesidades y políticas de su organización.

 

Guarde estas llaves en un sitio seguro:

 

SCIM_6

 

2. Autenticarse con OAuth

Una vez copie el Client ID y el Client Secret, usted debe establecer una comunicación autorizada con su cliente.

 

Note que Bizagi espera las credenciales usando una cadena de texto en Base64.

 

2.1 Para codificar las credenciales en una sola cadena de texto:

Copie el Client ID y adjunte el símbolo dos puntos (:),  y luego agregue el Client Secret.

Este es el formato, sin tener en cuenta los caracteres [ ]:

[Client Id]:[Client Secret]

Codifique esta cadena en base64. El resultado es una cadena de texto que contiene las credenciales codificadas.

 

2.2 Configure una invocación RESTful POST en su cliente.

Para hacer eso, asegurese que su cliente tenga la siguiente configuración:

 

URL: [Project_URL]/oauth2/server/token

HTTP Method: POST

Authorization: No Auth

Headers:

 Content-type: application/x-www-form-urlencoded

 Authorization: Incluya la palabra Basic, agregue un espacio en blaco y luego las credenciales codificadas

 Este es el formato, sin tener en cuenta los caracteres [ ]:

 Basic [credenciales codificadas]

Body: Envíe la siguiente información en el cuerpo grant_type=client_credentials&scope=api

 

SCIM_7

SCIM_8

 

La respuesta a esta invocación contiene el token de acceso:

 

{
"access_token": "aebda3f1adcab6c90653bd1899613e880dc8002d",
"token_type": "bearer",
"expires_in": 1200,
"scope": "api usersync openid",
"http_status_code": 200
}

 

3. Crear una estructura JSON necesaria para SCIM

SCIM es un estándar en el que la información del usuario se define mediante un esquema. Debe crear esta estructura en el mensaje que se enviará con la información de un usuario que se está sincronizando. La estructura depende de si está creando un nuevo usuario, reemplazando un usuario, actualizando un parámetro o eliminando (desactivando en Bizagi) un usuario. La estructura para esas operaciones se define de la siguiente manera:

 

Creando un nuevo usuario / reemplazando un usuario

La estructura del mensaje JSON que debe enviarse en el cuerpo de la invocación es la siguiente. En [Nombre de variable] encontrará el nombre de las variables que deben enviarse desde su sistema externo:

 

{
    "schemas":["urn:ietf:params:scim:schemas:core:2.0:User"],
    "userName":"[userName]@[domain]",
    "active": [activeUser],
    "name":{
      "familyName":"[FamilyName]",

  "middleName": "[MiddleName]",
      "givenName":"[GivenName]"
    },
    "emails": [
      {
        "value": "[email]",
        "type": "[emailType]",
        "primary": [primaryEmail]
      }
    ],
    "phoneNumbers":[
          {
        "value": "[phoneNumber]",
        "type": "[phoneType]",
        "primary": [primaryPhone]
      }
      ],
    "urn:ietf:params:scim:schemas:extension:bizagi:2.0:UserProperties":{
      "DelegateEnabled": [DelegateEnabled],
      "enabledForAssignation": [AssignationEnabled],
      "createdCasesSkipAssigRules": [SkipAssignations]
      "[NewUserProperty]": [PropertyValue]
    }
}

 

Donde:

Variable

Description

userName

El nombre de usuario establecido en Bizagi. Este es un campo obligatorio. El nombre de usuario @ dominio no puede exceder los 25 caracteres.

domain

El dominio establecido en Bizagi. Este es un campo obligatorio. El nombre de usuario @ dominio no puede exceder los 25 caracteres.

activeUser

Valor booleano que define si el usuario está activo en Bizagi y puede acceder al Portal de Trabajo.

FamilyName

Apellido del usuario. Esto se concatena con GivenName y MiddleName. La concatenación se envía como el nombre del usuario en este formato "givenName_MiddleName_FamilyName". Este es un campo obligatorio si los demás están vacíos.

MiddleName

Segundo nombre del usuario. Esto se concatena con GivenName y FamilyName y se envía como el nombre completo del usuario en este formato "givenName_MiddleName_FamilyName". Este es un campo obligatorio si los demás están vacíos.

GivenName

Nombre del usuario. Esto se concatena con MiddleName y FamilyName y se envía como el nombre completo del usuario en este formato "givenName_MiddleName_FamilyName". Este es un campo obligatorio si los demás están vacíos.

email

Dirección de correo electrónico del usuario en Bizagi.

emailType

Solo el tipo de Work se almacena en Bizagi. El tipo de correo electrónico no se almacena en el WFuser, pero este parámetro debe tener un valor en el JSON.

primaryEmail

Valor booleano. Debe ser siempre true si desea almacenar el correo electrónico en Bizagi.

phoneNumber

El número de teléfono móvil almacenado en Bizagi.

phoneType

Solo el tipo de work se almacena en Bizagi. El tipo de teléfono no está almacenado en el WFuser, pero este parámetro debe tener un valor en el JSON.

primaryPhone

Valor booleano. Debe ser siempre true si desea almacenar el correo electrónico en Bizagi.

DelegateEnabled

Valor booleano que define si el usuario va a tener un usuario delegado.

AssignationEnabled

Valor booleano que define si el administrador puede seleccionar al usuario en las asignaciones.

SkippAssignations

Valor booleano que define si los casos creados por el usuario omiten las asignaciones.

NewUserProperty

Si tiene nuevas propiedades de usuario, este es el nombre de la nueva propiedad.

PropertyValue

Este es el valor de la nueva propiedad de usuario. Tenga en cuenta el tipo (por ejemplo, cadena, número entero, etc.). No puede sincronizar propiedades configuradas como relaciones con otras entidades.

 

Actualizar un Parámetro

Bizagi actualiza los parámetros utilizando el método HTTP PATCH. Este método permite tres operaciones:

 

Reemplazar: esta operación cambia el valor de xpath.

Agregar: Esta operación agrega un nuevo parámetro en el esquema. En Bizagi no es posible agregar nuevos parámetros, por lo que invocar este método reemplaza el valor de XPath si el parámetro existe.

Eliminar: Esto elimina el parámetro en el esquema. Sin embargo, eliminar el parámetro no es posible en Bizagi.

 

En [Nombre de variable] encontrará el nombre de las variables que deben enviarse desde su sistema externo, excepto el atributo de esquemas: Para cada operación, debe enviar la siguiente estructura JSON:

 

{
    "schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations":[
 
 
      {
        "op": "[OperationType]",
        "path": "[Xpath]",
        "value": "[Value]"
      }
    ]
}

 

Donde:

 

Variable

Description

OperationType

Establezca el tipo de operación en uno de estos valores: reemplazar (replace), agregar (add) o eliminar (remove).

Xpath

El XPath del atributo que va a modificar. El XPath se basa en la estructura del esquema, por ejemplo, name.middleName o phoneNumbers.value.

Value

Valor del parámetro que se modifica. Este parámetro no es necesario si lo va a eliminar.

 

4. Invocar el servicio

La siguiente sección muestra ejemplos de la invocación de las posibles operaciones:

 

Create: Service to create one user.

POST [Project_URL]/scim/v2/Users

Read: Get information of a user.

GET [Project_URL]/scim/v2/Users/{id}

Update: Update the information of a user.

PATCH [Project_URL]/scim/v2/Users/{id}

Replace:  This service is used to replace all the information of a user.

PUT [Project_URL]/scim/v2/Users/{id}

Delete: This service is used to deactivate (logically) a user

DEL [Project_URL]/scim/v2/Users/{id}