# Contrôle d'accès à base de rôles

Le contrôle d'accès basé sur les rôles (« Role-Based Access Control » (RBAC) en anglais) est un modèle de contrôle d'accès à un système d'information dans lequel chaque décision d'accès est basée sur le rôle auquel l'utilisateur est associé. La typologie et la granularité des rôles découlent généralement de la structure de l'entreprise ou de l'organisation ayant adopté ce système. Les utilisateurs exerçant des fonctions similaires peuvent être regroupés sous le même rôle. Un rôle, déterminé par une autorité centrale, associe à un sujet des autorisations d'accès sur un ensemble d'objets (des parties d'un système d'information par exemple). Une étude du NIST a montré que le modèle RBAC convenait à la majorité des besoins pour les entreprises et organisations.
La modification des contrôles d'accès n'est pas nécessaire chaque fois qu'une personne se joint à une organisation ou la quitte, tant que les bonnes pratiques de gestion du cycle de vie des identités sont respectées.
Ce modèle est également appelé contrôle d'accès non discrétionnaire (« nondiscretionary access control » en anglais) et constitue une nouvelle possibilité de choix entre les systèmes à contrôle d'accès obligatoire (MAC) et contrôle d'accès discrétionnaire (DAC). On notera qu'un système DAC avec des groupes (tel qu'il est implémenté dans les systèmes de fichier POSIX) se rapproche fonctionnellement d'un RBAC.

## Vérification des droits et privilèges

Le contrôle d’accès basé sur les rôles peut être géré au sein d’un système UNIX afin que les utilisateurs puissent obtenir les droits nécessaires pour créer, modifier ou supprimer des fichiers au sein d’un système.
Par exemple, le groupe root, qui est un super-utilisateur, va pouvoir modifier une grande partie, voire l’ensemble des fichiers. Un utilisateur dit lambda pourra visualiser au sein d' /etc/group le groupe auquel il appartient afin de connaître ses droits. Pour connaître ses droits, il devra se documenter au sein de son organisation dans le but de connaitre les commandes qui lui sont disponibles de par son groupe.
L’utilisateur peut également visualiser au sein des fichiers les droits en utilisant la commande ls -l dans le répertoire courant.
Par exemple :
drwxr-x--x 6 user equipe 4096 2020-12-04 10:09 Bureau
Où :
* Le premier caractère, d, indique qu'il s'agit d'un répertoire
* Les trois caractères suivants, rwx, indiquent les droits du propriétaire user :
** r indique un droit de lecture (read)
** w indique un droit d'écriture (write)
** x indique un droit d'exécution (execute)
* Les trois caractères suivants, r-x, indiquent les droits du groupe equipe :
** r indique un droit de lecture (read)
** - , à la place du caractère w tel que vu ci-dessus, indique l'absence de droit d'écriture (write)
** x indique un droit d'exécution (execute)
* Les trois caractères suivants, --x, indiquent les droits des utilisateurs qui ne sont ni user ni equipe :
** --x indique donc un droit en exécution, mais ni en lecture, ni en écriture.

## Les avantages du contrôle basé sur les rôles

Dans un premier temps il permet la réduction du temps et des efforts nécessaires pour allouer des ressources. Cela facilite beaucoup l’automatisation et l’allocation de ressources car la personne visée se verra automatiquement affecter les droits et accès dont elle aura besoin. En effet, le système est intelligent et il lui donnera automatiquement le rôle approprié pour finalement lui accorder le droit d’accès à son travail.
De plus, cela est très utile pour l’intégration d’un nouvel employé au sein d’une entreprise, car celui-ci va directement pouvoir obtenir les droits liés à son travail et son rôle au sein de l’équipe. Ses droits vont alors être liés à son travail tout le long de son expérience professionnelle et l’accompagneront jusqu’à sa démission potentielle correspondant à la fin de tous droits possibles. L’autre avantage du contrôle basé sur les rôles est du côté de l’organisation. Elle peut visualiser, auditer et suivre les rôles et l’application de bonnes pratiques mises en place par l’administrateur système. L’audit se fera au niveau du rôle au lieu de s’intéresser au cas par cas. Lorsque l’on porte ce type de problématique à grande échelle, le contrôle basé sur les rôles ne peut être qu’un grand avantage pour l’entreprise.