Le contrôle des accès englobe deux processus: la gestion des accès et le contrôle de l'accès à une ressource. Le premier consiste, pour un agent administrateur ou possédant des habilitations particulières, à définir les permissions d'autres agents sur les objets. Le second regroupe les règles effectivement appliquées par le système pour déterminer si l'accès demandé par un agent à un objet est autorisé ou non.
Le système applique le principe de moindre privilège grâce à 3 mécanismes complémentaires portés par les entités discrètes et les ensembles:
Tout objet géré au sein de l'application appartient à un propriétaire pour lequel toutes les opérations possibles (dans le respect des règles du métier) sont autorisées. Par défaut, le propriétaire est l'agent qui crée l'objet dans l'application, mais la propriété d'un objet peut être transférée à un autre agent au cours de son existence.
Ce mécanisme de contrôle est qualifié de discrétionnaire car il est laissé à la discrétion de chaque utilisateur habilité à définir les accès sur un objet donné, au travers d'une liste de contrôle d'accès (ACL pour Access Control List en anglais) portée par chaque objet géré au sein du système. Cette liste définit les permissions des agents pour l'objet lui-même, qui sont allouées localement par tout agent qui possède les habilitations adéquates. Il est alors possible pour un propriétaire ou tout agent auquel on a donné les droits de définir les permissions pour les autres agents sur un objet.
Note : L'habilitation à gérer les ACL est elle-même une permission sur l'objet.
Le contrôle discrétionnaire peut induire un trop grand niveau de complexité dans la gestion des droits d'accès. Le logiciel permet aussi la gestion des habilitations au niveau de grands ensembles d'objet, grâce à une liste de contrôle d'accès par ensembles appelée "SACL" (pour Set Access Control List). Une permission accordée au niveau de l'ensemble est automatiquement reportée à tous les objets qu'il contient.
Les permissions sur les ensembles sont définies par les administrateurs. Ceux-ci possèdent des accès particuliers aux référentiels de sécurité et, au travers des interfaces d'administration, ils définissent les règles applicables pour chaque ensemble (ou type), sous-ensemble et sous-type.
Par exemple, il est possible d'allouer des droits de lecture sur l'ensemble des documents de type "Facture d'achat" au groupe "Finance", et le droit de publier des dossiers aux membres de la cellule "Relation client" en charge du traitement des dossiers entrants.
L'application fournit un jeu de droits d'accès par défaut, qui peut être complété par l'ajout de modules et d'extension.
Les droits d'accès de base sur les objets sont valables pour tous les types d'entités gérées par le système, aussi bien via les listes de contrôle d'accès discrétionnaires (ACL) que les listes d econtrôle par ensemble.
Accès | Autorisation |
---|---|
lire | Accéder aux propriétés de base de l'objet et à un ensemble de propriétés ouvertes à la consultation, dont la liste dépend de l'objet. |
modifier | Modifier les propriétés de base de l'objet et un ensemble de propriétés ouvertes à la modification, dont la liste dépend de l'objet. |
supprimer | Supprimer l'objet. |
Ces droits s'appliquent uniquement sur les ensembles d'objets (ou grands types tels que utilisateurs, documents, dossiers, etc.), en plus des droits de base qui peuvent être alloués sur tous les objets de l'ensemble.
Accès | Autorisation |
---|---|
créer | Ajouter un objet dans l'ensemble |
lister | Lister les objets d'un ensemble |
lire | Accéder aux propriétés de base de tout objet de l'ensemble. |
modifier | Modifier les propriétés de base de tout objet de l'ensemble. |
supprimer | Supprimer tout objet de l'ensemble. |
Ces droits s'appliquent sur les sous-ensembles (ou vues listes).
Accès | Autorisation |
---|---|
lister | Lister les objets d'un sous-ensemble |
lire | Accéder aux propriétés de base de tout objet du sous-ensemble. |
modifier | Modifier les propriétés de base de tout objet du sous-ensemble. |
supprimer | Supprimer tout objet du sous-ensemble. |
Ces droits s'appliquent sur les sous-types des objets permettant une classification par l'utilisateur (par exemple type de document numérique, type de dossier, type d'utilisateur).
Accès | Autorisation |
---|---|
lister | Lister les objets d'un sous-ensemble |
utiliser | Ajouter un objet du sous-type ou attribuer le sous-type à un objet existant |
lire | Accéder aux propriétés de base de tout objet du sous-type. |
modifier | Modifier les propriétés de base de tout objet du sous-type. |
supprimer | Supprimer tout objet du sous-type. |
Ces droits s'appliquent sur les objets pour lesquels l'application utilise des fonctionnalités modulaires :
Accès | Autorisation |
---|---|
Gestion de la sécurité | |
modifier le propriétaire | Redéfinir l'agent propriétaire d'un objet |
modifier les accès | Redéfinir les entrées de liste de contrôle d'accès discrétionnaire d'un objet |
Gestion du cycle de vie | |
publier | Faire passer le statut de l'objet de copie de travail à courant |
clôre | Faire passer le statut de l'objet de courant à conservé |
effacer | Faire passer le statut de l'objet de conservé à résiduel |
restaurer | Faire passer le statut de l'objet de résiduel à conservé |
rouvrir | Faire passer le statut de l'objet de conservé à courant |
Circuit personnalisé | |
modifier le statut | Modifier le sous-statut d'un objet, selon un circuit défini autorisant ou non certaines transitions (voir module associé). La transition peut s'accompagner d'un changement dans le statut principal et dans ce cas le droit correspondant sera contrôlé |
Gestion des relations | |
ajouter une relation | Ajouter une relation entre l'objet et un autre objet de l'application. Les droits de modification ou de suppression d'une relation existante sont gérés par le contrôle d'accès portant sur la relation elle-même |
Gestion des événements | |
lister les événements | Lister les événements de la piste d'audit en lien avec l'objet |
Gestion des annotations | |
annoter | Lister les annotations de l'objet, à créer de nouvelles notes et à répondre dans des fils de discussion |
Gestion des données exportables | |
exporter | Exporter une copie numérique authentique des propriétés de base de l'objet et d'un ensemble de propriétés ouvertes à l'export, dont la liste dépend de l'objet. |