Généralités sur les sécurités

 

Le propriétaire de tous les objets du progiciel est IP1 1OWN.

Ce profil est de classe SECOFR avec *SIGNOFF en menu initial. Il donc impossible de se signer en utilisant ce profil.

Tous les programmes s’exécutent en adoptant les droits du profil propriétaire de l’objet (IP1 1OWN), donc avec tous les droits.

Seuls les programmes donnant accès à une ligne de commande système s’exécutent en adoptant les droits de l’utilisateur.

 Cette gestion des droits permet à l’utilisateur d’exécuter toutes les fonctions du produit indépendamment des droits qu’il possède en propre sur son profil.

Les utilisateurs peuvent ainsi être déclarés de classe *USER sans que cela induise des dysfonctionnements dans l’utilisation du produit.

Bien entendu, l’utilisateur ne peut avoir accès qu’aux traitements qui sont en rapport avec le poids qui lui a été attribué (voir sécurité fonctions).

Les fonctions donnant accès à une ligne de commande ou faisant appel à une commande ou à un menu OS400 doivent avoir les attributs USRPRF(*USER) et USEADPAUT(*NO). Ces paramètres définis lors de la compilation sont modifiables par la commande CHGPGM. Les fonctions de ce type livrées en standard avec le produit sont :

La Sécurité Fonctions  est prise en charge par les programmes de gestion des Menus Dynamiques.

Pour certaines fonctions, il existe un poids en consultation et un poids en mise à jour.

La technique utilisée aujourd’hui est développée ci-après.

L’ensemble des traitements que le produit propose à l’UTILISATEUR est réalisé au moyen de FONCTIONS.

Ces fonctions peuvent être regroupées sous forme de MENUS.

L’accès à une fonction peut se définir à différents niveaux. Ces niveaux peuvent s’apprécier relativement aux effets sur les données gérées.

Ainsi, la fonction peut-être utilisée en création, en mise à jour ou en lecture de données.

Indépendamment des potentialités de la fonction, un UTILISATEUR peut donc, lorsqu’il utilise une fonction particulière disposer d’un DROIT de CREATION, de MISE A JOUR, de LECTURE ou même éventuellement d’aucun droit. Dans ce dernier cas, il ne doit pas avoir accès à la fonction.

Si l’UTILISATEUR peut CREER, il peut alors METTRE A JOUR et LIRE.

Si l’UTILISATEUR peut METTRE A JOUR, il peut alors LIRE

Nous codons ces différentes possibilités par :

Définir les droits d’un UTILISATEUR (profil) revient à préciser parmi l’ensemble de toutes les fonctions du produit, celles qu’il peut utiliser et de quelle manière.

L’utilisation conjointe des listes d’autorisations et des GROUPES UTILISATEUR, en étendant la relation d’autorisation, permet de gérer simplement ce problème.

La Liste d’autorisation est une notion facultative, mais les possibilités qu’elle offre la rendent pratiquement incontournable.

Elle permet de découper l’ensemble des fonctions en sous-ensembles dont les éléments sont à protéger de façon identique ou presque identique.

Pour chaque liste on peut inscrire des UTILISATEURS avec les droits que l’on désire leur accorder sur les fonctions protégées par cette liste.

Pour gérer les cas particuliers, on peut-être amené à définir les droits sur une fonction pour certains UTILISATEURS.

Ces UTILISATEURS seront alors inscrits au niveau de la fonction elle-même, sachant que ce niveau est prioritaire sur tous les autres.

Une fonction ne peut appartenir qu’à une seule liste.

Le Groupe Utilisateur est une notion facultative également. Elle permet de définir des ensembles d’utilisateurs dont les droits sont identiques ou presque pour l’ensemble des fonctions.

Le GROUPE UTILISATEUR est un profil comme un autre et doit donc être inscrit dans la table des utilisateurs.

Un profil ne peut faire référence qu’à un seul GROUPE UTLISATEUR.

Le GROUPE UTILISATEUR peut être inscrit au niveau liste d’autorisation et/ou au niveau fonction.

De ce fait, si l’utilisateur n’est pas inscrit mais que son GROUPE UTILISATEUR l’est, les droits du GROUPE UTILISATEUR seront utilisés.

*Autres est utilisé comme UTILISATEUR GENERIQUE regroupant les UTILISATEURS non inscrits au niveau où *AUTRES est inscrit.

Au niveau le plus fin, pour chaque fonction vous pouvez préciser individuellement chaque utilisateur et son droit (éventuellement * AUTRES).

Au niveau le moins prioritaire, une fonction pourra être utilisée selon le droit par défaut affecté à l’UTILISATEUR.