# 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
- Accede al panel de administración de Azure Entra ID
- En el menú lateral selecciona Enterprise Application
- Selecciona la opción Crea tu propia aplicación en la parte superior de la galería de Azure
- 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
- Haz click en Crear
# Paso 2 Aprovisionamiento
- Accede a tu aplicación en Azure
- En el menú lateral selecciona Aprovisamiento
- Da click en Introducción
- Selecciona aprovisionamiento Automático
- 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)
- 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)
- Da click en Probar configuración para verificar la conexión
- Una vez confirmada la configuración da click en Guardar
- Si la configuración y guardado es correcto, debajo del botón de probar conexión podrás configurar la sección de Asignaciones
- Selecciona una asignación para proceder al paso de asignación de atributos
# Paso 3 Asignación de atributos
# Grupos
- Selecciona la asignación Provision Azure Entra ID Groups para configurar sus atributos.
- 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 |
- Da click en Guardar
# Usuarios
- Selecciona la asignación Provision Azure Entra ID Users para configurar los atributos de tus grupos.
- 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 |
| emails[type eq "work".value] | |
| givenName | name.givenName |
| surname | name.familyName |
| Join(" ",[givenName],[surname] | name.formatted |
- Da click en Guardar
- 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
- Da click en Guardar
Puedes confirmar que la configuración de tu mapeo es correcta siguiendo estos pasos:
- En Azure ve a aprovisionamiento
- Selecciona Aprovisionamiento a petición
- 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
- Para construir un API de SCIM compatible con Entra ID, sigue esta guía de Microsoft. Use SCIM to Provision Users and Groups (opens new window)
- Para más información de las APIs que Modyo ofrece, ve API de administración (opens new window).