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.

Explorateur de document

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 :

Création document profil

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 :

Création document profil famille

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 :

Profil famille désactivé

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.

Profil famille activé

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.

Profil famille 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 à :

Profil famille matrice de droits : modification

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.

Profil famille matrice de droits : modification

Figure 64. Profil famille matrice de droits : modification

Cliquez sur Modifier les privilèges, l'interface se présente ensuite de cette manière :

Profil famille matrice de droits : consultation

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 :

Profil famille : export

Figure 66. Profil famille : export

Étant donné que vous exportez un profil, vous devez dans l'entrée profil choisir avec les profils.

Profil famille : export

Figure 67. Profil famille : export

Cliquez sur Exporter.

Un fichier CSV vous est envoyé. Ouvrez le fichier :

Profil famille : CSV

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).

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.

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 :

Import référentiel

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.

Ce qui donne dans votre cas :

Import chapitre

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 en create=role_responsable_audit,
    • icreate=role_auditeur en icreate=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.

Ce qui donne dans votre cas :

Import audit

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 en create=role_responsable_audit,
    • icreate=role_auditeur en icreate=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.

Ce qui donne dans votre cas :

Import fiche de non-conformité

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 :

Import Profil de document

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é :

CSV Profil de document

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.
Profil de document : import référentiel

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 (colonne dpdocfam) de la famille associée en COGIP_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.
Profil de document : import chapitre

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 :

Masque : Création

Figure 77. Masque : Création

Veuillez compléter les éléments suivants :

  • Titre du masque : Édition standard,
  • Choisissez la famille : Fiche de non-conformité
Masque : Création

Figure 78. Masque : Création

Mettez l'attribut tab Écarts à la visibilité Statique et l'attribut array Écarts à Tableau statique.

Masque : Création

Figure 79. Masque : Création

Et cliquez sur Sauver.

Masque : Création

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 :

Contrôle de vue : Création

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 à :

Contrôle de vue : Création

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ôle Auditeur et n'utilisera pas de masque.

Complétez le tableau des vues comme présenté ci-dessous :

Contrôle de vue : Création

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 :

Contrôle de vue : Paramétrage

Figure 84. Contrôle de vue : Paramétrage

Veuillez compléter la matrice avec le paramétrage suivant :

Contrôle de vue : Paramétrage

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.

Porte-documents : contrôle de vue et masque

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 :

Porte-documents : contrôle de vue et masque

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

Vous obtenez le fichier suivant :

Famille paramétrage : Fiche de non-conformité

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).

FNC profil auditeur

Figure 89. FNC profil auditeur

FNC profil DSI

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.

5.5.8 Voir aussi

×