RECHERCHE DES DROITS SUR UN OBJET 1/ Notion de profil utilisateur / de profil de groupe 2/ Liste d'autorisation 3/ Recherche des droits pour un profil 4/ V3R10 : profil de groupe principal profil de groupe multiples |
Profil utilisateur : Objet contenant des informations relatives à l'utilisateur, telles que son mot de passe, la liste des droits d'usage spéciaux qui lui sont assignés et les objets qui lui appartiennent. Il permet au système de vérifier si un utilisateur est autorisé à lire ou à utiliser des objets, des fichiers ou des unités, ou à exécuter des travaux sur le système. Chaque profil utilisateur doit posséder un nom unique. Le profil utilisateur est identifié par le système comme un type d'objet particulier. Son identificateur est *USRPRF. Profil de groupe Profil utilisateur qui accorde les mêmes droits d'usage à un groupe d'utilisateurs . |
Profil standards Profil officier de sécurité Profil utilisateur fourni par le système contenant tous les droits d'usage nécessaires à la mise en place et à la maintenance des autorisations et de la configuration de l' AS 400. Ce profil a tous les droits. Le nom de ce profil est QSECOFR. Profil programmeur Profil utilisateur fourni par le système contenant les droits d'usage nécessaires aux programmeurs système ou aux programmeurs d'applications. Le nom de ce profil est QPGMR. Profil de poste de travail Profil utilisateur contenant les droits d'usage nécessaires aux opérateurs de postes de travail. Le nom de ce profil est QUSER. Profil Opérateur système Profil utilisateur recevant tous les messages d'intervention. Doit exister sur TOUT AS/400.Le nom de ce profil est QSYSOPR. |
Créer un profil utilisateur (CRTUSRPRF) Indiquez vos choix, puis appuyez sur Entrée. Profil utilisateur . . . . . . . USRPRF ########## Mot de passe utilisateur . . . . PASSWORD *USRPRF Forcer péremption mot de passe PWDEXP *NO Classe d'utilisateur . . . . . . USRCLS *USER Bibliothèque en cours . . . . . CURLIB < *CRTDFT Programme initial à appeler . . INLPGM < *NONE Bibliothèque . . . . . . . . . Menu initial . . . . . . . . . . INLMNU < MAIN Bibliothèque . . . . . . . . . *LIBL Possibilités restreintes . . . . LMTCPB *NO Texte 'descriptif' . . . . . . . TEXT *BLANK [vous remarquerez les paramètres liés à l'ouverture de session ( < ).] Autres paramètres Droits spéciaux . . . . . . . . SPCAUT *USRCLS |
Créer un profil utilisateur Droits spéciaux (SPCAUT) Indique les droits spéciaux accordés à l'utilisateur. Ces droits sont nécessaires pour exécuter certaines fonctions. Les droits spéciaux des profils utilisateurs QSECOFR et QSYS ne peuvent pas être supprimés. Les droits spéciaux sont les suivants : o Droits de sauvegarde du système (*SAVSYS) o Droits d'exploitation des travaux (*JOBCTL) o Droits d'administrateur de la sécurité (*SECADM) o Droits sur tous les objets (*ALLOBJ) o Droits de maintenance (*SERVICE) o Droits de gestion du spoule (*SPLCTL) o Droits de gérer des éléments de config (*IOSYSCFG) Remarque : Un profil utilisateur doit disposer de tous les droits spéciaux pour créer ou modifier un autre profil. |
Créer un profil utilisateur (CRTUSRPRF) Indiquez vos choix, puis appuyez sur Entrée. Environnement spécial . . . . . SPCENV *SYSVAL Afficher les info d'ouverture . DSPSGNINF *SYSVAL Durée de validité mot de passe PWDEXPITV *SYSVAL Sessions limitées à un écran . . LMTDEVSSN *SYSVAL Mémoire maximale permise . . . . MAXSTG *NOMAX Priorité maxi en soumission . . PTYLMT 3 Description de travail . . . . . JOBD QDFTJOBD Bibliothèque . . . . . . . . . *LIBL Profil de groupe . . . . . . . . GRPPRF *NONE Propriétaire . . . . . . . . . . OWNER *USRPRF Droits du groupe . . . . . . . . GRPAUT *NONE Code comptabilité . . . . . . . ACGCDE *BLANK Mot de passe de document . . . . DOCPWD *NONE File d'attente de messages . . . MSGQ *USRPRF Bibliothèque . . . . . . . . . |
Créer un profil utilisateur Profil de groupe (GRPPRF) Indique le nom du profil de groupe. L'utilisateur de cette commande doit détenir les droits *OBJMGT et *CHANGE sur le profil indiqué en regard de l'invite Profil de groupe (paramètre GRPPRF). *NONE Aucun profil de groupe n'est associé à ce profil utilisateur. nom-profil-utilisateur Indiquez le nom du profil de groupe à associer à ce profil utilisateur afin de déterminer les conditions requises pour qu'un travail puisse accéder aux objets existants et aux droits spéciaux. |
Créer un profil utilisateur (CRTUSRPRF) Indiquez vos choix, puis appuyez sur Entrée. Environnement spécial . . . . . SPCENV *SYSVAL Afficher les info d'ouverture . DSPSGNINF *SYSVAL Durée de validité mot de passe PWDEXPITV *SYSVAL Sessions limitées à un écran . . LMTDEVSSN *SYSVAL Mémoire maximale permise . . . . MAXSTG *NOMAX Priorité maxi en soumission . . PTYLMT 3 Description de travail . . . . . JOBD QDFTJOBD Bibliothèque . . . . . . . . . *LIBL Profil de groupe . . . . . . . . GRPPRF *NONE Propriétaire . . . . . . . . . . OWNER *USRPRF Droits du groupe . . . . . . . . GRPAUT *NONE Code comptabilité . . . . . . . ACGCDE *BLANK Mot de passe de document . . . . DOCPWD *NONE File d'attente de messages . . . MSGQ *USRPRF Bibliothèque . . . . . . . . . |
Créer un profil utilisateur Propriétaire (OWNER) Indique le profil utilisateur propriétaire des objets créés. *USRPRF Le propriétaire des objets est le profil utilisateur associé au travail. *GRPPRF Le propriétaire des objets créés est le profil de groupe. Les droits absolus lui sont accordés sur ces objets. Si *GRPPRF est indiqué, un nom de profil utilisateur doit figurer en regard de l'invite GRPPRF Profil de groupe (paramètre GRPPRF), et l'invite Droits du groupe (paramètre GRPAUT) ne doit pas être laissée à blanc. |
Liste d'autorisation Une liste d'autorisation sert à accorder à un groupe d'utilisateurs des droits sur un objet (tel qu'un fichier ou un programme) ou sur les données d'un objet (telles que des enregistrements). Elle se présente sous la forme d'une liste d'utilisateurs (profils utilisateur) et de droits accordés à chacun d'eux. Une liste d'autorisation est créée à l'aide de la commande CRTAUTL (Créer une liste d'autorisation). Le système identifie la liste d'autorisation comme un type d'objet spécifique, dont l'identificateur est *AUTL. le principe est de pouvoir définir un "modèle" de droits (une règle) et d'appliquer ensuite cette règle à x objets. c'est le meilleur mopyen de faire des groupes d'objets, comme nous venons de voir des groupes de profils. |
Contenu d'une liste d'autorisation Objet . . . . . . . : AUTL1 Propriétaire . . . . : QSECOFR Bibliothèque . . . : QSYS Droits Gest ------Objet------ ------Données------- Utilisat sur objet list Opér Gest Exist Lect Ajt MàJ Supp QSECOFR *ALL X X X X X X X X PRFUTL *CHANGE X X X X X X PRFUTL2 *USE X X Nous allons voir les différents droits avec les droits sur les objets par la commande EDTOBJAUT |
Droits sur un objet (EDTOBJAUT) Objet . . . . . . . : MABIBLI Type d'objet . . . . : *LIB Bibliothèque . . . : QSYS Propriétaire . . . . : PROPRIO Objet protégé par la liste d'autorisation . . . . . . . . . . AUTL1 Droits ------Objet------ | ------Données------- | Utilisat sur objet Opér Gest Exist Modif ref Lect Ajt MàJ Supp Exec PROPRIO *ALL X X X X X | X X X X PRFGRP *CHANGE X | X X X X PRFUTL USER DEF X | X X *PUBLIC *USE X | X (1) (2) !<------ (3) ----->! ! <------- (4) -------->! |
Propriétaire Propriétaire de l'objet indiqué. Par défaut celui-ci a tous les droits. Objet protégé par la liste d'autorisation Nom de la liste d'autorisation protégeant l'objet indiqué. *NONE apparaît si aucune liste d'autorisation n'est utilisée pour déterminer les droits sur cet objet. (1) Utilisateur Nom des profils des utilisateurs ayant des droits spécifiques sur cet objet. *PUBLIC définit les droits de tous les utilisateurs non spécifiquement désignés et ne figurant pas sur la liste d'autorisation protégeant l'objet. *GROUP indique le groupe auquel vous appartenez |
(2) Types de droits standards Droits de l'utilisateur sur un objet. Plusieurs niveaux de droits prédéfinis peuvent être attribués aux utilisateurs. Ces niveaux sont les suivants : *ALL 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 la gestion de la liste d'autorisation. *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. *EXCLUDE Interdit toute opération sur l'objet. *USE Permet l'utilisation de l'objet et la lecture de ses attributs. L'utilisateur ne peut pas modifier l'objet. |
USER DEF S'affiche lorsque les droits spécifiques sur l'objet et sur ses données n'établissent pas de correspondance avec les niveaux prédéfinis cités ci-dessus. Vous pouvez consulter les droits spécifiques à l'aide de la touche de fonction "Afficher détail". La valeur *AUTL est également admise pour déterminer les droits *PUBLIC. Elle indique que les spécifications des droits publics de la liste d'autorisation protégeant l'objet doivent être utilisées pour déterminer les droits publics. |
(3) Droits sur l'objet Indique les droits de l'utilisateur sur les objets. "X" apparaît dans la colonne si l'utilisateur détient des droits spécifiques sur l'objet indiqué. Opr Droits d'intervention sur l'objet : Permet d'utiliser un objet et de consulter ses attributs dans les limites des droits sur les données détenus par l'utilisateur. Ges Droits sur la gestion des objets : permet de définir le niveau de sécurité d'un objet, de le déplacer ou de le rebaptiser. Permet également d'ajouter des membres à un objet, si ce dernier est un fichier base de données. Exist Droits sur l'existence des objets : Permet de contrôler l'existence et la propriété d'un objet. |
Modif Les droits de modification des attributs permettent de modifier les attributs d'un objet (par exemple, l'ajout ou le retrait de déclenchements [trigger] pour un fichier base de données). Réf Les droits de référence permettent d'indiquer que l'objet constitue le premier niveau [parent] d'une contrainte référentielle. (relation entre fichiers dépendants vérifiée par le système) (4) Droits sur les données Droits spécifiques qu'un utilisateur détient sur les données d'un objet. "X" apparaît dans la colonne lorsque l'utilisateur dispose des droits indiqués. Les droits spécifiques possibles sont les suivants : |
Lect Droit de lecture : Permet d'accéder au contenu d'un objet. Ajt Droit d'ajout : Permet d'ajouter des données à un objet. MàJ Droit de mise à jour : Permet de modifier les données d'un objet. Sup Droit de suppression : Permet de supprimer les données d'un objet. Exécut Les droits d'exécution permettent de lancer un programme ou d'effectuer une recherche dans une bibliothèque ou un répertoire. |
Ordre de recherche des autorisations sur un objet --------------------------------------------------- 1/ avec le profil de référence + le profil est il SPCAUT(*ALLOBJ) ? --OUI ----------->! NON ! ! ! + le profil a-t-il des droits sur l'objet OUI ----------->! NON ! ! ! + le profil est-il indiqué dans la liste OUI ----------->! d'autorisation (s'il y a une liste) ! NON ! ! ! 2/ avec le profil de groupe ! ! (s'il n'y a pas de profil de groupe --> 3/ ) ! ! ! + le groupe est il SPCAUT(*ALLOBJ) ? ! OUI ----------->! NON ! ! ! + le groupe a-t-il des droits sur l'objet OUI ----------->! NON ! ! ! |
Ordre de recherche des autorisations sur un objet --------------------------------------------------- 2/ avec le profil de groupe (suite) ! ! v v ! ! ! ! + le groupe est-il indiqué dans la liste OUI ----------->! d'autorisation (s'il y a une liste) ! NON ! ! ! 3/ avec *PUBLIC ! ! ! ! + *PUBLIC est-il indiqué sur l'objet ! OUI ----------->! NON ! ! ! + *PUBLIC EST indiqué dans la liste --------------------->! ! ####################### ! # les droits trouvés # <-----------------------------! # sont pris en compte # ####################### |
Quelques conseils : Utilisez au maximum la notion de groupe 1/ groupe d'utilisateur d'une part (profil de groupe) 2/ groupe d'objets d'autre part. et c'est la partie la plus délicate, en effet la notion de groupe d'objets est représentée sur AS/400 par les bibliothèques, or les droits que vous indiquez sur la bibliothèque ne permettent pas de préciser ce qu'il est possible de faire AVEC LES OBJETS de celle-ci. ==> une bibliothèque est un bon moyen d'INTERDIR. mais pour les utilisateurs ayant le droit d'utiliser la bibliothèque il faudra être plus précis. La meilleure solution semble être les listes d'autorisations. |
A/ définir des listes d'autorisations par application. B/ indiquer dans ces listes, des autorisations pour des profils de groupe C/ attribuer la liste d'une application aux objets de toutes les bibliothèques de cette application. RVKOBJAUT OBJ(bib/*ALL) OBJTYPE(*ALL) USER(*ALL) AUT(*ALL) GRTOBJAUT OBJ(bib/*ALL) OBJTYPE(*ALL) AUTL(laliste) D/ indiquer cette liste comme définissant les droits par défaut DES OBJETS A VENIR CHGLIB LIB(bib) CRTAUT(laliste) cela devrait vous permettre de ne gérer dans l'avenir que les droits indiqués dans cette liste pour des profils de groupe. Reste les cas particuliers (contrôleurs de gestion, etc ...) |
Notion de groupe principal (ou PGP Primary Group Profile) : A partir de la V3R10, un profil de groupe principal peut être défini pour chaque objet du système. Le nom de ce groupe principal et les droits qui lui sont accordés pour cet objet, sont stockés avec l'objet lui-même. Seuls les droits publics (*PUBLIC) étaient stockés avec l'objet. (ainsi que le propriétaire) Les droits privés (accordés nominativement à un profil particulier) sont stockés dans l'objet *USRPRF. - ce qui explique qu'il faille utiliser une commande particulière (SAVSECDTA) pour sauvegarder ces autorisations. - ce qui rend la fonction recherche des autorisations assez longue, puisqu'il faut adresser l'objet *USRPRF et peut-être le profil de groupe pour savoir si un utilisateur à des droits. |
Les performances de la fonction contrôle des droits seront améliorées, si vous utilisez les droits du groupe principal au lieu de droits privés. (puisque mémorisés dans l'objet) - Mais : il faut que cela soit un profil de groupe ce ne peut pas être le propriétaire il doit représenter le groupe utilisant le plus fréquemment cette application. vous devez éviter les droits privés pour en tirer profit. (les droits de groupe n'étant testés qu'après les droits individuels) Il est probable que le gain de performances ne justifiant pas la remise en cause de l'existant, il faille réserver cette notion aux nouvelles applications. Le groupe principal est indiqué sur les écrans de gestion des objets (WRKOBJ, DSPOBJD, DSPOBJAUT,...) |
De nouvelles commandes permettent d'utiliser le groupe principal : - CHGOBJPGP (Change Object Primary Groupe) - WRKOBJPGP (Work with Objects by Primary Groupe) - DSPUSRPRF avec le type *OBJPGP Profils de groupe multiples : Un utilisateur peut maintenant être membre de 1 à 16 groupes de profils. Lors de la création du profil, le paramètre GRPPRF définira le profil de groupe principal. Un nouveau paramètre (SUPGRPPRF) permettra d'ajouter jusqu'à 15 autres profils de groupe. |
Jusqu'à la V2R30 : lorsque le profil utilisateur reste le propriétaire des objets créés (valeur *USRPRF dans le paramètre OWNER), le paramètre GRPAUT indique alors les droits du groupe sur cet objet. A partir de la V3R10 : un nouveau paramètre (GRPAUTTYP) indiquera, en plus, les types de droits à accorder au groupe pour ces objets : - *PRIVATE = droits privés définis en GRPAUT accordés au groupe - *PGP = le profil de groupe sera le groupe principal de l'objet (ainsi tout objet créé par un utilisateur appartenant à un groupe fera de ce groupe le PGP de cet objet, autrement dit les droits du groupe seront stockés dans l'objet) |
Rappels sur le contrôle des droits jusqu'en V2R30 ordre des niveaux ordre des droits contrôlés recherchés a) *ALLOBJ (sauf au niveau Public) 1°) Utilisateur b) droits sur l'objet lui-même 2°) Groupe c) droits via une liste d'autorisations + en fin de recherche, 3°) Public prise en compte des droits adoptés |
Ajouts V3R10 ordre des niveaux ordre des droits contrôlés recherchés ........................... : : a) *ALLOBJ : - raccourci (*) : (sauf au niveau Public) 1°) Utilisateur : : : - raccourci (*) : b) droits sur l'objet : : lui-même : <--+ 16 boucles : 2°) Groupe : | au maximum, : c) droits via une liste : | avec cumul des : d'autorisations : | autorisations (**) : : --+ : + en fin de recherche, 3°) Public : : prise en compte des :.........................: droits adoptés (*) tentative d'utilisation directe des droits accordés au niveau Public (**) dont le PGP - les autorisations étant portées par l'objet lui-même |
Le principe est de rechercher les droits suffisants pour exécuter la fonction demandée, sur les 16 profils de groupe (= 16 adressages) Les droits sur les groupes sont Cumulés ! Exemple : Un utilisateur appartenant aux cinq groupes indiqués ci-dessous, déclanche une action nécessitant TOUS les droits sur les données (open I/O par ex.) Droits ------Objet------ -----Données----- Utilisat Groupe sur objet O M E A R R A U D E *GROUP QPGMR USER DEF X X *GROUP GRP1 USER DEF X X *GROUP GRP2 USER DEF X X X X *GROUP GRP3 USER DEF X X *GROUP GRP4 USER DEF X X X *PUBLIC *USE X X ------------------------------------- résultat --------------> x x x x x x x Le système a analysé les CINQ profils de groupe, pour trouver les droits |
Ceci dit, le système s'arrete dès qu'il trouve les droits suffisants: Exemple : (même recherche, les droits de QPGMR ont changés) Droits ------Objet------ -----Données----- Utilisat Groupe sur objet O M E A R R A U D E *GROUP QPGMR USER DEF X X X X X X *GROUP GRP1 USER DEF X X *GROUP GRP2 USER DEF X X X X *GROUP GRP3 USER DEF X X *GROUP GRP4 USER DEF X X X *PUBLIC *USE X X ------------------------------------- résultat --------------> x x x x x x x Le système n'a analysé que le profil QPGMR. |
Le principe des raccourcis est de voir si *PUBLIC ou le PGP ont les droits demandés (s'il n'y a pas de droits privés, qui pourraient être *EXCLUDE par exemple) Exemple : (toujours même recherche, les droits de *PUBLIC ont changés) Droits ------Objet------ -----Données----- Utilisat Groupe sur objet O M E A R R A U D E *GROUP QPGMR USER DEF X X X X X X *GROUP GRP1 USER DEF X X *GROUP GRP2 USER DEF X X X X *GROUP GRP3 USER DEF X X *GROUP GRP4 USER DEF X X X *PUBLIC *USE X X X X X X X Le système a autorisé la fonction puisque *PUBLIC a les droits requis. Ce faisant il n'a analysé aucun profil de groupe (gain de temps) |