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 :
XWRKSPLF,
XWRKSBMJ,
XSTRPDM,
XMSGSYS,
XMSGUT.
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 :
CRE = autorisé en Création
MAJ = autorisé en Mise à Jour
LEC = autorisé en Lecture
EXC = non autorisé
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.