Configurar SCIM con Microsoft Entra ID
Esta guía te acompaña en la conexión de Microsoft Entra ID con mTime mediante el aprovisionamiento SCIM, desde el primer ajuste en mTime hasta una sincronización verificada y en marcha. Sigue los pasos en orden: todo lo que necesitas está en esta página.
Por el camino vas a: preparar mTime (pasos 1–3), crear y conectar la aplicación empresarial de Entra (pasos 4–6), crear y asignar los usuarios y grupos (pasos 7–8) y hacer pruebas antes de la puesta en marcha (pasos 9–11).
Paso 1: activar la integración de aprovisionamiento SCIM en mTime
- Ve a y abre Aprovisionamiento SCIM.
- Activa la integración.
- Deja vacío Vincular externalId con un atributo de empleado salvo que quieras emparejar por número de empleado. Vacío es el valor predeterminado y, con él, los usuarios se emparejan con los empleados por dirección de correo, que es todo lo que necesitan la mayoría de los espacios de trabajo. Elige un atributo solo si tu proveedor de identidad envía un número de empleado estable y quieres que mTime empareje primero por él; elige el atributo que tu integración de RR. HH. rellena con ese número. Solo se pueden vincular atributos marcados como únicos: si el que quieres no aparece, márcalo antes como único en la configuración de atributos de empleado.
- Deja desactivado Usar los nombres del proveedor de identidad para los empleados salvo que Entra deba mandar también sobre los nombres de los empleados. Desactivado, el nombre que envía Entra se queda en el usuario y el empleado conserva el nombre que mantiene RR. HH.; activado, también se escribe en el empleado vinculado en la siguiente actualización de cada usuario. Consulta Usar el nombre del proveedor de identidad para los empleados.

externalId de SCIM. Déjalo vacío y podrás olvidarte de externalId en el resto de esta guía: nunca es obligatorio rellenarlo.- Al activar la integración se desactiva automáticamente Aprovisionar usuarios automáticamente
- solo un sistema gestiona la lista de usuarios a la vez. Mientras la integración está activada, ese ajuste queda bloqueado; desactiva antes la integración si quieres volver atrás.
Paso 2: crear el usuario de servicio de aprovisionamiento
El proveedor de identidad necesita su propia cuenta de servicio en mTime:
- Ve a y haz clic en Crear usuario de servicio .
- Ponle un nombre reconocible, p. ej.
entra-provisioning. - Dale solo el rol Aprovisionamiento, nada más.
Solo puede existir un usuario de servicio de aprovisionamiento por espacio de trabajo. Su rol está acotado: la cuenta funciona exclusivamente en los endpoints SCIM y se rechaza en cualquier otro sitio.

Paso 3: crear la clave de API
- Abre el usuario de servicio que acabas de crear y haz clic en Crear clave de API . (Solo funciona cuando la integración del paso 1 está activada).
- Copia la clave ahora: solo se muestra una vez. Es el «Secret Token» que pegarás en Entra en el paso 5.
Si la pierdes, revoca la clave y crea una nueva.
Paso 4: crear la aplicación empresarial en Entra
Ahora cambia al Centro de administración de Microsoft Entra. Necesitas un rol que pueda crear y gestionar aplicaciones empresariales (p. ej., Application Administrator).
- En el menú de la izquierda, ve a Enterprise apps (1) > All applications (2) y haz clic en New application (3) en la barra de herramientas encima de la lista. Se abre la Microsoft Entra App Gallery.

- Haz clic en Create your own application (1) en la parte superior de la página de la galería: se abre un panel a la derecha.
- Ponle un nombre a la aplicación (2): las capturas usan
mTIME SCIM test; vale cualquier nombre (p. ej.,mTime). Deja seleccionado Integrate any other application you don’t find in the gallery (Non-gallery) (3). Entra sugiere aplicaciones parecidas de la galería debajo del campo del nombre: ignóralas, mTime no está en la galería. Las otras dos opciones crean un tipo de objeto equivocado: un registro de aplicación (para software que desarrollas tú) no tiene aprovisionamiento, y Application Proxy es para aplicaciones locales. - Haz clic en Create (4) en la parte inferior del panel.

