Principii IAM și Control Acces
RBAC server-side, izolare tenant, roluri platformă și politici de acces
Modelul de Control al Accesului
Platforma SSM.ro implementează controlul accesului la nivel de server-side application și database query layer, nu la nivel de UI. Interfața grafică reflectă permisiunile utilizatorului din motive de uzabilitate (meniuri, butoane și câmpuri sunt ascunse când nu sunt aplicabile), dar UI-ul nu este granița de aplicare; fiecare cerere este autorizată independent pe server înainte ca orice date să fie returnate.
Aplicare RBAC
- Autentificarea este aplicată server-side la fiecare cerere — nicio cerere nu ajunge la o acțiune applicativă fără o sesiune validă
- Autorizarea este efectuată server-side pe baza rolului utilizatorului autentificat și a organizației din care face parte — ocolirea UI-ului (de ex. apeluri directe la endpoint-uri) nu ocolește verificarea de rol
- Izolarea tenant este aplicată la nivelul query-urilor bazei de date — fiecare query pe o resursă scoped la tenant este automat constrânsă la tenantul curent, astfel un utilizator nu poate citi sau scrie date aparținând altui tenant, indiferent de forma cererii
- Verificarea subdomain-ului oferă o verificare server-side suplimentară că utilizatorul autentificat operează în cadrul propriului tenant
Izolarea Tenant (Multi-Tenant)
Platforma SSM.ro izolează tenantii prin două mecanisme complementare aplicate la fiecare cerere:
1. Identificare Tenant prin Subdomain
- Fiecare organizație (tenant) accesează platforma pe un subdomain dedicat — pe
*.appssm.roîn modelul Partajat, respectiv pe subdomenii aleclientdomain.extîn modelul Enterprise - Fiecare cerere primită este inspectată la nivelul aplicației, iar subdomainul solicitant este mapat la identificatorul de tenant corespunzător
- Cererile care ajung pe un subdomain ce nu corespunde unui tenant valid sunt respinse
2. Partiționare Logică a Datelor per Tenant
- Fiecare înregistrare aparținând unui tenant poartă un identificator de tenant ca parte a datelor sale
- Aplicația stabilește tenantul activ din subdomain la începutul fiecărei cereri și constrânge tot accesul ulterior la date la acel identificator de tenant
- Operațiunile de citire și scriere pe date scoped la tenant sunt transparent restricționate la tenantul activ — datele unui alt tenant nu pot fi returnate, modificate sau șterse, indiferent de forma cererii
Proprietăți de Aplicare
- Toate verificările de restricție tenant sunt efectuate server-side — UI-ul nu este granița de aplicare
- Tenantul activ este rezolvat înainte ca rolul și permisiunile utilizatorului să fie evaluate — un utilizator nu poate opera în afara tenantului căruia îi aparține, nici cu roluri elevate
- Autentificarea este aplicată la fiecare cerere înainte de accesul la date — o cerere neautentificată nu ajunge la niciun date de tenant
- Granițele cross-tenant sunt independente de UI și nu pot fi ocolite prin apeluri directe la endpoint-urile platformei
Catalogul Rolurilor
Platforma SSM.ro structurează accesul în jurul unui cont comercial, care poate conține una sau mai multe organizații. Rolul Super Utilizator este deținut la nivelul contului comercial. Rolurile Utilizator, Control/Audit și Personal Angajat sunt atribuite per organizație — o persoană poate deține roluri diferite în organizații diferite din același cont comercial.
| Rol | Nivel | Operațiuni autorizate |
|---|---|---|
| Super Utilizator | Cont comercial | Toate operațiunile rolului Utilizator, plus: creare și gestionare organizații; atribuire roluri utilizatorilor în organizații; adăugare/eliminare utilizatori; transfer proprietate cont comercial; ștergere cont comercial |
| Utilizator | Per organizație | Acces la interfața de management al organizației (angajați, posturi, organigramă, rapoarte); adăugare/eliminare angajați și documente; acces la toate documentele din grupele de acces atribuite |
| Control / Audit | Per organizație | Vizualizare listă angajați; vizualizare organigramă; vizualizare și descărcare documente aprobate și revizii anterioare |
| Personal Angajat (Personal Employee) | Per organizație | Acces la documente personale atașate lor; completare/semnare documente adresate lor; acces la documente ce vor necesita semnătura lor în viitor; acces la documente deja semnate |
Notă: O persoană poate deține roluri diferite în organizații diferite. Lista utilizatorilor specifici și atribuirile de rol per organizație din contul comercial al clientului sunt gestionate de propriul Super Utilizator al clientului.