5.5 Sécurité
Ce chapitre va vous permettre de mettre en place les notions de sécurité sur vos familles.
5.5.1 Objectifs
- Mettre en place les droits basiques sur les documents, droits sur le CRUD,
- Mettre en place les droits basiques sur la définition des familles,
- Mettre en place les contrôles de vue permettant de restreindre la vue d'un document suivant le type d'utilisateur.
5.5.2 Cadre
Lors de la phase de spécification, les droits suivants ont été identifiés. L'application nécessite :
- Pour les référentiels et chapitres :
- Création : Uniquement par les utilisateurs ayant le rôle : Auditeur,
- Vue : Tous les utilisateurs,
- Modification : Uniquement par les utilisateurs ayant le rôle : Auditeur,
- Suppression : Uniquement par les utilisateurs ayant le rôle : Auditeur.
- Audit :
- Création : Uniquement par les utilisateurs ayant le rôle : Responsable des audits,
- Les droits de vue, modification et suppression seront abordés lors de la réalisation du cycle de vie,
- Fiche de non-conformité :
- Création : Uniquement par les utilisateurs ayant le rôle : Responsable des audits.
- Les droits de vue, modification et suppression seront abordés lors de la réalisation du cycle de vie,
La définition des familles doit pouvoir être mise à jour par les administrateurs fonctionnels.
En outre, il y a une demande particulière, les auditeurs veulent que dans les fiches de non conformité la partie Écart puisse être vue par tous les utilisateurs pouvant voir le document, mais être modifiée uniquement par les auditeurs.
5.5.3 Théorie
La sécurité applicative des documents dans Dynacase repose sur la notion de profil.
Un profil est une matrice de droits. Il permet d'indiquer quel utilisateur/groupe/rôle peut effectuer quelle action. Il existe deux types d'affectations :
- statique : l'affectation ne varie pas suivant le contenu du document,
- dynamique : l'affectation varie suivant le contenu du document.
On peut compléter la notion de sécurité avec deux autres éléments :
- le masque : c'est un document permettant de re-définir les visibilités pour une famille, le masque est associé à un document via un cycle de vie ou un contrôle de vue et permet de rendre des attributs invisibles, non-modifiables, etc.
- le contrôle de vue : ce type de document permet d'indiquer des règles de composition de la vue d'un document en fonction des droits de l'utilisateur. Il permet notamment d'utiliser un masque pour changer les visibilités suivant le profil d'un utilisateur.
5.5.4 Profil de famille
Vous allez commencer par définir les profils de famille.
Le profil de famille permet de définir :
- qui peut voir, modifier la configuration de la famille,
- qui peut créer des documents de cette famille
5.5.4.1 Création
Connectez vous à l'interface d'administration : http://<nomDeDomaine>/dynacase/admin.php
.
Sélectionnez l'application Gestion des documents>Explorateur de documents.

Figure 57. Explorateur de document
Cette application permet de créer tous les types de documents de votre contexte.
Cliquez ensuite sur Création > Profil
dans l'onglet de droite s'ouvre l'interface suivante :

Figure 58. Création document profil
Déroulez la liste et choisissez le type de document Profil de famille
. L'interface suivante est présentée :

Figure 59. Création document profil famille
Complétez le titre avec Profil de référentiel
et cliquez sur Créer
. Vous obtenez l'interface suivante :

Figure 60. Profil famille désactivé
5.5.4.2 Paramétrage
Le profil de famille est créé désactivé. C'est à dire que toutes les familles associées à ce profil sont libres d'accès, donc tous les utilisateurs peuvent effectuer toutes les actions.
Cliquez sur Activer
en bas à droite. L'interface se recharge.

Figure 61. Profil famille activé
Le profil de famille est maintenant activé. C'est à dire que toutes les familles associées à ce profil sont restreintes donc aucun utilisateur (sauf l'administrateur) ne peut effectuer une action.
Cliquez sur Accessibilités
. Une nouvelle fenêtre s'ouvre et présente la matrice de droits.

