Configurare SCIM con Microsoft Entra ID
Questa guida ti accompagna nel collegamento di Microsoft Entra ID a mTime con il provisioning SCIM, dalla prima impostazione in mTime a una sincronizzazione verificata e funzionante. Segui i passaggi in ordine — tutto ciò che ti serve è in questa pagina.
Lungo il percorso: prepari mTime (passaggi 1–3), crei e colleghi l’applicazione enterprise in Entra (passaggi 4–6), crei e assegni gli utenti e i gruppi (passaggi 7–8) e testi prima di andare in produzione (passaggi 9–11).
Passaggio 1 — Attivare l’integrazione di provisioning SCIM in mTime
- Vai su e apri Provisioning SCIM.
- Attiva l’integrazione.
- Lascia Collega externalId a un attributo dipendente vuoto, a meno che tu non voglia l’abbinamento tramite numero dipendente. Vuoto è l’impostazione predefinita e, così, gli utenti vengono abbinati ai dipendenti tramite l’indirizzo e-mail — che è tutto ciò che serve alla maggior parte delle aree di lavoro. Scegli un attributo solo se il tuo identity provider invia un numero dipendente stabile e vuoi che mTime abbini prima su quello; in tal caso scegli l’attributo che la tua integrazione HR compila con quel numero. Solo gli attributi contrassegnati come univoci possono essere collegati — se quello che vuoi non è nell’elenco, contrassegnalo prima come univoco nelle impostazioni degli attributi dipendente.

externalId viene usato o no. Lasciala vuota e potrai ignorare externalId per tutto il resto di questa guida — non deve mai essere compilato.Passaggio 2 — Creare l’utente di servizio di provisioning
L’identity provider ha bisogno di un proprio account di servizio in mTime:
- Vai su e fai clic su Crea utente di servizio .
- Dagli un nome riconoscibile, ad es.
entra-provisioning. - Assegnagli solo il ruolo Provisioning — nient’altro.
Può esistere un solo utente di servizio di provisioning per area di lavoro. Il suo ruolo è circoscritto: l’account funziona esclusivamente sugli endpoint SCIM e viene rifiutato ovunque altro.

Passaggio 3 — Creare la chiave API
- Apri l’utente di servizio appena creato e aggiungi una chiave API.
- Copia subito la chiave — viene mostrata una sola volta. È il “Secret Token” che incollerai in Entra al passaggio 5.
Se la perdi, revoca la chiave e creane una nuova.
Passaggio 4 — Creare l’applicazione enterprise in Entra
Passa ora al Microsoft Entra admin center. Ti serve un ruolo che possa creare e gestire applicazioni enterprise (ad es. Application Administrator).
- Nel menu a sinistra, vai su Enterprise apps (1) > All applications (2) e fai clic su New application (3) nella barra degli strumenti sopra l’elenco. Si apre la Microsoft Entra App Gallery.

- Fai clic su Create your own application (1) in cima alla pagina della galleria — si apre un pannello a destra.
- Dai un nome all’app (2) — gli screenshot usano
mTIME SCIM test; qualsiasi nome va bene (ad es.mTime). Mantieni selezionato Integrate any other application you don’t find in the gallery (Non-gallery) (3). Sotto il campo del nome Entra suggerisce app della galleria dal nome simile — ignorale, mTime non è nella galleria. Le altre due opzioni creano il tipo di oggetto sbagliato: una registrazione app (per software che sviluppi tu stesso) non ha provisioning, e Application Proxy è per le app on-premises. - Fai clic su Create (4) in fondo al pannello.

- La nuova applicazione si apre e da questo momento compare sotto All applications (1).

È in questa applicazione che avviene tutto il resto: la connessione a mTime, le mappature degli attributi e la scelta di quali utenti e gruppi vengono sottoposti a provisioning.
Passaggio 5 — Collegare l’applicazione a mTime
- Nel menu dell’applicazione, apri Provisioning (1) sotto Manage (la scheda Provision User Accounts (2) nella Overview porta allo stesso posto).

