Ce document académique est destiné aux étudiants de l'enseignement supérieur, notamment ceux du BTS CGO 2A, et s'inscrit dans le cadre de l'organisation des systèmes d'information. Il offre une fiche de révision détaillée sur le Modèle Organisationnel des Données (MOD) et les différentes approches de gestion des autorisations d'accès.
Il couvre les notions suivantes :
- Le MOD et les droits d'accès (CRUD) ;
- La gestion des droits : niveaux base de données et applicatif (RBAC, DAC) ;
- Les bases de données utilisateurs ;
- Les annuaires LDAP et les services d'authentification unique (SSO).
Modélisation Merise : Fiche de révisions MOD et autorisations
Télécharger PDFLe Modèle Organisationnel des Données (MOD)
Le Modèle Organisationnel des Données (MOD) est tourné vers la gestion des droits des utilisateurs sur une base de données. C’est une reprise directe du MCD (Modèle Conceptuel de Données) correspondant, au sein duquel on précise les droits d’un profil d’utilisateurs (comme un acteur ou un poste de travail). Ces acteurs internes sont les mêmes que ceux que l'on retrouve dans le modèle de flux (MF) et le modèle organisationnel des traitements (MOT et MOTA).
On rédige un MOD par acteur interne. Les droits sont précisés :
- soit à côté de chaque entité et association ;
- soit en lieu et place des propriétés (respectivement propriétés portées) des entités (respectivement association).
En BTS CGO, on retrouve également les appellations "modèle des vues" et "modèle CIMS" (CIMS étant un sigle spécifique au programme de BTS CGO). Notez que, lorsqu’un programmeur parle de "vue", il ne parle absolument pas de MOD. Il parlera en règle générale de vue au sens de l’architecture MVC (Modèle-Vue-Contrôleur), concept qui est hors programme ici. Cette terminologie n’est donc ni générique ni appropriée pour le MOD, mais elle est à retenir dans ce contexte spécifique.
On distingue les droits suivants, souvent désignés par l'acronyme CRUD :
- Création (Create) : droit d’effectuer une requête de type INSERT, sous-entendant la création d’un enregistrement (d’un « tuple ») ;
- Interrogation (Read) : droit d’effectuer une requête de type SELECT, sous-entendant le droit de lecture, de récupération d’enregistrements ;
- Modification (Update) : droit d’effectuer une requête de type UPDATE, sous-entendant le droit de modifier un enregistrement ;
- Suppression (Delete) : droit d’effectuer une requête de type DELETE, sous-entendant le droit de supprimer un enregistrement.
N.B. : Le MOD peut se déduire du MOTA (Modèle Organisationnel des Traitements Automatisés) dans la mesure où l’acteur interne doit pouvoir effectuer les actions décrites dans le MOTA.
Ci-après un exemple de MOD pour un service de facturation :
Exemple : Poste de travail - Service facturation
- Consulter les informations clients (fiche client, liste des clients) ;
- Consulter une ou plusieurs commandes ;
- Modifier l’état d’une commande (entité Commande) mais pas son détail (Ligne commande) ;
- Consulter les informations produits (fiche produit, liste des produits).
La gestion des droits d'accès
Le MOD part de l'hypothèse que les droits des utilisateurs sont gérés au niveau de la base de données. Il existe en effet des requêtes SQL (de type GRANT) permettant de spécifier des droits sur les tables. Cependant, en réalité, les droits sont rarement gérés à ce niveau. On se contente le plus souvent de sécuriser l’accès à la base de données (avec un ou plusieurs comptes utilisateurs) de sorte que seuls le ou les administrateurs de la base puissent s’y connecter. Les droits des utilisateurs sont généralement gérés "applicativement", c’est-à-dire via une application logicielle, à l'aide de divers procédés.
Intéressons-nous à présent à des méthodes de gestion des droits plus réalistes.
Les concepts RBAC (Role-Based Access Control) et DAC (Discretionary Access Control)
RBAC (Role-Based Access Control)
Le contrôle d’accès par rôle est un procédé usuel permettant de restreindre l’accès aux fonctionnalités d’un logiciel. Ces restrictions sont établies en fonction du rôle de l’utilisateur, c'est-à-dire en fonction du ou des profils de l’utilisateur (exemple : profils « utilisateur », « modérateur » et « administrateur » sur un forum). Ces restrictions d’accès peuvent porter :
- sur des interfaces utilisateurs (des écrans utilisateurs), encore appelées IHM pour Interfaces Homme-Machine (ou encore GUI en anglais, pour Graphical User Interface). Autrement dit, l’affichage dépend du profil de l’utilisateur ;
- sur des ressources (fichiers et autres données) ;
- sur des traitements (éventuellement qualifiés de services). Autrement dit, si l’utilisateur dispose d’un profil (rôle) spécifique, il sera ou non autorisé à procéder à une manipulation particulière (exemple : création d’une facture, export du Fichier des Écritures Comptables, génération de la liasse fiscale...).
Finalement, la méthode RBAC fonctionne globalement comme suit :
- on dispose d’utilisateurs et de profils d’utilisateurs ;
- éventuellement, chaque profil est constitué de droits ;
- lorsqu’un utilisateur s’authentifie (formulaire de connexion), des informations le concernant sont mises en session ;
- lorsqu’un utilisateur tente d’accéder à une interface, celle-ci est potentiellement calibrée en fonction du ou des profils de l’utilisateur ;
- lorsqu’un utilisateur tente d’accéder à une ressource, on lui autorise ou refuse l’accès en fonction de son ou de ses profils ;
- lorsque l’utilisateur tente de procéder à une manipulation, on lui autorise ou refuse l’accès en fonction de son ou de ses profils.
Note sur les sessions : Une session désigne une information temporaire stockée côté serveur, qui expire après un certain délai. Les sessions ne doivent pas être confondues avec les informations stockées temporairement côté client (comme les cookies dans un navigateur).
DAC (Discretionary Access Control)
Le contrôle d’accès discrétionnaire vient compléter la méthode RBAC. Il permet également de restreindre l’accès aux fonctionnalités d’un logiciel. Cependant, les accès ne dépendent plus du ou des profils d’un utilisateur, mais directement de l’utilisateur lui-même. À la différence de la méthode RBAC, les droits ne sont plus affectés aux profils mais à l’utilisateur, d’où l’emploi du terme "discrétionnaire".
En conclusion, les méthodes RBAC et DAC fournissent un mécanisme de gestion de droits plus riche que celui décrit par les MOD, entre autres en ce qu’elles ne se cantonnent pas à la simple gestion de droits de création, modification, interrogation et suppression de données dans une base de données.
Base de données utilisateurs pour la gestion des droits
Afin de mettre en œuvre les méthodes RBAC et DAC, il est nécessaire de stocker les informations relatives aux utilisateurs, aux profils et aux droits. Pour ce faire, une méthode classique consiste à stocker ces informations dans une base de données utilisateurs, dont une implémentation possible pourrait être un Modèle Conceptuel de Données (MCD) spécifique.
On remarquera que, si la mise en œuvre des restrictions peut s’avérer complexe, le stockage des informations relatives aux droits est tout à fait trivial.
Sécurité des mots de passe : En tant que bon informaticien, on ne stocke normalement jamais les mots de passe en clair dans une base de données. En pratique, seul l’utilisateur connaît son mot de passe. Seul son haché est stocké en base.
Définition du haché : Un haché est une "image" d’un mot de passe, calculée à partir d’une fonction de hachage. Une fonction de hachage est normalement non inversible, ce qui signifie qu’on ne peut pas recalculer le mot de passe d’origine à partir de son haché (exemples : MD5, SHA-1, SHA-256).
Annuaires LDAP (Lightweight Directory Access Protocol)
Un annuaire LDAP est un dispositif logiciel fournissant des services centralisés. Sur un réseau, un tel annuaire permet l’accès à des informations partagées (liste de ressources, liste de postes utilisateurs, etc.). Les annuaires LDAP respectent un certain nombre de standards et fournissent notamment un service centralisé d’identification et d’authentification. Les annuaires LDAP les plus connus sont sans conteste l’Active Directory (Microsoft) et OpenLDAP (solution libre).
En outre, c’est majoritairement au moyen d’un annuaire LDAP que la gestion des utilisateurs, des accès et des authentifications est centralisée sur le réseau d’une organisation (exemples : établissements scolaires, entreprises).
Services d’authentification unique (SSO - Single Sign-On)
Un service d’authentification unique, appelé service SSO (Single Sign-On), permet la centralisation des authentifications. Ces services sont fréquemment utilisés sur le web. Tout comme avec un annuaire LDAP, un service SSO consiste, pour une application logicielle, à déléguer l’authentification des utilisateurs à un dispositif extérieur au logiciel. Il existe divers protocoles SSO (exemples : CAS, OAuth).
Questions Fréquentes (FAQ)
Q : Quelle est la principale différence entre le MOD et les méthodes RBAC/DAC ?
R : Le MOD se concentre sur la gestion des droits CRUD (Création, Lecture, Modification, Suppression) directement sur les données d'une base de données pour différents profils d'utilisateurs. Les méthodes RBAC (Role-Based Access Control) et DAC (Discretionary Access Control), quant à elles, offrent un contrôle d'accès plus riche et plus granulaire, géré au niveau applicatif. Elles peuvent restreindre l'accès à des interfaces, des ressources ou des traitements spécifiques, non seulement par profil (RBAC) mais aussi directement par utilisateur (DAC).
Q : Pourquoi les droits sont-ils rarement gérés directement au niveau de la base de données ?
R : Bien que SQL permette de gérer les droits (via des requêtes GRANT), il est plus courant de sécuriser l'accès à la base de données elle-même pour les administrateurs uniquement. La gestion fine des droits des utilisateurs est généralement déléguée à l'application logicielle, car cela offre plus de flexibilité, de contrôle et de complexité adaptée aux besoins métier, au-delà des simples opérations CRUD.
Q : Quel est le rôle des annuaires LDAP et des services SSO ?
R : Les annuaires LDAP (Lightweight Directory Access Protocol) et les services SSO (Single Sign-On) sont des solutions qui centralisent l'identification et l'authentification des utilisateurs. Un annuaire LDAP est souvent utilisé pour gérer les utilisateurs et leurs droits d'accès au sein d'un réseau d'organisation, tandis qu'un service SSO permet aux utilisateurs de s'authentifier une seule fois pour accéder à plusieurs applications ou services, améliorant ainsi l'expérience utilisateur et la sécurité en centralisant les processus d'authentification.