OPALE - parametrage
Gestion des droits d'accès sur les objets MAPPING
Sommaire
- 1 Introduction
- 2 Quelques commandes AS400 à connaitre sur la gestions des droits
- 3 Traitements MAPPING
- 3.1 De manière interactive en ligne de commande
- 3.2 Avec l'utilisation de CL programmes
- 3.3 Traitements via le Robot MAPPING
- 3.4 Quels impacts il y a sur les traitements du robot MAPPING
- 3.4.1 Exemple 1 : MAPPING en classe utilisateur *USER sans droits spéciaux avec *PUBLIC en *CHANGE et QPGMR en *ALL
- 3.4.2 Exemple 2 : MAPPING en classe utilisateur *USER sans droits spéciaux avec *PUBLIC en *EXCLUDE et QPGMR en *ALL
- 3.4.3 Exemple 3 : MAPPING en classe utilisateur *USER sans droits spéciaux avec *PUBLIC en *EXCLUDE et QPGMR en *EXCLUDE
- 3.4.4 Surcharge des autorisations sur les objets
- 3.5 Cas particulier de l'envoi d'emails via la commande MAPSNDMAIL
Introduction
Cette documentation explique la gestion des droits d'accès sur les objets MAPPING IBM-i.
Cette documentation explique notamment les droits minimum nécessaire au bon fonctionnement du robot MAPPING
Quelques commandes AS400 à connaitre sur la gestions des droits
DSPOBJAUT : Permet d'afficher les autorisations sur les objets
DSPOBJAUT OBJ(OPALE1017/MAPCPYSPLF) OBJTYPE(*PGM)
--> Affiche les autorisation du programme MAPCPYSPLF de la bib OPALE1017
GRTOBJAUT : Permet de modifier les autorisations sur les objets
GRTOBJAUT OBJ(MAPCPYSPLF) OBJTYPE(*PGM) USER(QPGMR) AUT(*EXCLUDE)
--> Passe l'utililisateur QPGMR en *EXCLUDE sur l'objet programme MAPCPYSPLF de la bib OPALE1017
Traitements MAPPING
Pour garantir le bon fonctionnement de l'application MAPPING, il faut s'assurer que les utilisateurs exécutant les différents jobs de traitements aient bien accès aux ressources nécessaires. (commande, programme, etc) Il y a plusieurs façon d'invoquer des traitement dans MAPPING :
- De manière interactive en ligne de commande
- Avec l'utilisation de CL programmes
- A l'aide du Robot MAPPING
De manière interactive en ligne de commande
Cette façon est souvent utilisée lors des tests manuels. L'utilisateur invoquant la commande est l'utilisateur avec lequel vous êtes connecté. Cet utilisateur devra alors avoir accès aux ressources.
Avec l'utilisation de CL programmes
Cette façon est parfois utilisée en production. Les commandes MAPPING sont alors inclus directement dans les programmes CL des clients générant notamment les spooled files. L'utilisateur exécutant les commandes MAPPING sera alors l'utilisateur soumettant le travail. (ça dépend des paramétrages dans le traitement)
Traitements via le Robot MAPPING
Tous les traitements MAPPING (à l'exception de la commande MAPSNDMAIL) sont exécutés avec le profil système MAPPING. (profil créé et paramétré lors de l'installation de MAPPING IBM-i)
Cet utilisateur MAPPING doit avoir accès en exécution aux programmes de MAPPING.
Fonctionnement des droits sur les objets IBM-i
Pour cette documentation, nous allons prendre pour exemple le programme de génération de PDF via la commande MAPCPYSPLF. La commande MAPCPYSPLF exécute en fait 2 programmes : MAP_815UCS et MAP_XPS
Nous allons vérifier les autorisations données à ces objets lors de l'installation de MAPPING.
DSPOBJAUT OBJ(OPALE1017/MAPCPYSPLF) OBJTYPE(*PGM)
Droits Utilisat Groupe sur objet *PUBLIC *CHANGE QPGMR *ALL
Nous voyons que pour le programme MAPCPYSPLF par défaut, l'utilisateur QPGMR a tous les droits *ALL et que tous les autres (autre que celui listé en dessous ( soit dans notre cas QPGMR)) ont les droits de modification *CHANGE
Quels impacts il y a sur les traitements du robot MAPPING
MAPPING a un robot (Sous système scannant des spooled files dans des OUTQs monitorées) qui permet l'automatisation des traitements. Chaque évènement arrivant dans une des OUTQs monitorés fait l'objet d'un traitement par l'intermédiaire de différents jobs. Ces jobs sont exécutés par l'utilisateur MAPPING (utilisateur créé à l'installation de MAPPING IBM-i)
Par conséquent, il faut s'assurer que l'utilisateur MAPPING ait bien les droits d'exécution aux objets MAPPING (Exemple du MAPCPYSPLF ci-dessus)
Exemple 1 : MAPPING en classe utilisateur *USER sans droits spéciaux avec *PUBLIC en *CHANGE et QPGMR en *ALL
Prenons pour exemple l'utilisation du MAPCPYSPLF et avec le cas où l'utilisateur MAPPING ait pour classe utilisateur *USER.
Le fonctionnement des droits est comme cela :
- l'utilisateur MAPPING a t'il les droits sur MAPCPYSPLF?
Pour répondre à cette question, exécutons la commande ci-dessous :
DSPOBJAUT OBJ(OPALE1017/MAPCPYSPLF) OBJTYPE(*PGM)
Droits Utilisat Groupe sur objet *PUBLIC *CHANGE QPGMR *ALL
L'utilisateur MAPPING fait dans ce cas parti du '*PUBLIC', de ce fait, il a le droit à '*CHANGE'
*CHANGE Permet toutes les opérations sur l'objet, à l'exception de celles réservées au propriétaire ou contrôlées par les droits sur l'existence et sur la gestion de l'objet.
Cette autorisation lui permet donc d'exécuter la commande MAPCPYSPLF (et les 2 autres programmes associés qui ont les mêmes autorisations). De ce fait la création du PDF ne posera pas de problème via le Robot.
Exemple 2 : MAPPING en classe utilisateur *USER sans droits spéciaux avec *PUBLIC en *EXCLUDE et QPGMR en *ALL
Prenons pour exemple l'utilisation du MAPCPYSPLF et avec le cas où l'utilisateur MAPPING ait pour classe utilisateur *USER.
Le fonctionnement des droits est comme cela :
- l'utilisateur MAPPING a t'il les droits sur MAPCPYSPLF?
Pour répondre à cette question, exécutons la commande ci-dessous :
DSPOBJAUT OBJ(OPALE1017/MAPCPYSPLF) OBJTYPE(*PGM)
Droits Utilisat Groupe sur objet *PUBLIC *EXCLUDE QPGMR *ALL
L'utilisateur MAPPING fait dans ce cas parti du '*PUBLIC', de ce fait, il a le droit à '*EXCLUDE'
*EXCLUDE Interdit toute opération sur l'objet. sur l'existence et sur la gestion de l'objet.
On pourrait donc croire que le Robot ne puisse pas exécuter le programme MAPCPYSPLF ainsi que ses sous programmes, mais en fait il le pourra car l'IBM-i l'exécutera avec les droits de son propriétaire. Le propriétaire des programmes MAPPING étant l'utilisateur QPGMR, alors son exécution se fera avec ses droits. Dans notre exemple avec les droits *ALL
Cette autorisation lui permet donc d'exécuter la commande MAPCPYSPLF (et les 2 autres programmes associés qui ont les mêmes autorisations). De ce fait la création du PDF ne posera pas de problème via le Robot.
Exemple 3 : MAPPING en classe utilisateur *USER sans droits spéciaux avec *PUBLIC en *EXCLUDE et QPGMR en *EXCLUDE
Prenons pour exemple l'utilisation du MAPCPYSPLF et avec le cas où l'utilisateur MAPPING ait pour classe utilisateur *USER.
Le fonctionnement des droits est comme cela :
- l'utilisateur MAPPING a t'il les droits sur MAPCPYSPLF?
Pour répondre à cette question, exécutons la commande ci-dessous :
DSPOBJAUT OBJ(OPALE1017/MAPCPYSPLF) OBJTYPE(*PGM)
Droits Utilisat Groupe sur objet *PUBLIC *EXCLUDE QPGMR *EXCLUDE
L'utilisateur MAPPING fait dans ce cas parti du '*PUBLIC', de ce fait, il a le droit à '*EXCLUDE'
*EXCLUDE Interdit toute opération sur l'objet. sur l'existence et sur la gestion de l'objet.
On pourrait donc croire que le Robot ne puisse pas exécuter le programme MAPCPYSPLF ainsi que ses sous programmes, mais en fait il le pourra car l'IBM-i l'exécutera avec les droits de son propriétaire. Le propriétaire des programmes MAPPING étant l'utilisateur QPGMR, alors son exécution se fera avec ses droits. Dans notre exemple avec les droits *EXCLUDE
De ce fait, comme l'utilisateur MAPPING qui fait parti de *PUBLIC n'a pas de droit et que le propriétaire du programme QPGMR n'a également pas de droit, et que MAPPING n'a pas de droit spéciaux, alors le programme ne pourra pas être exécuté.
On obtient alors un message d'erreur dans la log du robot : 'Erreurs trouvées dans la commande'
Surcharge des autorisations sur les objets
Il est tout à fait possible de surcharger les autorisations vues précédements (vu dans le DSPOBJAUT) en attribuant des droits spéciaux sur le profil MAPPING. La valeur permettant d'exécuter n'importe quel programme même si l'utilisateur n'a pas les droits dessus est la valeur *ALLOBJ
Si MAPPING a ce droit spéciaux, alors peu importe ses droits sur les objets, il pourra les exécuter et il n'y aura plus de problème de droits avec le Robot.
Avantage : Plus facile car on ne se pose plus de question sur la gestion des droits
Inconvénient : Donne accès à tous les objets sur système