- La prima volta si apre la pagina Get started with application provisioning. Fai clic su Connect your application (1) sotto Create configuration. (La voce di menu Connectivity è disattivata finché la configurazione non esiste — questo pulsante è il modo per raggiungerla; nelle visite successive apri Connectivity direttamente.)
https://<il tuo host mTime>/api/scim/v2 — ad esempio https://mtime.example.com/api/scim/v2.
5. Incolla la chiave API del passaggio 3 in Secret token (3), subito sotto l’URL.
6. Fai clic su Test connection (4). Entra chiama mTime e verifica le credenziali — un test riuscito è necessario prima di poter salvare.
7. Fai clic su Save (5) nella barra degli strumenti in alto.
| Test connection non riesce? | Verifica |
|---|---|
| Unauthorized | Il secret token non è la chiave API dell’utente di servizio di provisioning, oppure la chiave è stata revocata |
| Forbidden | L’integrazione di provisioning SCIM è disattivata in mTime |
| Not found / timeout | Il Tenant URL è sbagliato — deve terminare con /api/scim/v2 |
Passaggio 6 — Configurare le mappature degli attributi
Entra decide quali dati riceve mTime tramite le mappature degli attributi. Una sola di esse è obbligatoria: userName, che contiene l’indirizzo e-mail con cui mTime esegue il provisioning e l’abbinamento.
externalId è facoltativo — non devi mai compilarlo. Mappalo solo se al passaggio 1 hai scelto un attributo dipendente e vuoi che mTime abbini gli utenti tramite il numero dipendente invece che tramite l’indirizzo e-mail. Se non lo mappi, il provisioning funziona esattamente allo stesso modo e gli utenti vengono abbinati tramite il loro indirizzo e-mail; nulla viene rifiutato per un externalId mancante.- Nel pannello di provisioning, apri Provisioning sotto Manage ed espandi la sezione Mappings. Elenca due mappature — Provision Microsoft Entra ID Groups e Provision Microsoft Entra ID Users — entrambe abilitate per impostazione predefinita. Lascia Groups abilitata: alimenta la mappatura da gruppi a ruoli del passaggio 8.
- Fai clic su Provision Microsoft Entra ID Users — si apre l’elenco Attribute Mapping.
- Solo se al passaggio 1 hai scelto un attributo dipendente: trova la riga externalId, fai clic su Edit a destra (1) e sostituisci l’attributo di origine predefinito con l’attributo Entra che contiene il numero dipendente — tipicamente employeeId. Altrimenti salta questo punto e passa al punto 5.
- Le restanti mappature predefinite possono rimanere come sono — mTime ignora gli attributi che non usa. Quelle che contano:
| mTime (attributo SCIM) | Da compilare? | Attributo di origine Entra | Usato per |
|---|---|---|---|
externalId | Facoltativo — solo con un attributo collegato (passaggio 1) | employeeId (o dovunque si trovi il tuo numero dipendente) | Abbinare l’utente al dipendente tramite il numero dipendente |
userName | Obbligatorio | userPrincipalName | L’indirizzo e-mail e l’identità di accesso dell’utente, e il metodo di riserva per abbinare il dipendente |
displayName | Facoltativo | displayName | Il nome dell’utente |
active | Facoltativo | Switch([IsSoftDeleted], , “False”, “True”, “True”, “False”) | Sospendere e riattivare l’utente |
- Fai clic su Save (2) nella barra degli strumenti in alto.

Passaggio 7 — Creare gli utenti e i gruppi in Entra
Gli utenti e i gruppi che devono arrivare in mTime vivono nella tua directory Entra. I tuoi dipendenti reali probabilmente ci sono già — questo passaggio mostra i campi che contano, usando un utente di test e un gruppo di test (gli screenshot usano Tina Test e Team Leads).
- Vai su Entra ID > Users e fai clic su New user > Create new user. Nella scheda Basics, assegna all’utente un principal name (1) e un display name (2).