Figure 62. Profil famille matrice de droits
Cette matrice présente par défaut uniquement les rôles du contexte. La bonne pratique veut que les droits soient associés via les rôles et non pas directement via les groupes.
Vous allez créer le profil pour les familles Chapitres et Référentiels.
Cliquez sur le bouton ∴
devant Auditeur
. L'interface devient semblable à :

Figure 63. Profil famille matrice de droits : modification
Cochez ensuite les cases Create
et Créer manuellement
.
Il existe deux possibilités de création :
- le droit
create
donne aux utilisateurs la possibilité de faire créer des documents en son nom par le code, - le droit
Créer manuellement
donne aux utilisateur la possibilité de créer des documents via les interfaces Dynacase.
Cliquez sur le ∴
devant Administrateur fonctionnel et cochez les cases
Voir
, Modifier
, Voir les droits
et Modifier les droits
.
Ces droits donnent la possibilité aux administrateurs fonctionnels d'agir sur la définition de la famille.

Figure 64. Profil famille matrice de droits : modification
Cliquez sur Modifier les privilèges
, l'interface se présente ensuite de cette manière :

Figure 65. Profil famille matrice de droits : consultation
5.5.4.3 Export
Vous allez ensuite exporter les documents de profil.
Commencez par associer un nom logique au profil, dans l'interface du document profil Autres>Propriétés.
Cliquez sur affecter un nom logique
et donnez au document le nom logique PFAM_REFERENTIEL
.
Ensuite, sélectionnez le document pour pouvoir l'exporter, dans l'interface du document Autres > Ajouter au porte-documents
.
Une fois le porte-documents ouvert, pensez à supprimer les documents qui ne vous intéressent pas
et cliquez sur Outils > Exportation du dossier
.
Vous pouvez remarquer que le nom logique du document est préfixé
de manière à rapidement identifier son type : PFAM
pour Profil de famille.
L'interface suivante est présentée :

Figure 66. Profil famille : export
Étant donné que vous exportez un profil, vous devez dans l'entrée profil
choisir avec les profils
.

Figure 67. Profil famille : export
Cliquez sur Exporter
.
Un fichier CSV vous est envoyé. Ouvrez le fichier :

