L'objet Security
déclare les informations de sécurité de l'objet qui le contient.
Il définit les droits d'accès des utilisateurs selon deux axes
Nom de la propriété | Type | Description |
---|---|---|
user | string |
Identifiant d'un utilisateur propriétaire. |
group | string |
Identifiant d'un groupe propriétaire. |
org | string |
Identifiant d'un organisme propriétaire. |
accessControlList | Objet AccesControlList | Liste de contrôle d'accès |
Au moins l'une des trois propriétés parmi
user
,group
etorg
doit être renseignée. Si plusieurs sont renseignées, elles doivent être en cohérence avec le référentiel de sécurité : l'utilisateur doit appartenir au groupe indiqué, le groupe et l'utilisateur doivent appartenir à l'organisme indiqué.
L'objet AccessControlList
fournit la liste des acteurs qui ont un accès particulier à l'entité porteuse de
la règle de sécurité, en attribuant ou en enlevant des droits, de manière explicite ou par référence à un
profil d'accès qui peut être modifié au cours de la vie de l'objet.
Nom de la propriété | Type | Description |
---|---|---|
owner | string |
Identifiant d'un utilisateur |
group | string |
Identifiant d'un groupe |
org | string |
Identifiant d'un organisme |
allow | string[] |
Liste de droits d'accès attribués |
deny | string[] |
Liste de droits d'accès revoqués * |
profiles | string[] |
Liste de profils d'accès applicables ** |
Une seule des propriétés identifiant le bénéficiaire, parmi
user
,group
etorg
, doit être renseignée.* La révocation permet d'enlever de droits attribués précédemment par une règle plus générale. Par exemple, un groupe d'utilisateur peut avoir un droit qui est révoqué pour l'un de ses membres en particulier.
** Le profil d'accès fournit une liste de droits attribués et révoqués avant que les accès définis localement soient appliqués. Par exemple, le profil "validateur" peut amener le droit d'accès en écriture sur une propriété de l'objet, qui est révoquée localement pour le bénéficiaire.
{
"group" : "DAF",
"accessControlList" : [
{
"group" : "CPTCLI",
"allow" : [
"read",
"modifySomeProperty"
]
},
{
"user" : "jacqueline.michu",
"deny" : [
"modifySomeProperty"
]
},
{
"group" : "CTRGES",
"profiles" : [
"archiver"
]
}
]
}
Dans cet exemple, le groupe DAF se voit attribuer la propriété de l'objet. L'ensemble des utilisateurs du groupe possède donc un accès complet à objet , y-compris aux droits d'accès.
Les membres du groupe CPTCLI peuvent lire l'objet et modifier l'une de ses propriétés particulières (le droit est propre au type d'objet et défini par l'application).
L'utilisateur jacqueline.michu, membre du groupe CPTCLI, peut seulement lire l'objet car son droit de modification est révoqué.
Le groupe CTRGES se voit attribuer les droits d'accès définis par le profil "archiver", qui permet de lire et modifier les propriétés. Si l'utilisateur jacqueline.michu est membre de CTRGES, elle n'aura pour autant par le droit de modifier la propriété car celui-ci est révoqué localement.
Si un même droit d'accès est attribué de manière explicite à un groupe et révoqué pour un autre, les utilisateurs membres de ce groupe ne bénéficieront pas de ce droit. Le système ajoute les droits des profils, puis ceux définis localement d'un utilisateur, de ses groupes d'appartenance et de son organisme d'appartenance, puis les droits définis localement pour son utilisateur, ses groupes et son organisme, puis fait de même avec les révocations.