- Se abre la nueva aplicación, que a partir de ahora aparece en All applications (1).

En esta aplicación es donde ocurre todo lo demás: la conexión con mTime, las asignaciones de atributos y la elección de qué usuarios y grupos se aprovisionan.
Paso 5: conectar la aplicación con mTime
- En el menú de la aplicación, abre Provisioning (1) en Manage (la tarjeta Provision User Accounts (2) del Overview lleva al mismo sitio).

- La primera vez se abre la página Get started with application provisioning. Haz clic en Connect your application (1) en Create configuration. (El elemento de menú Connectivity está atenuado hasta que existe la configuración: este botón es la forma de llegar a él; en visitas posteriores abres Connectivity directamente).

- En la página Connectivity, deja Select authentication method (1) en Bearer authentication.
- Introduce la Tenant URL (2):
https://<tu host de mTime>/api/scim/v2; por ejemplo,https://mtime.example.com/api/scim/v2. - Pega la clave de API del paso 3 en Secret token (3), justo debajo de la URL.
- Haz clic en Test connection (4). Entra llama a mTime y verifica las credenciales: hace falta una prueba correcta antes de guardar.
- Haz clic en Save (5) en la barra de herramientas superior.

| ¿Falla Test connection? | Comprueba |
|---|---|
| Unauthorized | El secret token no es una clave de API válida o la clave se ha revocado |
| Forbidden: «SCIM endpoints require the provisioning service user’s API key» | La clave pertenece a otro usuario, no al usuario de servicio de aprovisionamiento |
| Forbidden: «The SCIM provisioning integration is disabled for this workspace» | La integración de aprovisionamiento SCIM está desactivada en mTime |
| Not found / tiempo de espera agotado | La Tenant URL es incorrecta: debe terminar en /api/scim/v2 |
Paso 6: configurar las asignaciones de atributos
Entra decide qué datos recibe mTime mediante las asignaciones de atributos (attribute mappings). Solo una de ellas es obligatoria: userName, que lleva la dirección de correo con la que mTime aprovisiona y empareja.
externalId es opcional: nunca tienes que rellenarlo. Asígnalo solo si elegiste un atributo de empleado en el paso 1 y quieres que mTime empareje a los usuarios por número de empleado en lugar de por dirección de correo. Si no lo asignas, el aprovisionamiento funciona exactamente igual y los usuarios se emparejan por su dirección de correo; no se rechaza nada por faltar el externalId.- En el panel de aprovisionamiento, abre Provisioning en Manage y despliega la sección Mappings. Contiene dos asignaciones —Provision Microsoft Entra ID Groups y Provision Microsoft Entra ID Users—, ambas activadas de forma predeterminada. Deja activada la de grupos: es la que hace funcionar la correspondencia entre grupos y roles del paso 8.
- Haz clic en Provision Microsoft Entra ID Users: se abre la lista Attribute Mapping.
- Solo si elegiste un atributo de empleado en el paso 1: busca la fila externalId, haz clic en Edit a la derecha (1) y sustituye el atributo de origen predeterminado por el atributo de Entra que contiene el número de empleado, normalmente employeeId. Si no, sáltate esto y ve al punto 5.
- El resto de asignaciones predeterminadas pueden quedarse como están: mTime ignora los atributos que no usa. Estas son las que importan:
| mTime (atributo SCIM) | ¿Rellenarlo? | Atributo de origen en Entra | Se usa para |
|---|---|---|---|
externalId | Opcional: solo con un atributo vinculado (paso 1) | employeeId (o donde esté tu número de empleado) | Emparejar al usuario con el empleado por número de empleado |
userName | Obligatorio | userPrincipalName | La dirección de correo del usuario, su identidad de inicio de sesión y la forma alternativa de emparejarlo con el empleado |
displayName | Opcional | displayName | El nombre del usuario |
active | Opcional | Switch([IsSoftDeleted], , “False”, “True”, “True”, “False”) | Suspender y reactivar al usuario |
- Haz clic en Save (2) en la barra de herramientas superior.

