# Aprovisionamiento de grupos y usuarios de SCIM con Microsoft Entra ID

El sistema de gestión de identidades multidominio (SCIM) establece una comunicación estandarizada entre Modyo y Microsoft Azure para sincronizar automáticamente datos de usuarios y grupos. Esto te permite:

  • Crear usuarios en Microsoft Azure y aprovisionarlos automáticamente en Modyo.
  • Actualizar datos de usuario en Microsoft Azure y reflejar los cambios en Modyo.
  • Eliminar usuarios en Microsoft Azure y desaprovisionarlos en Modyo.

Esta integración de grupos y usuarios entre Modyo y Microsoft Azure Entra ID con la API SCIM de Modyo, simplifica la gestión de usuarios en diferentes sistemas y reduce errores, favoreciendo una administración eficiente.

Atención

La sincronización es unidireccional, lo que significa que los datos modificados en Modyo no afectarán los datos del usuario en Azure. Además, cualquier cambio realizado en Azure puede sobrescribir las modificaciones realizadas en Modyo.

# Paso 1 Crea tu aplicación en Azure Entra ID

  1. Accede al panel de administración de Azure Entra ID
  2. En el menú lateral selecciona Enterprise Application
  3. Selecciona la opción Crea tu propia aplicación en la parte superior de la galería de Azure
  4. Nombra tu aplicación y selecciona la opción Integrar cualquier otra aplicación que no se encuentre en la página como objetivo de la aplicación
  5. Haz click en Crear

# Paso 2 Aprovisionamiento

  1. Accede a tu aplicación en Azure
  2. En el menú lateral selecciona Aprovisamiento
  3. Da click en Introducción
  4. Selecciona aprovisionamiento Automático
  5. En las credenciales de administración, agrega lo siguiente:
    • URL de inquilino: El URL de tu servidor de web compatible con SCIM, por ejemplo: https://tudominio.modyo.cloud/api/admin/scim
    • Secret Token: El token de acceso del dueño de la cuenta o de un usuario administrativo de Modyo con el rol Full admin, asignado directamente o a través de un grupo. Con otro rol, Modyo rechaza las solicitudes sobre usuarios con un error 401. Puedes encontrar información detallada de tokens en la sección de API de administración (opens new window)
  6. En la sección de Configuración puedes personalizar el envío de notificaciones y seleccionar el umbral de eliminación accidental. Para más información acerca de estas configuraciones, revisa la documentación de Azure (opens new window)
  7. Da click en Probar configuración para verificar la conexión
  8. Una vez confirmada la configuración da click en Guardar
  9. Si la configuración y guardado es correcto, debajo del botón de probar conexión podrás configurar la sección de Asignaciones
  10. Selecciona una asignación para proceder al paso de asignación de atributos

# Paso 3 Asignación de atributos

# Grupos

  1. Selecciona la asignación Provision Azure Entra ID Groups para configurar sus atributos.
  2. Selecciona las acciones del objeto de destino: Crear, actualizar y/ eliminar. Confirma que el mapeo sea:
Azure Entra ID Attribute customApp Attribute
displayName displayName
objectId externalId
members members
  1. Da click en Guardar

# Usuarios

  1. Selecciona la asignación Provision Azure Entra ID Users para configurar los atributos de tus grupos.
  2. Selecciona únicamente las acciones: Crear y actualizar. Asegúrate que el mapeo sea:
Azure Entra ID Attribute customApp Attribute
userPrincipalName userName
Switch([IsSoftDeleted],, "False", "True", "True", "False") active
mail emails[type eq "work".value]
givenName name.givenName
surname name.familyName
Join(" ",[givenName],[surname] name.formatted
  1. Da click en Guardar
  2. Una vez hecho lo anterior, en la sección de Aprovisionamiento, en las opciones de configuración tendrás ya la opción de Ámbito, selecciona Sincronizar todos los usuarios del grupo
  3. Da click en Guardar

Puedes confirmar que la configuración de tu mapeo es correcta siguiendo estos pasos:

  1. En Azure ve a aprovisionamiento
  2. Selecciona Aprovisionamiento a petición
  3. Confirma que el proceso corre sin mostrar errores

Tip

En el caso de grupos, no existe aprovisionamiento a petición por lo que, para probar la configuración de grupos, debes crear un usuario, agregarlo a un grupo y seleccionar comenzar aprovisionamiento.

Esta tarea se ejecuta cada 40 minutos, por lo que debes esperar este tiempo para ver los cambios reflejados en la plataforma.

Una vez configurado correctamente, puedes agregar usuarios en Active Directory. A la vez, tus grupos existentes también serán aprovisionados.

Atención

Nombre del usuario y correo electrónico son campos requeridos para generar usuarios. Sin ellos, fallará el aprovisionamiento del usuario.

# Contrato del servidor SCIM

Además de Entra ID, puedes conectar cualquier cliente SCIM 2.0 contra el servidor de Modyo. La URL base es https://[account_host]/api/admin/scim y las llamadas se autentican con un token, igual que en el resto de la API de administración. El token debe pertenecer al dueño de la cuenta o a un usuario con el rol Full admin, asignado directamente o a través de un grupo; con otro rol, los endpoints de /Users y /Schemas, y el DELETE de grupos, responden 401. Los usuarios que administra este servidor son los de Equipo, no los de Customers.

Recurso Métodos Descripción
/Users GET, POST Lista y crea usuarios. El listado admite paginación con startIndex y count, y el filtro userName eq "valor"; no se admite filtrar por externalId. Cualquier otro operador, o un atributo distinto de userName y externalId, responde 400.
/Users/:id GET, PATCH, PUT Consulta y actualiza un usuario. El PATCH acepta operaciones sobre userName, name, emails y active. PUT es un alias de PATCH y espera el mismo cuerpo.
/Groups GET, POST Lista y crea grupos.
/Groups/:id GET, PATCH, PUT, DELETE Consulta, actualiza y elimina un grupo. PUT es un alias de PATCH y espera el mismo cuerpo.
/Schemas GET Devuelve la definición de los esquemas urn:ietf:params:scim:schemas:core:2.0:User y urn:ietf:params:scim:schemas:core:2.0:Group con todos sus atributos. Úsalo si tu cliente descubre el esquema antes de aprovisionar. Como el resto de los endpoints SCIM, aparece en el portal Swagger de la API de administración.

Las respuestas de los recursos y sus errores SCIM (400, 404, 409, 422 y 500) usan el content type application/scim+json y no el application/json que declara el resto de la API de administración. Asegúrate de que tu cliente lo acepte. Los errores 401, por un token ausente o inválido o por falta de permisos, no traen un cuerpo SCIM.

Atención

La baja de usuarios no se hace con DELETE. La ruta DELETE /api/admin/scim/Users/:id existe, pero no tiene implementación: la solicitud termina en un error genérico, sin respuesta SCIM, y el usuario no cambia. Para desaprovisionar, envía un PATCH a /Users/:id con la propiedad active en false. En grupos, DELETE sí está implementado.

# Referencias