# Microsoft Entra ID SSO

Acest ghid vă ghidează prin setarea înregistrării unice SAML între Microsoft Entra ID (fost Azure Active Directory) și platformă.

## Prerequisites

- Microsoft Entra ID administrator access (or Application Administrator role)
- the platform organization administrator access
- Your the platform domain (e.g., `probo.example.com`)
- Access to your DNS settings for domain verification

## Prepare the platform Information

Înainte de a configura ID-ul Microsoft Entra, colectați următoarele detalii despre furnizorul de servicii de platformă:

| Field         | Value                                                            |
| ------------- | ---------------------------------------------------------------- |
| **ACS URL**   | `https://your-probo-domain.com/api/connect/v1/saml/2.0/consume`  |
| **Entity ID** | `https://your-probo-domain.com/api/connect/v1/saml/2.0/metadata` |

Replace `your-probo-domain.com` with your actual the platform domain.

## Domain Verification

Înainte de a configura orice altceva, trebuie să verificați proprietatea domeniului:

1. Log in to the platform as an organization administrator
2. Go to **Organization Settings** → **Authentication** → **SAML**
3. Click **Verify Domain** (if no configurations exist yet, this option will be available)
4. Copy the provided TXT record value
5. Add a TXT record to your domain's DNS settings:
   ```
   Type: TXT
   Name: _probo-domain-verification.your-company.com
   Value: [Verification token from Probo]
   TTL: 300 (or your DNS provider's default)
   ```
6. Așteptați pentru propagarea DNS (de obicei 5-15 minute) 7.În platformă, faceți clic pe **Complet Verificare** 8.Dacă este reușit, statutul domeniului va apărea ca "Verificat"

## Configure Microsoft Entra ID