Paso 7: crear los usuarios y grupos en Entra
Los usuarios y grupos que deben llegar a mTime están en tu directorio de Entra. Probablemente tus empleados reales ya estén ahí: este paso muestra los campos que importan, con un usuario y un grupo de prueba (las capturas usan Tina Test y Team Leads).
- Ve a Entra ID > Users y haz clic en New user > Create new user. En la pestaña Basics, dale al usuario un nombre principal (1) y un nombre para mostrar (2).

- Opcional: sáltatelo salvo que hayas elegido un atributo de empleado en el paso 1. Deja Employee ID en blanco y mTime emparejará al usuario por dirección de correo. Si sí elegiste uno: en la pestaña Properties, rellena Employee ID (1) en Job Information con el número de empleado estable del usuario (aquí
test-5000): es lo que la asignaciónexternalIddel paso 6 envía a mTime, así que debe coincidir con el número del empleado en tus datos de RR. HH. En ambos casos, haz clic en Review + create (2) cuando termines.

- Ve a Entra ID > Groups y haz clic en New group. Deja Group type (1) en Security, ponle al grupo el nombre del rol de mTime que debe gestionar (2) y, en Members, haz clic en el enlace de miembros (3).

- Busca a los usuarios que deben tener el rol y márcalos (1), haz clic en Select (2) y después en Create (3).

Un grupo también puede empezar sin miembros: igualmente crea su rol en mTime (o se vincula a él), y las pertenencias llegan en cuanto añades personas en Entra.
Paso 8: asignar los usuarios y grupos a la aplicación
Entra solo aprovisiona lo que está asignado a la aplicación: crear un grupo (paso 7) no basta; la sincronización lo ignora hasta que está en la lista de asignaciones de la aplicación:
- En el menú de la aplicación, abre Users and groups (1) en Manage. La lista muestra todo lo que cubre actualmente la sincronización. Haz clic en Add user/group (2) en la barra de herramientas.

- En la página Add Assignment, abre el selector Users and groups, busca el grupo y márcalo (1), haz clic en Select (2) y después en Assign (3), abajo a la izquierda. Ten en cuenta el aviso de Entra: los grupos anidados no se propagan, así que asigna cada grupo directamente.

- El grupo aparece ahora en la lista de asignaciones (1). Los usuarios individuales se pueden asignar de la misma forma.

Esta lista es la que manda porque el ajuste Scope del aprovisionamiento (en Provisioning > Settings) es de forma predeterminada Sync only assigned users and groups: déjalo así.
Lo que llega a mTime:
- Cada usuario asignado se convierte en un usuario de mTime, emparejado con el empleado por el número de empleado vinculado (si está configurado) o por la dirección de correo, o con una ficha de empleado mínima nueva si no coincide ninguno.
- Cada grupo asignado se convierte en un rol de mTime. Un grupo cuyo nombre coincide exactamente con un rol existente se vincula a él; cualquier otro grupo crea un rol nuevo vacío que después configura un administrador en la página Roles.
- Los miembros del grupo reciben automáticamente el rol del grupo, incluidos los que se añadan más tarde.
hr-admin), primero un propietario del espacio de trabajo debe permitirlo para ese rol: abre el rol y añade Aprovisionamiento
en Lo pueden asignar
. El rol de propietario nunca se puede gestionar mediante SCIM.Paso 9: probar con el aprovisionamiento a petición
Antes de iniciar la sincronización completa, verifica la configuración con un solo usuario:
- Abre Provision on demand (1) en la parte superior del menú del panel de aprovisionamiento, elige un usuario de prueba (2) (asignado en el paso 8) y aprovisiónalo. Entra pasa por sus cuatro fases —importación, alcance, emparejamiento y ejecución de la acción— y todas deben terminar en Success.

- Abre View details (1) en Perform action para ver exactamente lo que ha recibido mTime. La fila externalId (2) solo importa si elegiste un atributo de empleado en el paso 1: en ese caso debe llevar el número de empleado. Si no, ignórala: un
externalIdvacío es normal y nada falla por ello.

- Ahora comprueba el lado de mTime en y ábrelo. El usuario existe con el estado invitado y tiene el rol de empleado (1) (además de los roles de grupo que tenga).

