Une lib d'authorisation avec gestion des permissions RBAC
En plus du RBAC, il y a aussi une gestion ABAC (via les attributs avec un pseudo langage de matching).
La cerise sur le gateau c'est la gestion du multi-tenant (domains)
La persistence peut se faire dans tout type de base de données et ils possèdent des lib dans quasiment tous les langages.
Explication sur les différents systèmes de gestion des permissions pour une application.
Role Based Access Control (RBAC)
Définition d'un ensemble de rôle ayant le droit d'exécuter des actions sur l'application puis attribution de ces rôles à des utilisateurs.
Exemple: le rôle device-manager
permet de créer les Devices d'une plateforme IoT
Access Control List (ACL)
Définition de listes de permissions rattachées à chaque entitée de l'application. Une permission définie les actions possible sur l'entitée correspondante pour un utilisateur ou un groupe d'utilisateur.
Exemple: l'ACL rattaché au Device abc123
donne le droit à l'utilisateur aschen
de le modifier
Attribute Based Access Control (ABAC)
Définition des permissions en fonction des attributs des entités. Les permissions sont accordées à des utilisateurs ou groupes d'utilisateurs en fonction des valeurs de ces attributs.
Exemple: une règle ABAC autorise la lecture des informations d'un Device uniquement si l'attribut creator
du Device est égal à l'identifiant unique d'un utilisateur