Figure 68. Profil famille : CSV
Les spécificités du format sont décrites dans la documentation.
5.5.4.4 Ajout des profils de famille dans les fichiers d'import
Vous pouvez remarquer les points suivants :
- les profils sont composés de deux éléments :
-
DOC
: un document profil : ce document porte la référence du profil, -
PROFIL
: cette ligne contient l'ensemble des règles de profilage (la définition de la matrice).
-
- la ligne
PROFIL
: elle contient :- la référence au nom logique du profil (
PFAM_REFERENTIEL
) - un mot-clé indiquant que les droits sont exprimés par rapport à des profils (
:useAccount
) - un ensemble de droits sous la forme
clé=valeur
pour lesquels :- la clé est un droit (
view
,edit
, etc.), - la valeur est une référence vers un compte (groupe, rôle, utilisateur).
- la clé est un droit (
- la référence au nom logique du profil (
5.5.4.4.1 Profil de famille de référentiel
Vous allez maintenant intégrer le profil dans les fichiers de paramétrage de la famille.
Ouvrez le fichier /COGIP_AUDIT/COGIP_AUDIT_REFERENTIEL__PARAM.csv
:
-
copiez les 4 lignes du fichiers d'import en début du fichier de paramétrage,
cela permet que le profil soit créé et initialisé lors de l'import de ce fichier
-
ajoutez juste avant l'instruction
END
, une ligne contenant :- dans la première case
PROFID
, - dans la deuxième case, le nom logique du profil soit :
PFAM_REFERENTIEL
.
Cela permet d'associer le profil à la famille.
- dans la première case
Bien que le profil soit conçu pour une famille donnée (vous avez en effet spécifié avec quelle famille il peut être utilisé lors de sa création), il faut explicitement déclarer ce profil sur la famille. En effet, la famille spécifiée lors de la création du profil indique que ce profil peut être utilisé avec cette famille, ainsi que ses sous-familles, mais n'indique aucunement que ce sera le profil utilisé par ces familles (il peut notamment exister plusieurs profils compatibles, et le profil à appliqué est changé par du code).
Ce qui donne dans votre cas :

Figure 69. Import référentiel
Vous pouvez retrouver le fichier complété dans les sources.
5.5.4.4.2 Profil de famille de chapitre
Vous allez maintenant valuer le profil de famille Chapitres. Votre spécification indique que celui-ci est similaire à celui du référentiel.
Vous avez deux choix :
- vous pouvez noter uniquement la référence dans le fichier
__PARAM
du chapitre et dans ce cas les deux familles seront liées par le même profil, - soit dupliquer une nouvelle fois les quatre lignes de définition de profil et changer le nom logique pour obtenir un nouveau profil similaire.
Les deux solutions ont toutes les deux des avantages et des défauts. Toutefois il est considéré comme une bonne pratique de dupliquer les profils de deux familles pour pouvoir les faire évoluer de manière distincte.
Ouvrez le fichier /COGIP_AUDIT/COGIP_AUDIT_CHAPITRE__PARAM.csv
:
- copiez les quatre lignes de profil comme précédemment,
- modifiez les deux références au nom logique pour le passer de
PFAM_REFERENTIEL
àPFAM_CHAPITRE
, - renommer le titre du profil en "Profil de chapitre'
- ajoutez juste à la ligne du dessus de l'instruction
END
, une ligne contenant :- dans la première case
PROFID
, - dans la deuxième case, le nom logique du profil soit :
PFAM_CHAPITRE
.
- dans la première case
Ce qui donne dans votre cas :

Figure 70. Import chapitre
Vous pouvez retrouver le fichier complété dans les sources.
5.5.4.4.3 Profil de famille d'audit
Vous allez maintenant valuer le profil de famille Audits. Votre spécification indique que celui-ci est similaire à celui du référentiel avec juste une différence : le compte ayant le droit de création est le rôle Responsable des audits.
Ouvrez le fichier /COGIP_AUDIT/COGIP_AUDIT_AUDIT__PARAM.csv
:
- copiez les quatre lignes de profil comme précédemment,
- modifiez les deux références au nom logique pour le passer de
PFAM_REFERENTIEL
àPFAM_AUDIT
, - renommer le titre du profil en "Profil d'audit'
- modifiez les tuples :
-
create=role_auditeur
encreate=role_responsable_audit
, -
icreate=role_auditeur
enicreate=role_responsable_audit
,
-
- ajoutez juste avant l'instruction
END
, une ligne contenant :- dans la première case
PROFID
, - dans la deuxième case, le nom logique du profil soit :
PFAM_AUDIT
.
- dans la première case
Ce qui donne dans votre cas :

Figure 71. Import audit
Vous pouvez retrouver le fichier complété dans les sources.
5.5.4.4.4 Profil de famille de Fiche de non-conformité
Vous allez maintenant valuer le profil de famille Fiche de non-conformité. Votre spécification indique que celui-ci est similaire à celui du référentiel avec juste une différence : le compte ayant le droit de création est le rôle Responsable des audits.
Ouvrez le fichier /COGIP_AUDIT/COGIP_AUDIT_FNC__PARAM.csv
:
- copiez les quatre lignes de profil comme précédemment,
- modifiez les deux références au nom logique pour le passer de
PFAM_REFERENTIEL
àPFAM_FNC
, - renommer le titre du profil en "Profil de FNC"
- modifiez les tuples :
-
create=role_auditeur
encreate=role_responsable_audit
, -
icreate=role_auditeur
enicreate=role_responsable_audit
,
-
- ajoutez juste avant l'instruction
END
, une ligne contenant :- dans la première case
PROFID
, - dans la deuxième case, le nom logique du profil soit :
PFAM_FNC
.
- dans la première case
Ce qui donne dans votre cas :

Figure 72. Import fiche de non-conformité
Vous pouvez retrouver le fichier complété dans les sources.
5.5.5 Profil de document
Vous allez maintenant créer les profils de documents. Un profil de document permet de définir qui peut :
- voir,
- modifier,
- supprimer,
- etc.
un document.
5.5.5.1 Création
Connectez vous à l'interface d'administration : http://<nomDeDomaine>/dynacase/admin.php
.
Sélectionnez l'application Gestion des documents>Explorateur de documents.
Cliquez ensuite sur Création > Profil
dans l'onglet de gauche s'ouvre l'interface de création,
sélectionnez dans cette interface Profil de document
.
Rentrez dans le formulaire le titre Profil des documents référentiels
et sélectionnez la famille Référentiel qualité
,
cliquez ensuite sur Créer
.
5.5.5.2 Paramétrage
L'interface affiche ensuite le document de profil en consultation.
Cliquez sur activer
et une fois l'interface rechargée cliquez sur Accessibilités
, la matrice des droits s'ouvre.
Donnez les droits suivants :
- rôle Utilisateur COGIP :
- voir,
- envoyer,
- rôle Auditeur :
- voir,
- modifier,
- supprimer.
Techniquement, il n'est pas nécessaire de donner le droit voir au rôle Auditeur, puisque les gens ayant ce rôle sont également censés avoir le rôle Utilisateur COGIP. Cependant, ce paramétrage pourra être amené à évoluer. Afin d'éviter les mauvaises surprises lors de la mise à jour des profils, il est conseillé de donner explicitement le droit voir aux comptes auxquels on donne le droit modifier.
Vous obtenez la matrice suivante :

Figure 73. Import Profil de document
5.5.5.3 Export
Ajoutez le nom logique PDOC_REFERENTIEL
au document au moyen du menu
Autres>Propriétés.
Ajoutez le au porte-documents au moyen du menu
Autres>Ajouter au porte-documents
(pensez à supprimer les éventuels autres documents) et cliquez ensuite sur
Outils>exportation du dossier.
Vous devez indiquer dans la partie Profil
Avec les profils
et ensuite cliquer sur Exporter
.
Le fichier CSV suivant vous est envoyé :

Figure 74. CSV Profil de document
Le fichier se présente exactement de la même manière que celui de profil de famille et contient le même type d'informations.
Vous pouvez remarquer que le nom logique du document est préfixé de manière à rapidement identifier son type :
PDOC
pour Profil de document.
5.5.5.4 Ajout des profils de document dans les fichiers d'import
5.5.5.4.1 Profil de document de référentiel
Ouvrez le fichier ./COGIP_AUDIT/COGIP_AUDIT_REFERENTIEL__PARAM.csv
.
Ajoutez :
- les 4 lignes du fichier d'export,
- ajoutez juste avant l'instruction
END
, une ligne contenant :- dans la première case
CPROFID
, - dans la deuxième case, le nom logique du profil soit :
PDOC_REFERENTIEL
.
- dans la première case

Figure 75. Profil de document : import référentiel
Vous pouvez retrouver le fichier complété dans les sources.
5.5.5.4.2 Profil de document de chapitre
Vous allez maintenant valuer le profil de famille Chapitres. Votre spécification indique que celui-ci est similaire à celui du référentiel.
Ouvrez le fichier /COGIP_AUDIT/COGIP_AUDIT_CHAPITRE__PARAM.csv
:
- copiez les quatre lignes de profil comme précédemment,
- modifiez les deux références au nom logique pour le passer de
PDOC_REFERENTIEL
àPDOC_CHAPITRE
, - modifiez le titre en 'Profil des documents chapitre"
- modifiez le nom logique (colonne
dpdoc_famid
) et le titre (colonnedpdocfam
) de la famille associée enCOGIP_AUDIT_CHAPITRE
|Chapitre
- ajoutez juste avant l'instruction
END
, une ligne contenant :- dans la première case
CPROFID
, - dans la deuxième case, le nom logique du profil soit :
PDOC_CHAPITRE
.
- dans la première case

Figure 76. Profil de document : import chapitre
Vous pouvez retrouver le fichier complété dans les sources.
5.5.5.4.3 Profil de document d'audit et de fiche de non-conformité
L'audit et les fiches de non conformité ne vont pas avoir pour l'instant de profil de document, car ils ont un cycle de vie et leur profil de document est fixé par leur cycle de vie.
5.5.6 Contrôle de vue
Vous allez maintenant configurer le contrôle de vue.
Le contrôle de vue va vous permettre de définir des masques variant suivant l'utilisateur connecté.
5.5.6.1 Masque
Vous allez commencer par créer le masque.
5.5.6.1.1 Création
Connectez vous à l'interface d'administration : http://<nomDeDomaine>/dynacase/admin.php
, sélectionnez l'application
Gestion des documents>Explorateur de documents,
cliquez sur
Création>Documents système
et sélectionnez dans la liste déroulante en haut à droite Masque de saisie
.
Vous obtenez l'interface ci-dessous :

Figure 77. Masque : Création
Veuillez compléter les éléments suivants :
- Titre du masque :
Édition standard
, - Choisissez la famille :
Fiche de non-conformité

Figure 78. Masque : Création
Mettez l'attribut tab Écarts
à la visibilité Statique
et l'attribut array Écarts
à Tableau statique
.

Figure 79. Masque : Création
Et cliquez sur Sauver
.

Figure 80. Masque : Création
Vous pouvez remarquer qu'en ayant fixé l'attribut encadrant en lecture seule, tous les attributs qu'il contient sont passés en lecture seule.
5.5.6.1.2 Export
Ajoutez un nom logique au document en cliquant sur
Autres>Propriétés
et fixez le nom logique à MASK_FNC_DEFAULT
.
Ajoutez le masque au porte-documents, en cliquant sur Autres>Ajoutez au porte-documents.
Pensez à supprimer les éventuels autres documents du porte-documents.
Le contenu du porte-documents sera exporté avec le contrôle de vue.
Vous pouvez remarquer que le nom logique du document est préfixé de manière à rapidement identifier son type :
MASK
pour Masque.
5.5.6.2 Contrôle de vue
5.5.6.2.1 Création
Connectez vous à l'interface d'administration : http://<nomDeDomaine>/dynacase/admin.php
,
sélectionnez l'application
Gestion des documents>Explorateur de documents,
cliquez sur Création>Documents système
et sélectionnez dans la liste déroulante en haut à droite
Contrôle de vue.
Vous obtenez l'interface ci-dessous :

Figure 81. Contrôle de vue : Création
L'interface vous permet de :
- configurer quel utilisateur aura accès à quelle vue,
- configurer la vue de création.
Vous allez compléter :
- le titre :
Fiche de non conformité
, - Famille (les deux attributs) :
Fiche de non-conformité
.
Vous devez obtenir un formulaire similaire à :

Figure 82. Contrôle de vue : Création
Ajoutez une vue en cliquant sur le +
du tableau vue.
Chaque ligne vous propose les options suivantes :
Id vue
- identifiant logique de la vue,
Label
- un label pour la vue (utilisé pour les menu et les interfaces d'admin),
Type
- le type de vue soit une vue d'édition (modification), soit de consultation,
Zone
-
indique la zone utilisée pour représenter le document.
Une zone permet de re-définir complètement la représentation d'un document,
Masque
-
indique le masque associé à cette vue.
le masque permet de définir les visibilités applicable lors de la représentation du document,
Affichable
- indique si la vue est accessible via un menu sur le document,
Ordre
- parmi toutes les vues utilisables par un utilisateur, c'est la vue ayant l'ordre le plus faible qui est sélectionnée.
Vous allez ajouter deux vues :
-
modif_default
: cette vue sera la celle par défaut, utilisée pour afficher le document pour tous les utilisateurs. Elle restreint les visibilités pour la partie écart en appliquant le masque que vous avez défini. -
modif_auditeur
: cette vue ne sera proposée qu'aux utilisateurs ayant le rôleAuditeur
et n'utilisera pas de masque.
Complétez le tableau des vues comme présenté ci-dessous :

Figure 83. Contrôle de vue : Création
Cliquez sur Créer.
5.5.6.2.2 Paramétrage
Vous allez maintenant paramétrer les droits associés au contrôle de vue. Ceci permet d'exprimer quelles vues sont proposées à l'utilisateur en fonction de ses rôles et groupes d'appartenance.
Cliquez sur Autres>Sécurité>Profil dédié. La page se recharge, cliquez maintenant sur Autres>Sécurité>Accessibilités....
L'interface suivante vous est présentée :

Figure 84. Contrôle de vue : Paramétrage
Veuillez compléter la matrice avec le paramétrage suivant :

Figure 85. Contrôle de vue : Paramétrage
Les droits que vous avez attribués correspondent à :
- les droits de modifications et de paramétrage du contrôle de vue pour les administrateurs de la plateforme,
- le droit de modification par défaut pour tous les utilisateurs,
- le droit de modification auditeur pour les auditeurs.
Les utilisateurs ayant le rôle auditeurs
ont donc accès aux deux vues de modification.
Mais la vue dédiée aux auditeurs à un ordre plus faible, elle est donc utilisée prioritairement.
5.5.6.2.3 Export
Vous allez maintenant exporter le contrôle de vue et son masque.
Ajoutez un nom logique CVDOC_FNC
au contrôle de vue au moyen du menu
Autres>Propriétés.
Ajoutez le contrôle de vue au porte-documents, en cliquant sur
Autres>Ajoutez au porte-documents.
Vous pouvez remarquer que le nom logique du document est préfixé de manière à rapidement identifier son type :
CVDOC
pour Contrôle de vue.
Le porte-documents doit présenter le masque et le contrôle de vue.

Figure 86. Porte-documents : contrôle de vue et masque
Cliquez ensuite sur Outils>Exportation du dossier, la fenêtre d'export s'ouvre.
Vous devez indiquer dans la partie Profil
Avec les profils
et ensuite cliquer sur Exporter
.
Vous obtenez le fichier suivant :

Figure 87. Porte-documents : contrôle de vue et masque
Ce fichier contient :
- la configuration du masque (lignes 1 à 3),
-
le profil par défaut des documents systèmes
PRF_ADMIN_EDIT
, et son affectation au masque nouvellement créé (lignes 4 à 8).ce profil est fourni par Dynacase et est appliqué aux documents systèmes pour restreindre leur droit de modification,
- la définition du contrôle de vue (lignes 9 à 11)
- la définition du profil du contrôle de vue (ligne 12).
5.5.6.3 Ajout du contrôle de vue dans les fichiers d'import
Vous allez ajouter le contenu de ce fichier dans le fichier de paramétrage de la famille associée.
Ouvrez ./COGIP_AUDIT/COGIP_AUDIT_FNC__PARAM.csv
:
- copiez les lignes 1 à 3 et 9 à 12 du fichiers d'export au début du fichier param,
- ajoutez juste avant le
END
:- dans la première case
CVID
, - dans la seconde case
CVDOC_FNC
- dans la première case
Vous obtenez le fichier suivant :

Figure 88. Famille paramétrage : Fiche de non-conformité
Vous pouvez retrouver le fichier complété dans les sources.
5.5.7 Mise en place des modifications
Vous allez maintenant déployer vos modifications :
<devtool> deploy -s . --url http://admin:anakeen@<nomDeDomaine>/dynacase-control/ --port <port> --context dynacase
Attention : Les profils ne s'appliquent que sur les nouveaux documents, les documents déjà existant n'étant pas profilés ceux-ci sont accessibles par tous les utilisateurs. En production, il vous faudrait faire un script de migration pour profiler les documents pré-existants.
Vous devez donc créer de nouveaux documents pour tester.
Vous pouvez maintenant vous connecter à l'application et consulter une fiche de non-conformité
avec un utilisateur ayant le profil Auditeur
(marthe.karine/p@ssw0rd).

Figure 89. FNC profil auditeur

Figure 90. FNC profil DSI
Vous pouvez remarquer que l'utilisateur ayant le profil auditeur peut ajouter des lignes d'écart alors que celui qui n'a pas ce profil. Le DSI dans l'exemple ci-dessus (arnic.marina/p@ssw0rd), ne le peut pas.