- Abre el empleado vinculado: como todavía no coincidía ningún empleado, se ha creado una ficha mínima, sin contrato (1) (tu integración de RR. HH. la completa más adelante) y con el número de empleado guardado en el atributo vinculado en el paso 1 (2).

- Prueba el grupo de la misma forma: vuelve a abrir Provision on demand, cambia el selector a la pestaña Groups y aprovisiona el grupo del paso 8 (1). Las mismas cuatro fases deben ponerse en verde.

- En mTime, el grupo ha llegado como un rol en la página , creado vacío y con la etiqueta Gestionado por un grupo del IdP (1), listo para que un administrador decida qué puede hacer.

- Y los miembros del grupo lo tienen: el usuario de prueba lleva ahora el rol junto a empleado (1).

Paso 10: iniciar el aprovisionamiento
- De vuelta en el Overview de la configuración, haz clic en Start provisioning (1) en la barra de herramientas.
- Entra ejecuta un ciclo inicial que cubre todo lo asignado a la aplicación y después un ciclo incremental aproximadamente cada 40 minutos que aplica los cambios, incluidas las deshabilitaciones y eliminaciones que se salta el aprovisionamiento a petición.
- El Overview hace el seguimiento de la tarea: Last cycle completed time (2) y Current cycle status (3), con el progreso y los cambios procesados. Pause provisioning y Restart provisioning están en la misma barra de herramientas, y los fallos aparecen en Provisioning logs (4), en la sección Monitor, cada uno con el motivo que devolvió mTime (p. ej., «A user with this externalId already exists»).

Paso 11: verificar el ciclo de vida
Haz un ciclo completo para comprobar que funciona:
- Deshabilita al usuario de prueba en Entra (bloquea el inicio de sesión). Tras el siguiente ciclo queda suspendido en mTime y su sesión se cierra de inmediato.
- Vuelve a habilitarlo: el siguiente ciclo reactiva al usuario de mTime.
- Quita al usuario de prueba del grupo: la siguiente sincronización le retira el rol en mTime; vuelve a añadirlo y el rol regresa.
A partir de aquí, la gestión de usuarios y grupos se hace en Entra. Lo que cada rol puede hacer sigue en manos de tus administradores de mTime; consulta Cómo los grupos se convierten en roles.
Solución de problemas
| Problema | Solución |
|---|---|
| Falla Test Connection | Consulta la tabla del paso 5: token incorrecto, integración desactivada o URL incorrecta |
| «Enable the SCIM provisioning integration before issuing a key for the provisioning service user.» | Activa la integración (paso 1) antes de crear la clave de API |
| Grupo rechazado: «The group name “owner” matches mTIME’s owner role, which cannot be managed through SCIM. Rename the group.» | El rol de propietario nunca se puede gestionar mediante SCIM: cambia el nombre del grupo en Entra |
| «A user with this externalId already exists» | Dos personas distintas tienen el mismo número de empleado en el IdP: es un error de datos que hay que corregir en Entra |
| El usuario se ha creado pero no está vinculado al empleado correcto | El valor del atributo vinculado no coincide con el número que envía Entra (alinea Vincular externalId con un atributo de empleado del paso 1 con tus datos de RR. HH.) o, si se empareja por correo, las direcciones de Entra y de la ficha del empleado no coinciden |
| Se ha creado una ficha de empleado duplicada | Ni el número de empleado ni la dirección de correo coincidían con el empleado existente: alinéalos y deja que tu integración de RR. HH. fusione los datos, o vincula un atributo en el paso 1 para un emparejamiento exacto |
| Un usuario desactivado sigue activo en mTime | Las desactivaciones solo llegan con el ciclo programado: espera al siguiente ciclo (o comprueba que el aprovisionamiento está iniciado); no lo pruebes a petición |
| El grupo no se ha convertido en rol | Comprueba que el grupo está asignado a la aplicación (paso 8) y que aparece en los registros de aprovisionamiento |
| Un cambio de pertenencia a un rol existente no tiene efecto | El rol no lo permite: añade Aprovisionamiento en Lo pueden asignar del rol |
| «A provisioning service user already exists in this workspace.» | Solo puede haber uno: reutilízalo y, para renovar las credenciales, crea una clave de API nueva |