1. Sign in to the [Microsoft Entra admin center](https://entra.microsoft.com/)
2. Go to **Identity** → **Applications** → **Enterprise applications**
3. Click **New application** → **Create your own application**
4. Enter `Probo` as the application name
5. Select **Integrate any other application you don't find in the gallery (Non-gallery)**
6. Click **Create**
7. In the application overview, go to **Single sign-on** → select **SAML**
8. In **Basic SAML Configuration**, click **Edit** and configure:

   | Field                                          | Value                                                            |
   | ---------------------------------------------- | ---------------------------------------------------------------- |
   | **Identifier (Entity ID)**                     | `https://your-probo-domain.com/api/connect/v1/saml/2.0/metadata` |
   | **Reply URL (Assertion Consumer Service URL)** | `https://your-probo-domain.com/api/connect/v1/saml/2.0/consume`  |
   | **Relay State**                                | `[SAML Configuration ID]` (optional - see note below)            |
   | **Sign on URL**                                | `https://your-probo-domain.com` (optional)                       |

   **Important**: Starea de relay** este opțională, dar dacă doriți să susțineți fluxurile de conectare inițiate de IdP, trebuie să fie setată la ID-ul exact de configurare SAML (nu un locholder). Dacă setarea este incorectă, SSO nu va funcționa. Veți obține acest ID după crearea configurației SAML în platformă.

9. În secțiunea Atributele și revendicările, faceți clic pe Edit și configurați următoarele revendicări:

    | Claim name  | Source attribute |
    | ----------- | ---------------- |
    | `email`     | `user.mail`      |
    | `firstName` | `user.givenname` |
    | `lastName`  | `user.surname`   |

    To add each claim:
    - Click **Add new claim**
    - Enter the claim name (e.g., `email`)
    - Set **Source** to `Attribute`
    - Select the corresponding **Source attribute**
    - Click **Save**

    Also verify that the **Unique User Identifier (Name ID)** is set to `user.userprincipalname` or `user.mail` with the format `Email address`.

11. În **SAML Certificates**, descărcați **Certificate (Base64)** și copiați: - **Login URL** (aceasta este adresa URL IdP SSO) - **Microsoft Entra Identifier** (aceasta este ID-ul entității IdP)

12. Du-te la **Utilizatori și grupuri** 13. faceți clic pe **Add user/group** 14. selectați utilizatorii sau grupurile care ar trebui să aibă acces la platformă 15. faceți clic pe **Assign**

## Configure the platform

1. Conectați-vă la platformă ca administrator al organizației 2. Du-te la **Configurări organizaționale** → **Autentificare** → **SAML** 3. Faceți clic pe **Add SAML Configuration** 4. Configurați setările de bază:

   | Field                  | Value              | Notes                            |
   | ---------------------- | ------------------ | -------------------------------- |
   | **Email Domain**       | `your-company.com` | Your organization's email domain |
   | **Enforcement Policy** | `OPTIONAL`         | Recommended for initial setup    |

5. Configurați setările furnizorului de identitate cu valori din Microsoft Entra ID:

   | Field               | Value                          | Notes                                    |
   | ------------------- | ------------------------------ | ---------------------------------------- |
   | **IdP Entity ID**   | `[Microsoft Entra Identifier]` | Copy from Entra ID setup                 |
   | **IdP SSO URL**     | `[Login URL]`                  | Copy from Entra ID setup                 |
   | **IdP Certificate** | `[Certificate (Base64)]`       | Paste the downloaded certificate content |

6. Configure the attribute mappings:

   | Field                    | Value           | Notes                                  |
   | ------------------------ | --------------- | -------------------------------------- |
   | **Email Attribute**      | `email`         | Maps to user email                     |
   | **First Name Attribute** | `firstName`     | Maps to user first name                |
   | **Last Name Attribute**  | `lastName`      | Maps to user last name                 |
   | **Role Attribute**       | `[Leave empty]` | Optional; map to send `OWNER`, `ADMIN`, `EMPLOYEE`, or `VIEWER` |

7. Configure user settings:

   | Field           | Value     | Notes                                             |
   | --------------- | --------- | ------------------------------------------------- |
   | **Auto Signup** | `Enabled` | Allows new users to sign up automatically via SSO |

8. Click **Save Configuration**
9. **Copy the SAML Configuration ID** that appears after saving (e.g., `saml_config_1a2b3c4d`)

## Update Entra ID Relay State

Reveniți la Microsoft Entra ID pentru a activa autentificarea inițiată de IdP:

1. Du-te la aplicația dvs. Enterprise în centrul de administrare Entra 2. Click **Single sign-on** → **Edit** Basic SAML Configuration 3. În câmpul **Relay State**, introduceți ID-ul de configurare SAML 4. Click **Save**

## Troubleshooting

### "AADSTS75005: Cererea nu este un mesaj valid de protocol Saml2" Eroră

- **Cause**: Incorrect Reply URL or Entity ID configuration
- **Solution**: Verify that the Reply URL and Entity ID in Entra ID exactly match your the platform configuration:
  - Reply URL: `https://your-probo-domain.com/api/connect/v1/saml/2.0/consume`
  - Entity ID: `https://your-probo-domain.com/api/connect/v1/saml/2.0/metadata`

### "AADSTS50105: User not assigned to application" Error

- ** Cauza**: Utilizatorul nu a fost atribuit aplicației Enterprise a platformei - **Soluție**: Du-te la aplicația Enterprise → **Utilizatori și grupuri** → atribuie utilizatorului sau unui grup care conține utilizatorul

### "AADSTS700016: Application not found" Error

- ** Cauza**: ID-ul entității incorect din platformă sau din aplicație nu este configurat corect - **Soluție**: Verificați că ID-ul entității Microsoft Entra se potrivește cu ID-ul entității IdP configurat în platformă

### Attributes Not Mapping

- **Cause**: Claims not configured correctly in Entra ID
- **Solution**: Verify that custom claims are configured with exact names: `email`, `firstName`, `lastName`. Check under **Single sign-on** → **Attributes & Claims**

### "Invalid RelayState" Error

- **Cauza**: Configurarea incorectă a stării de relay - **Soluție**: Asigurați-vă că starea de relay este fie goală, fie setată la ID-ul exact de configurare SAML de pe platformă

### Debugging Steps

#### Check Entra ID Sign-in Logs

1. Du-te la Centrul de administrare Entra → **Identitate** → **Monitorizare & sănătate** → **Loguri de conectare** 2.Filtrează după aplicația platformei 3.Clic pe o încercare de conectare nereușită pentru a vizualiza detaliile erorilor și recomandările de depanare

#### Test SAML Response

1. În aplicația Enterprise de pe platformă, accesați **Single sign-on** 2. faceți clic pe **Test această aplicație** 3.

## Advanced Configuration

### Custom Claims

To map additional Entra ID user attributes:

1. În aplicația enterprise, accesați **Single sign-on** → **Attributes & Claims** 2. faceți clic pe **Add new claim** 3. Map atributele suplimentare ale directorului după cum este necesar 4.

### Conditional Access

Control access using Microsoft Entra ID Conditional Access policies:

1. Du-te la **Identitate** → **Protecție** → **Acces condiționat** 2. Creați o nouă politică care vizează aplicația platformei 3. Configurează condițiile (localizare, dispozitiv, nivel de risc etc.) 4. Configurează controalele de acces adecvate (grantare, blocare, necesită MFA)

### Group-Based Access

Restrict access using Entra ID groups:

1. În aplicația Enterprise, accesați **Utilizatori și grupuri** 2. alocați grupuri în loc de utilizatori individuali 3. gestionați accesul prin adăugarea/eliminarea utilizatorilor din grupurile alocate

Pentru soluționarea detaliată a problemelor și opțiuni avansate de configurare, consultați ghidul [SSO Overview](/docs/product/sso/overview).