Autentificare și SSO
Autentificare locală, 2FA și SSO — OIDC per organizație (Partajat) și SAML pe domeniu (Enterprise): configurare, flux și reguli de cont
Diferă în funcție de model
Model Partajat (SaaS): SSO prin OIDC, configurat per organizație (tenant) pe subdomeniul propriu. Fiecare organizație poate permite email/parolă + SSO sau SSO exclusiv. 2FA TOTP opțional. Model Enterprise (Dedicat): SSO prin SAML, o singură configurare pentru domeniul principal al clientului. Autentificarea email/parolă rămâne disponibilă pentru conturile externe; accesul la organizații este gestionat intern prin roluri.
Prezentare Generală
SSM.ro suportă autentificare prin Single Sign-On (SSO) federat, cu protocol diferit în funcție de modelul de deployment:
- Model Partajat (SaaS) — OIDC (OpenID Connect), configurat la nivel de organizație (tenant). Fiecare organizație are propriul subdomeniu
*.appssm.roși propria configurare OIDC. SSO-ul este opțional: o organizație poate permite atât autentificarea locală (email/parolă), cât și SSO, sau poate impune SSO exclusiv. - Model Enterprise (Dedicat) — SAML, o singură configurare pentru domeniul principal al clientului (
clientdomain.ext). Autentificarea locală (email/parolă) rămâne disponibilă pentru conturile externe care nu fac parte din furnizorul de identitate. Instalarea dedicată poate găzdui una sau mai multe organizații (pe subdomenii), iar accesul la fiecare organizație este controlat intern prin roluri.
În ambele modele, furnizorul de identitate (IdP) este extern și administrat de organizația clientă.
Furnizori de Identitate Suportați
OIDC (Model Partajat)
SSM.ro este compatibil cu orice IdP conform OIDC standard, inclusiv:
- Microsoft Entra ID (Azure AD)
- Okta
- Google Workspace
- Keycloak
- Orice alt furnizor OIDC conform cu specificația OpenID Connect Core
SAML (Model Enterprise)
SSM.ro este compatibil cu orice IdP conform SAML 2.0, inclusiv:
- Microsoft Entra ID (Azure AD) — SAML
- Okta — SAML
- Active Directory Federation Services (AD FS)
- Keycloak — SAML
- Orice alt furnizor conform cu specificația SAML 2.0
Parametri de Configurare
OIDC — per organizație (Model Partajat)
| Parametru | Descriere |
|---|---|
| Nume | Etichetă afișată utilizatorilor pe butonul de autentificare |
| Client ID | Identificatorul aplicației înregistrate la IdP |
| Client Secret | Secretul aplicației generat de IdP |
| Issuer URL | URL-ul de discovery OIDC al IdP (ex. https://login.microsoftonline.com/{tenant-id}/v2.0) |
| Domenii permise | Lista domeniilor de email autorizate (ex. companie.ro) — conturile cu alte domenii sunt respinse |
SAML — pe domeniul principal (Model Enterprise)
| Parametru | Furnizat de | Descriere |
|---|---|---|
| SP Entity ID | SSM.ro | Identificatorul Service Provider-ului (aplicația SSM.ro) |
| ACS URL | SSM.ro | Assertion Consumer Service — endpoint-ul unde IdP trimite răspunsul SAML |
| IdP SSO URL | Client | Endpoint-ul de SignOn al furnizorului de identitate |
| IdP Entity ID (Issuer) | Client | Identificatorul furnizorului de identitate |
| Certificat de semnare X.509 | Client | Certificatul public cu care se validează semnătura aserțiunilor SAML |
| Mapare NameID / email | Client | Atributul care identifică utilizatorul (ex. adresa de email) |
URI de Redirect / ACS
OIDC Callback (Model Partajat)
La înregistrarea aplicației SSM.ro în IdP, trebuie configurat URI-ul de redirect:
https://{subdomain}.appssm.ro/accounts/auth/oidc/callback?pid={sso_provider_id}{subdomain}— subdomeniul organizației SSM.ro{sso_provider_id}— identificatorul intern al furnizorului SSO, furnizat de SSM.ro la configurare
SAML ACS URL (Model Enterprise)
La înregistrarea aplicației SSM.ro în IdP-ul SAML se configurează ACS URL pe domeniul clientului (cale ilustrativă):
https://clientdomain.ext/accounts/auth/saml/callbackModuri de Autentificare
| Mod | Model | Descriere |
|---|---|---|
| email/parolă + SSO | Partajat (per organizație) | Utilizatorii pot alege între SSO (OIDC) și autentificarea locală (email + parolă) |
| SSO exclusiv | Partajat (per organizație) | Singurul mod permis pentru acea organizație; autentificarea locală este dezactivată |
| SAML + email/parolă (conturi externe) | Enterprise | SAML pe domeniul principal pentru utilizatorii organizației; email/parolă rămâne disponibil pentru conturile externe |
Fluxul de Autentificare OIDC (Model Partajat)
1. Utilizatorul accesează SSM.ro și selectează „Autentificare cu SSO"
│
▼
2. SSM.ro redirecționează utilizatorul la IdP-ul configurat
(authorization endpoint + scope: openid, profile, email)
│
▼
3. Utilizatorul se autentifică la IdP (credențiale organizație, 2FA dacă este configurat)
│
▼
4. IdP redirecționează înapoi la SSM.ro cu codul de autorizare
(callback URI: https://{subdomain}.appssm.ro/accounts/auth/oidc/callback?pid=...)
│
▼
5. SSM.ro schimbă codul de autorizare pe token-uri (ID token + access token)
via back-channel HTTPS (client_id + client_secret)
│
▼
6. SSM.ro validează ID token-ul (semnătură, issuer, audience, expiry)
și verifică domeniul email față de lista domeniilor permise
│
▼
7. Sesiune SSM.ro creată — utilizatorul este autentificatFluxul de Autentificare SAML (Model Enterprise)
1. Utilizatorul accesează SSM.ro pe domeniul clientului și selectează „Autentificare cu SSO"
│
▼
2. SSM.ro (Service Provider) generează o cerere SAML (AuthnRequest)
și redirecționează utilizatorul la IdP SSO URL
│
▼
3. Utilizatorul se autentifică la IdP (credențiale organizație, 2FA dacă este configurat)
│
▼
4. IdP trimite înapoi un SAMLResponse (aserțiune semnată) către ACS URL
(https://clientdomain.ext/accounts/auth/saml/callback)
│
▼
5. SSM.ro validează semnătura aserțiunii cu certificatul X.509 al IdP
(issuer, audience, condiții de validitate, NameID)
│
▼
6. Sesiune SSM.ro creată — accesul la organizații se acordă conform rolurilor utilizatoruluiReguli de Cont
| Regulă | Comportament |
|---|---|
| Restricție domeniu (OIDC) | Conturile cu domeniu de email neautorizat sunt respinse — accesul nu este acordat |
| Provizionare automată | Un cont SSM.ro este creat automat la prima autentificare SSO reușită, dacă nu există deja |
| SSO lock | În modul SSO exclusiv (Partajat), utilizatorii unei organizații nu pot reseta parola locală și accesează platforma doar prin IdP |
| Conturi externe (Enterprise) | Conturile externe care nu fac parte din IdP-ul SAML pot folosi în continuare email/parolă |
| Conturi existente | Conturile locale existente cu același email sunt asociate cu identitatea SSO la prima autentificare SSO |
| Furnizori multipli (OIDC) | O organizație din modelul Partajat poate configura mai mulți furnizori OIDC simultan (ex. un IdP pentru angajați, altul pentru parteneri) |
| Acces la organizații (Enterprise) | Accesul la fiecare organizație din instalarea dedicată este controlat intern prin roluri (RBAC) |
Responsabilități
| Responsabilitate | SSM.ro | Client |
|---|---|---|
| Configurare furnizor SSO (OIDC sau SAML) în platformă | Da | — |
| Înregistrarea aplicației SSM.ro în IdP | — | Da |
| Gestionarea utilizatorilor și a politicilor de acces în IdP | — | Da |
| Disponibilitatea IdP | — | Da (SLA al organizației) |
| Auditarea sesiunilor SSM.ro | Da | — |
Note de Securitate
- Secretele furnizorului SSO (
Client Secretla OIDC; certificatul de semnare la SAML) sunt stocate criptat — nu sunt expuse în interfață după configurare - SSM.ro nu stochează parola utilizatorului în cazul autentificării SSO
- Sesiunile SSM.ro au timeout de 30 de minute de inactivitate, indiferent de sesiunea activă la IdP
- La deconectarea din SSM.ro, sesiunea locală este terminată; deconectarea din IdP este responsabilitatea clientului