# Microsoft 365 SCIM

  Pași, TabItem, LinkCard, CardGrid, } de la „@astrojs/starlight/components”;

Microsoft Entra ID (Microsoft 365) poate păstra sincronizarea utilizatorilor platformei prin intermediul dispozitivului **SCIM Bridge** (recomandat) sau prin intermediul dispozitivului **Native** push provisioning.

:::tip[Recomandat] Pentru Microsoft Entra ID, preferați **SCIM Bridge**. Suportul SCIM de ieșire al Entra este limitat în practică; Bridge citește Microsoft Graph pe un program și reconciliază oamenii organizației în mod fiabil :::

Acest ghid vă ghidează prin configurarea platformei Bridge pentru sincronizarea automată a utilizatorilor din Microsoft 365 (Entra ID) în platformă prin intermediul SCIM.

## Prerequisites

- Accesul administratorului Microsoft Entra ID (pentru a înregistra o aplicație și pentru a acorda consimțământul administratorului) - accesul administratorului organizației platformei - Capacitatea de a crea o înregistrare a aplicației în locatarul Entra

## How it works

Microsoft 365 Bridge se conectează la Microsoft Graph utilizând OAuth2, recuperează utilizatorii directorului organizației dvs. și le sincronizează cu platforma prin intermediul punctului final SCIM.

- **New users**: Creates the platform accounts for home-tenant members found in Entra ID
- **Updated users**: Syncs attribute changes (name, title, department, and so on)
- **Removed or disabled users**: Deactivates the platform accounts when members leave or are disabled
- **Excluded users**: Skips users you’ve explicitly excluded by email
- **Guests**: B2B guest users (`userType` Guest) are not provisioned

### Mapped attributes

| Microsoft Graph field | SCIM Attribute |
| --------------------- | --------------------------- |
| `mail` (fallback `userPrincipalName`) | `userName`, `emails` |
| `displayName` | `displayName` |
| `givenName` | `name.givenName` |
| `surname` | `name.familyName` |
| `accountEnabled` | `active` |
| `jobTitle` | `title` |
| `department` | `enterprise:department` |
| `companyName` | `enterprise:organization` |
| `employeeId` | `enterprise:employeeNumber` |
| `preferredLanguage` | `preferredLanguage` |
| `id` | `externalId` |

## Step 1: Register an Entra ID application

