@ascencia/id-rbac
v0.1.0-rc.1
Published
Moteur de résolution des rôles et permissions d'Ascencia ID — isomorphe, zéro dépendance.
Downloads
102
Readme
@ascencia/id-rbac
Le moteur de permissions d'Ascencia ID : résolution des rôles, héritage, refus explicites, et portées.
bun add @ascencia/id-rbacC'est une bibliothèque pure — aucune entrée/sortie, aucune dépendance. On lui donne un état (compte, zone, application, rôles détenus), elle rend un contexte effectif : ce que la personne a le droit de faire, et par quel rôle.
import { resolve } from '@ascencia/id-rbac';
const context = resolve({ account, realm, application, roles, assignments });
context.allowed; // la politique d'accès laisse-t-elle entrer ?
context.reason; // sinon, pourquoi — `app_access_denied`, …
context.permissions; // les permissions effectives
context.trace; // d'où vient chacuneTrois choses à savoir
Un deny explicite gagne toujours, quel que soit le rôle qui l'accorde par
ailleurs. C'est ce qui permet de retirer un droit à quelqu'un sans démonter sa
hiérarchie de rôles.
Les permissions sont partitionnées par portée — plateforme, zone,
application. Un * accordé sur une application ne fuit jamais vers une autre.
La trace n'est pas du confort de développement. Elle alimente le simulateur de la console : « pourquoi cette personne a-t-elle ce droit ? » est la question qu'on se pose six mois plus tard, et une réponse binaire n'y suffit pas.
Vous n'avez normalement pas à installer ce paquet directement :
@ascencia/id-core et
@ascencia/id-server en
dépendent.
MIT
