• Aucun résultat trouvé

II.2 Gestion des accès

II.2.2.3 Role Based Access Control (RBAC)

Contrairement au modèle IBAC où les habilitations sont octroyées directement à l’utilisateur, dans le modèle RBAC, élaboré par le National Institute of Standards and Technology (NIST) à partir de 1992 [9], les habilitations sont affectées à des rôles. La gestion des habilitations est alors simplifiée. En effet, par exemple, lors de l’enregistrement d’un nouvel utilisateur, il suffit de lui attribuer les rôles nécessaires à la réalisation de sa mission au lieu de lui octroyer l’ensemble des habilitations sous-jacentes. Ainsi, dans l’exemple des rôles applicatifs, lors de sa prise de fonction, un gestionnaire se voit attribuer le rôle « Intendance unité » au travers de son compte utilisateur. Il a alors accès en lecture, en saisie aux commandes de l’unité pour l’année en cours.

Par ailleurs, le NIST propose plusieurs déclinaisons du modèle RBAC 12[12]. Le modèle

RBAC hiérarchique (HRBAC : « hierarchical role based access control » en anglais) prend en compte les liens de parenté entre rôles. Ainsi lorsqu’une habilitation est octroyée ou enlevée à un rôle parent, les rôles fils en héritent et acquièrent, ou respectivement perdent, cette habilitation. HRBAC supporte deux types de hiérarchie. La variante générale (« General Hierarchical RBAC » en anglais) accepte des héritages ascendants et descendants multiples. Par opposition, dans la

[12] D. F. Ferraiolo , R. Sandhu , S. Gavrila , D. R. Kuhn , R. Chandramouli. Proposed NIST standard for role-based access control. ACM Transactions on Information and System Security v.4 n.3, pages 224-274, 2001

variante limitée (« Limited Hierarchical RBAC » en anglais) un rôle ne peut hériter que d’un seul parent. Dans le cadre de l’exemple des rôles applicatifs, le rôle « Lecture budget unité » est commun aux profils « Gestionnaire » et « Directeur d’unité ». Ce rôle est donc nécessaire lorsque les rôles « Intendance unité » et « Responsable unité » sont affectés. La modélisation de ces rôles peut alors être simplifiée en définissant « Lecture budget unité » comme rôle parent de « Intendance unité » et « Responsable unité ». Seuls ces deux derniers rôles sont alors octroyés, car ils héritent des habilitations du rôle parent « Lecture budget unité ».

La seconde déclinaison du modèle RBAC permet la gestion des conflits d’intérêts induits par des rôles incompatibles octroyés à un même utilisateur. En effet, le modèle RBAC avec contraintes (CRBAC : « constrained role based access control » en anglais) assure la séparation des responsabilités (SoD : « Segregation of Duty » en anglais) en empêchant le cumul d’habilitations contradictoires. Ainsi, dans les exemples de rôle décrits précédemment, un compte ne peut pas être associé en même temps aux rôles « Intendance unité » et « Responsable unité » qui représentent deux fonctions dans l’organisme qui ne peuvent être exercées par une seule personne au sein d’une unité. Par ailleurs, la mise en œuvre de la séparation statique des responsabilités (en anglais : « static separation of duty ») implique la définition de règles d’affectation de rôles. L’administrateur responsable des accès ne peut alors pas affecter des rôles incompatibles. Ainsi un utilisateur appartenant à un rôle ne peut pas se voir attribué un rôle rendu interdit par ces règles. La séparation dynamique des responsabilités (en anglais : « dynamic separation of duty ») permet de ne pas retirer un rôle en cas de non-respect des règles, mais simplement de le révoquer temporairement au moment où l’utilisateur demande à se connecter à la ressource.

La mise en place d’un système de contrôle d’accès basé sur le modèle RBAC au sein d’une organisation requiert la mise en œuvre d’une stratégie de définition des rôles (en anglais : « role engineering ») qui n’est pas une tâche aisée. Il existe deux principaux types d’approche « bottom- up » (du bas vers le haut) et « top-down » (du haut vers le bas) complétés par des approches hybrides.

Pour les organisations disposant déjà d’un système de gestion des droits d’accès la démarche bottom-up permet de construire des rôles en examinant les habilitations existantes. Des outils de rolemining permettent d’accélérer cette recherche 13[13]. Ils exploitent des algorithmes de

datamining, chacun ayant un objectif différent, tel que minimiser le nombre de rôles découverts, établir les hiérarchies de rôles ou découvrir un nombre faible de rôles possédant le plus grand dénominateur commun d’habilitations. Cependant les droits inutilisés résiduels peuvent perturber

[13] M. Frank, J. M. Buhmann , D. Basin. On the definition of role mining. Proceeding of the 15th ACM symposium on

cette analyse et mener à des définitions de rôles qui n’ont aucune correspondance avec des concepts métier.

A l’inverse, la démarche top-down étudie par itérations successives les fonctions métiers pour en déduire les habilitations et les rôles inhérents. La difficulté réside alors dans l’exhaustivité et la granularité des rôles. En effet, des rôles trop larges admettent trop de droits et des rôles trop restreints vont augmenter la difficulté d’administration.

L’approche hybride consiste à rechercher les rôles par l’approche bottom-up et les affiner ensuite par confrontation avec les informations collectées par l’approche top-down.

Le modèle RBAC est aujourd’hui un standard qui permet notamment la mise en conformité vis-à-vis de la loi Sarbanes-Oxley (cf. paragraphe « cadre réglementaire »). Il s’adresse plus particulièrement aux organisations dont la définition des métiers et des missions est figée et évolue peu. Dans le cas contraire, des exceptions seront nécessaires pour autoriser des accès spécifiques ou temporaires. Cette situation implique la mise en place d’une liste annexe de contrôle d’accès, comme dans le modèle IBAC. Il n’est alors plus possible de se baser sur les définitions des rôles et des profils pour déterminer qui possède quel type d’accès sur quelle ressource.