1. Conectați-vă la [Microsoft Entra admin center](https://entra.microsoft.com) 2. Du-te la **Identitate** → **Aplicații** → **Înregistrări aplicații** → **Noua înregistrare** 3. Configurați aplicația:

   | Field | Value |
   | ----- | ----- |
   | **Name** | `Probo SCIM Bridge` |
   | **Supported account types** | Accounts in this organizational directory only |
   | **Redirect URI** | Platform **Web**, URI `https://your-probo-domain.com/api/console/v1/connectors/complete` |

4. Click **Înregistrare** 5.În aplicație **Preview**, copiați ID-ul **Aplicație (client)** 6.Du-te la **Certificate & secrets** → **New client secret**, creați un secret și copiați-l **Valoare** (apare o singură dată)

## Step 2: Grant Microsoft Graph permissions

1. În înregistrarea aplicației, accesați **APIpermisiuni** → ** Adăugați o permisiune** → **Microsoft Graph** → **Delegate permisiuni** 2.

   | Permission | Purpose |
   | ---------- | ------- |
   | `openid`, `profile`, `offline_access` | Sign-in and refresh token |
   | `User.Read.All` | Read directory user profiles |
   | `Directory.Read.All` | Read organizational directory data |

   If you also use Microsoft 365 as an [access review source](/docs/product/access-review/overview), the platform’s connector may request additional Graph permissions such as `AuditLog.Read.All` and `RoleManagement.Read.Directory` during authorization.

3. Click **Grant consimțământul administratorului pentru chiriașul dvs.** și confirmați

## Pasul 3: Configurarea podului în platformă

1. Conectați-vă la platformă ca administrator al organizației 2. Du-te la **Configurări organizaționale** → **Autentificare** → **Auto-Provisioning** 3. Faceți clic pe **Add Connector** și selectați **Microsoft 365** 4. Introduceți acreditările OAuth:

   Domeniul de referință Domeniul de referință Domeniul de referință Domeniul de referință Domeniul de referință Domeniul de referință Domeniul de referință Domeniul de referință Domeniul de referință Domeniul de referință Domeniul de referință Domeniul de referință Domeniul de referință Domeniul de referință Domeniul de referință Domeniul de referință Domeniul de referință Domeniul de referință Domeniul de referință Domeniul de referință Domeniul de referință Domeniul de referință Domeniul de referință

5. Faceți clic pe **Autorize** pentru a finaliza fluxul OAuth – veți fi redirecționat la Microsoft pentru a acorda accesul 6.

## Step 4: Configure exclusions (optional)

Dacă aveți conturi de servicii, cutii poștale partajate sau alți utilizatori care nu ar trebui să fie furnizați în platformă:

1. În setările conectorului Bridge, accesați **Utilizatori excluși** 2. adăugați adresele de e-mail ale utilizatorilor pentru a exclude (caz insensibil) 3. faceți clic pe **Salvați**

Utilizatorii exclusi vor fi ignorati in timpul sincronizarii.Daca un utilizator exclus a fost prevazut anterior, acesta va fi eliminat in urmatorul ciclu de sincronizare.

## Step 5: Verify synchronization

După ce Bridge este configurat, acesta va începe să se sincronizeze în programul său regulat (aproximativ la fiecare 30 de secunde pentru sondaje, cu un timp de sincronizare de 5 minute).

1. Du-te la Setări de organizare** → Autentificare** → Auto-Provisioning** 2. Verificați starea Bridge – ar trebui să treacă de la **Pending** la **Syncing** și apoi la **Activ** 3. Du-te la **People** pentru a verifica utilizatorii au fost furnizați 4. Verificați în **Event Log** pentru activități detaliate de sincronizare

## Setting a user's role

rolurile de membru ale platformei (**Owner**, **Admin**, și așa mai departe) sunt atribuite în [People](/docs/product/roles-and-permissions) sau sunt cartografiate cu SAML [Role Attribute](/docs/product/sso/overview#membership-roles-from-saml).

În mod separat, sincronizarea unui titlu de loc de muncă ajută platforma să atribuie politici și să efectueze evaluări semnificative ale accesului.Fără aceste câmpuri de profil, un utilizator se poate înregistra în continuare, dar este mai dificil de evaluat pentru accesul cu cele mai puține privilegii.

Microsoft Graph syncs **Job title** (`jobTitle`) to the platform via the SCIM Bridge. Set it on the user in Entra ID under **Job information**, then wait for the next sync cycle.

:::Tip Păstrați titlurile de locuri de muncă consecvente în întreaga echipă (evitați variațiile de formă liberă, cum ar fi Eng, SWE, Inginer pentru același rol), astfel încât accesul la recenzii grupul de oameni curat. :::

## Troubleshooting

### Bridge stuck in "Pending"

- **Cause**: OAuth authorization was not completed, admin consent is missing, or the token has expired
- **Solution**: Confirm admin consent for `User.Read.All` and `Directory.Read.All`, then re-authorize the Microsoft 365 connector

### Bridge in "Failed" state

- **Cauza**: S-a întâmplat o eroare în sincronizare (problema rețelei, limita ratei Graph, acreditările nevalide) - **Soluție**: Verificați în Jurnalul evenimentelor pentru detalii despre eroare.

### Users not appearing

- **Cause**: Users are B2B guests, lack a mail/UPN, or Graph permissions are incomplete
- **Solution**: The Bridge only syncs home-tenant members (`userType eq 'Member'`). Confirm the user has a `mail` or `userPrincipalName`, and that admin consent was granted

### Stale users not deactivated

- ** Cauza**: Utilizatorii pot fi pe lista de excludere sau sincronizarea nu a finalizat încă un ciclu complet - ** Soluție**: Verificați lista de excludere și așteptați următorul ciclu de sincronizare

### OAuth token expired

- **Cauza**: Tokenul de reîmprospătare a fost revocat sau a expirat - **Soluție**: Reautorizați conectorul. Bridge reîmprospătează automat tokenurile OAuth, dar dacă tokenul de reîmprospătare în sine este revocat (de exemplu, secretul a fost rotit sau consimțământul a fost retras), va trebui să reautorizați

:::precaution[Prefer Bridge atunci când poți] Push-ul nativ de la Entra ID funcționează, dar comportamentul SCIM de ieșire al Entra este limitat în practică.

Acest ghid vă ghidează prin configurarea provisionării Native SCIM de la Microsoft Entra ID, astfel încât utilizatorii atribuiți să fie împinși în platformă.

## Prerequisites

- Accesul administratorului Microsoft Entra ID (Administrator global sau administrator de aplicații) - accesul administratorului organizației platformei - Un abonament Microsoft 365 cu Entra ID P1 sau mai mare (necesar pentru furnizarea automată)

## How it works

În modul nativ, Microsoft Entra ID împinge modificările utilizatorului la punctul final SCIM 2.0 al platformei. Când atribuiți utilizatori sau grupuri aplicației Enterprise a platformei în Entra ID, acesta:

- * Creează conturile platformei pentru utilizatorii nou alocați - Actualizează atributele utilizatorilor atunci când aceștia schimbă ID-ul Entra - Dezactivează conturile platformei atunci când utilizatorii nu sunt alocați sau dezactivați - Șterge conturile platformei atunci când utilizatorii sunt eliminați permanent (dacă sunt configurați)

### Mapped attributes

**Core User attributes:**

| Entra ID Field | SCIM Attribute | Notes |
| ----------------------------------------------- | ------------------------------------ | ------------------------------------------------------------------------------------------------ |
| userPrincipalName | `userName` | Required, unique |
| displayName | `displayName` | |
| givenName | `name.givenName` | |
| surname | `name.familyName` | |
| ImmutableId | `name.formatted` | |
| honorificPrefix | `name.honorificPrefix` | |
| honorificSuffix | `name.honorificSuffix` | |
| mailNickname | `nickName` | |
| accountEnabled | `active` | |
| mail | `emails[type eq "work"].value` | Multi-valued |
| telephoneNumber | `phoneNumbers[type eq "work"].value` | Multi-valued |
| streetAddress, city, state, postalCode, country | `addresses` | Multi-valued, with `streetAddress`, `locality`, `region`, `postalCode`, `country` sub-attributes |
| jobTitle | `title` | |
| userType | `userType` | |
| preferredLanguage | `preferredLanguage` | |
| usageLocation | `locale` | |
| preferredDataLocation | `timezone` | |
| mysiteUrl | `profileUrl` | |

**Enterprise User Extension attributes:**

| Entra ID Field | SCIM Attribute |
| -------------- | --------------------------- |
| employeeId | `enterprise:employeeNumber` |
| companyName | `enterprise:organization` |
| department | `enterprise:department` |
| division | `enterprise:division` |
| costCenter | `enterprise:costCenter` |
| manager | `enterprise:manager.value` |

## Step 1: Generate SCIM credentials in the platform

1. Conectați-vă la platformă ca administrator al organizației 2. Du-te la **Configurări organizaționale** → **Autentificare** → **Auto-Provisioning** 3. Faceți clic pe **Add Connector** și selectați **SCIM** 4. Copiați **SCIM Endpoint URL** și **Bearer Token**

   :::precauție Token-ul purtătorului este afișat o singură dată. Stocați-l în siguranță - veți avea nevoie de el în următorul pas. :::

## Pasul 2: Crearea unei aplicații enterprise în Entra ID

1. Conectați-vă la [Microsoft Entra admin center](https://entra.microsoft.com) 2. Du-te la **Identity** → **Applications** → **Enterprise applications** 3. Faceți clic pe **+New application** → **Create your own application** 4. Introduceți următoarele:

   | Field | Value |
   | ------------------------------- | ----------------------------------------------------------------------------- |
   | **Name** | `Probo` |
   | **What are you looking to do?** | `Integrate any other application you don't find in the gallery (Non-gallery)` |

5. Click **Create**

## Step 3: Configure provisioning

1. În aplicația Enterprise a platformei, mergeți la **Provisioning** în bara laterală stângă 2. faceți clic pe **Get started** 3. setați **Provisioning Mode** la **Automatic** 4. Sub **Admin Credentials**, introduceți:

   | Field | Value |
   | ---------------- | ------------------------------------------------------------------------------------------- |
   | **Tenant URL** | Your the platform SCIM endpoint URL (e.g. `https://your-probo-domain.com/api/connect/v1/scim/2.0`) |
   | **Secret Token** | The bearer token from Step 1 |

5. Faceți clic pe **Conectare de testare** pentru a verifica dacă Entra ID poate ajunge la punctul final al platformei SCIM 6.

## Step 4: Configure attribute mappings

Mapările de atribute implicite funcționează pentru majoritatea setărilor. Pentru a le revizui sau a le personaliza:

1. In the **Provisioning** page, expand **Mappings**
2. Click **Provision Microsoft Entra ID Users**
3. Review the attribute mappings — the defaults map to the platform’s supported SCIM attributes
4. Adjust mappings if needed (e.g. map `employeeId` to `urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:employeeNumber`)
5. Click **Save**

:::tip
You can remove mappings for attributes you don’t use. Only `userName`, `displayName`, and `active` are required by the platform.
:::

## Step 5: Assign users and groups

1. În aplicația Enterprise pentru platformă, accesați **Utilizatori și grupuri** 2. faceți clic pe **+ Adăugați utilizator/grup** 3. selectați utilizatorii sau grupurile pe care doriți să le furnizați în platformă 4. faceți clic pe **Assign**

Numai utilizatorii alocați (sau membrii grupurilor alocate) vor fi furnizați. Acest lucru vă oferă un control fin asupra celui care primește un cont de platformă.

## Step 6: Start provisioning

1. Du-te înapoi la **Provisioning** 2. Set **Provisioning Status** la **On** 3. Faceți clic pe **Save** 4.Entra ID va începe un ciclu inițial de provisioning – acest lucru poate dura câteva minute în funcție de numărul de utilizatori

După ciclul inițial, Entra ID rulează sincronizarea incrementală aproximativ la fiecare 40 de minute pentru a împinge orice modificări.

## Step 7: Verify provisioning

1. În Entra ID, accesați **Provisioning** → **Provisioning logs** pentru a vedea activitatea de sincronizare 2. În platformă, accesați **People** pentru a verifica dacă utilizatorii au fost furnizați 3.

## Setting a user's role

rolurile de membru ale platformei (**Owner**, **Admin**, și așa mai departe) sunt atribuite în [People](/docs/product/roles-and-permissions) sau sunt cartografiate cu SAML [Role Attribute](/docs/product/sso/overview#membership-roles-from-saml).

În mod separat, sincronizarea titlului de loc de muncă și a tipului de angajat ajută platforma să atribuie politici și să efectueze revizuiri semnificative ale accesului:

- **Titlul locului de muncă** → titlul profilului (de exemplu, Inginer de software) - **Tipul angajatului** → contextul tipului de loc de muncă (de exemplu, Full-time, Contractor)

1. În centrul de administrare Microsoft Entra, mergeți la **Identitate** → **Utilizatori** → **Toți utilizatorii** 2. Selectați utilizatorul pe care doriți să-l actualizați 3. faceți clic pe **Edit proprietăți**, apoi deschideți fila **Informații despre locurile de muncă** 4. setați câmpul **Titlu loc de muncă** 5. setați câmpul **Tip de angajat** dacă îl utilizați 6. faceți clic pe **Salvați** 7. așteptați următorul ciclu de furnizare Enter (sau reîncepeți furnizarea) pentru ca valorile să apară în platformă

:::Tip Păstrați titlurile de locuri de muncă și tipurile de locuri de muncă coerente în întreaga echipă (evitați variațiile de formă liberă, cum ar fi Eng, SWE, Inginer pentru același rol), astfel încât accesul la recenzii grupul de persoane curat. :::

## Troubleshooting

### Test Connection fails

- **Cause**: The SCIM endpoint URL or bearer token is incorrect, or a firewall is blocking the connection
- **Solution**: Verify the endpoint URL includes the full path (ending in `/scim/2.0`). Re-generate the bearer token in the platform if needed. Ensure your network allows outbound HTTPS from Entra ID to your the platform instance.

### Users not being provisioned

- ** Cauza**: Utilizatorii sau grupurile nu sunt atribuite aplicației de întreprindere sau provisionarea nu este activată - **Soluție**: Verificați dacă utilizatorii sunt atribuiți sub **Utilizatori și grupuri** și dacă **Starea provisionării** este setată la **În**

### Provisioning errors in logs

- **Cause**: Attribute mapping conflicts or missing required attributes
- **Solution**: Check the **Provisioning logs** in Entra ID for specific error messages. Ensure `userName` is mapped to a unique, non-empty value (typically `userPrincipalName` or `mail`)

### Users not deactivated after removal

- **Cauza**: Entra ID poate continua să proceseze modificarea sau utilizatorul a fost șters cu ușurință - **Soluție**: Verificați jurnalele de provisioning pentru evenimentul deprovisioning.Entra ID procesează modificări în timpul următorului ciclu de sincronizare (aproximativ la fiecare 40 de minute). Pentru efect imediat, declanșați o sincronizare manuală făcând clic pe **Restart provisioning** în pagina Provisioning.

### Duplicate users

- **Cause**: The `userName` in Entra ID doesn’t match an existing the platform user’s email
- **Solution**: Ensure the attribute mapped to `userName` matches the email format used in the platform. You may need to adjust the mapping to use `mail` instead of `userPrincipalName`.

## Combining with SSO

Pentru cea mai bună experiență, combinați provizionarea SCIM cu SAML SSO:

1. **SCIM** gestionează ciclul de viață al utilizatorului – crearea și dezactivarea automată a conturilor 2. **SAML SSO** gestionează autentificarea – utilizatorii se conectează cu acreditările Microsoft

Acest lucru înseamnă că utilizatorii obțin automat conturile platformei atunci când se alătură organizației dvs. și pierd accesul atunci când părăsesc, fără a fi nevoie de gestionarea manuală a contului.

- [Microsoft Entra ID SSO](/docs/product/sso/microsoft-entra-id) — Setarea SAML SSO alături de provisionarea SCIM — [SCIM Overview](/docs/product/scim/overview) — Comparați modurile de sincronizare Native și Bridge