- Facoltativo — salta questo punto, a meno che al passaggio 1 tu non abbia scelto un attributo dipendente. Lascia vuoto Employee ID e mTime abbina l’utente tramite l’indirizzo e-mail. Se invece ne hai scelto uno: nella scheda Properties, compila Employee ID (1) sotto Job Information con il numero dipendente stabile dell’utente (qui
test-5000) — è ciò che la mappaturaexternalIddel passaggio 6 invia a mTime, quindi deve corrispondere al numero del dipendente nei tuoi dati HR. In entrambi i casi, quando hai finito fai clic su Review + create (2).

- Vai su Entra ID > Groups e fai clic su New group. Mantieni Group type (1) su Security, dai al gruppo il nome del ruolo mTime che deve gestire (2) e, sotto Members, fai clic sul link dei membri (3).

- Cerca gli utenti che devono detenere il ruolo e spuntali (1), fai clic su Select (2) — poi fai clic su Create (3).

Un gruppo può anche partire senza membri: crea (o collega) comunque il suo ruolo mTime, e le appartenenze seguono man mano che aggiungi persone in Entra.
Passaggio 8 — Assegnare gli utenti e i gruppi all’applicazione
Entra sottopone a provisioning solo ciò che è assegnato all’applicazione — creare un gruppo (passaggio 7) non basta; la sincronizzazione lo ignora finché non compare nell’elenco delle assegnazioni dell’app:
- Nel menu dell’applicazione, apri Users and groups (1) sotto Manage. L’elenco mostra tutto ciò che la sincronizzazione copre attualmente. Fai clic su Add user/group (2) nella barra degli strumenti.

- Nella pagina Add Assignment, apri il selettore Users and groups, cerca il gruppo, spuntalo (1) e fai clic su Select (2) — poi fai clic su Assign (3) in basso a sinistra. Attenzione all’avviso di Entra: i gruppi annidati non si propagano, quindi assegna ogni gruppo direttamente.

- Il gruppo ora compare nell’elenco delle assegnazioni (1). I singoli utenti possono essere assegnati allo stesso modo.

Questo elenco è la fonte di verità perché l’impostazione Scope del provisioning (sotto Provisioning > Settings) è per impostazione predefinita su Sync only assigned users and groups — lasciala lì.
Cosa arriva in mTime:
- Ogni utente assegnato diventa un utente mTime — abbinato al dipendente tramite il numero dipendente collegato (se configurato) o tramite l’indirizzo e-mail, oppure dotato di una nuova scheda dipendente minima se nessuno dei due corrisponde.
- Ogni gruppo assegnato diventa un ruolo mTime. Un gruppo il cui nome corrisponde esattamente a un ruolo esistente viene collegato a quel ruolo; qualsiasi altro gruppo crea un nuovo ruolo vuoto che un amministratore configura poi nella pagina dei ruoli.
- I membri del gruppo ricevono automaticamente il ruolo del gruppo — inclusi i membri aggiunti in seguito.
admin), un proprietario dell’area di lavoro deve prima approvare quel ruolo: apri il ruolo e aggiungi provisioning sotto Assegnabile da. Il ruolo owner non può mai essere gestito tramite SCIM.Passaggio 9 — Testare con il provisioning su richiesta
Prima di avviare la sincronizzazione completa, verifica la configurazione con un singolo utente:
- Apri Provision on demand (1) in cima al menu del pannello di provisioning, scegli un utente di test (2) (assegnato al passaggio 8) e sottoponilo a provisioning. Entra percorre le sue quattro fasi — import, scope, match, perform action — e ogni fase deve terminare con Success.

- Apri View details (1) su Perform action per vedere esattamente cosa ha ricevuto mTime. La riga externalId (2) conta solo se al passaggio 1 hai scelto un attributo dipendente — in quel caso dovrebbe contenere il numero dipendente. Altrimenti ignorala: un
externalIdvuoto è normale e non fa fallire nulla.

- Ora controlla il lato mTime in . L’utente esiste con stato invitato e detiene il ruolo employee (1) (più eventuali ruoli di gruppo).

- Apri il dipendente collegato: poiché nessun dipendente corrispondeva ancora, è stata creata una scheda minima — senza rapporto di lavoro (1) (la tua integrazione HR la arricchisce in seguito), con il numero dipendente memorizzato nell’attributo collegato al passaggio 1 (2).

- Testa il gruppo allo stesso modo: apri di nuovo Provision on demand, passa il selettore alla scheda Groups e sottoponi a provisioning il gruppo del passaggio 8 (1). Le stesse quattro fasi devono diventare verdi.

- In mTime, il gruppo è arrivato come ruolo in . Creato vuoto e con il badge “Gestito da un gruppo IdP” (1), pronto perché un amministratore decida cosa può fare.

- E i membri del gruppo lo detengono: l’utente di test ora porta il ruolo accanto a employee (1).

Passaggio 10 — Avviare il provisioning
- Di nuovo nella Overview della configurazione, fai clic su Start provisioning (1) nella barra degli strumenti.
- Entra esegue un ciclo iniziale che copre tutto ciò che è assegnato all’applicazione, poi un ciclo incrementale circa ogni 40 minuti che applica le modifiche — incluse le disattivazioni e le eliminazioni che il provisioning su richiesta salta.
- La Overview segue il job: Last cycle completed time (2) e Current cycle status (3) con l’avanzamento e le modifiche elaborate. Pause provisioning e Restart provisioning si trovano nella stessa barra degli strumenti, e gli errori compaiono sotto Provisioning logs (4) nella sezione Monitor, ciascuno con il motivo restituito da mTime (ad es. un numero dipendente mancante).

Passaggio 11 — Verificare il ciclo di vita
Esegui un giro completo per convincerti che funziona:
- Disattiva l’utente di test in Entra (blocca l’accesso). Dopo il ciclo successivo risulta sospeso in mTime e viene disconnesso immediatamente.
- Riattivalo — il ciclo successivo riattiva l’utente mTime.
- Rimuovi l’utente di test dal gruppo — la sincronizzazione successiva revoca il ruolo in mTime; riaggiungilo e il ruolo torna.
Da qui in poi, la gestione di utenti e gruppi vive in Entra. Cosa ogni ruolo può fare resta ai tuoi amministratori mTime — vedi Come i gruppi diventano ruoli.
Risoluzione dei problemi
| Problema | Soluzione |
|---|---|
| Test Connection non riesce | Vedi la tabella al passaggio 5 — token sbagliato, integrazione disattivata o URL errato |
| “Esiste già un utente con questo externalId” | Due persone diverse portano lo stesso numero dipendente nell’IdP — un errore nei dati da correggere in Entra |
| Utente creato ma non collegato al dipendente giusto | Il valore dell’attributo collegato non corrisponde al numero inviato da Entra (allinea Collega externalId a un attributo dipendente del passaggio 1 con i tuoi dati HR), oppure — quando l’abbinamento avviene per e-mail — gli indirizzi differiscono tra Entra e la scheda dipendente |
| È stata creata una scheda dipendente duplicata | Né il numero dipendente né l’indirizzo e-mail corrispondevano al dipendente esistente — allineali e lascia che la tua integrazione HR unisca i dati, oppure collega un attributo al passaggio 1 per un abbinamento esatto |
| Utente disattivato ancora attivo in mTime | Le disattivazioni passano solo dal ciclo pianificato — attendi il ciclo successivo (o verifica che il provisioning sia avviato), non testarle su richiesta |
| Il gruppo non è diventato un ruolo | Verifica che il gruppo sia assegnato all’applicazione (passaggio 8) e che compaia nei log di provisioning |
| Una modifica di appartenenza a un ruolo esistente non ha effetto | Il ruolo non è stato approvato — aggiungi provisioning sotto Assegnabile da del ruolo |
| “Esiste già un utente di servizio di provisioning” | Ne può esistere solo uno — riusalo, e ruota le credenziali creando una nuova chiave API |
