SECURITE Un certain nombre de modifications, dans la gestion de la sécurité, ont été apportées en V3R10 pour administrer les nouveautés : - plus grande ouverture du système - nouveau système de gestion de fichiers (IFS) - fonctions base de données étendues - amélioration de l'intégrité du système |
Ces modifications portent sur les aspects suivants : - nouveaux droits sur les objets - droits sur les fichiers logiques - notion de groupe principal - profils de groupe multiples - identification des profils et des groupes - nouvelles commandes de gestion d'IFS - nouvelles valeurs système et commande de sécurité - nouveaux profils IBM |
Nouveaux droits sur les objets : SPCAUT(*IOSYSCFG) dans le profil utilisateur, accorde les droits de configurer le système (TCP/IP par exemple). Le droit *OBJALTER sur un objet permet de modifier les attributs d'un objet, par ex. les triggers ou les contraintes uniques et référentielles. Le droit *OBJREF sur un objet autorise à créer une contrainte référentielle en déclarant cet objet parent d'un autre objet. Le droit *EXECUTE permet d'exécuter un programme, ou de rechercher un objet dans une librairie. |
Droits sur les fichiers logiques : Des droits sur les données peuvent être indiqués sur les fichiers logiques, permettant une plus grande souplesse dans la sécurité. (voir ce cours). La restriction des accès aux données par des vues logiques (sélection des enregistrements, sélection des zones, etc...), permettent d'envisager une gestion très fine des autorisations d'accès aux données. Exemples : - voir et modifier certaines zones de certains enregistrements, mais ne pas pouvoir en ajouter ni en supprimer - voir certaines zones sur tout le fichier, mais ne pas pouvoir les modifier, ... Applications nombreuses en Paye, Comptabilité multi-sociétés, ... Par défaut, tous les droits sont accordés lors du changement de version. |
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 doits sur les groupes sont Cumulés ! Exemple : Un utilisateur appartenant aux cinq groupes indiqués déclenche une fonction nécessitant TOUS les droits sur les données. 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 la même, 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) |
Identification des profils et des groupes : Pour supporter les standards internationaux, tant en réseau qu'en client/serveur, les profils utilisateurs et les groupes de profils sont identifiés de façon unique à partir de la V3R10 : - User Identification Number (UID) - Group Identification Number (GID) Ces identifiants contiennent des valeurs (comprises entre 2° et 2³²) attribuées automatiquement par le système : - à la création du profil utilisateur - lorsque le profil est déclaré comme profil de groupe, à la création/modification d'un profil utilisateur |
Nouvelles commandes de gestion d'IFS : Un nouvel ensembles de commandes est disponible pour gérer la sécurité, dans le cadre d'IFS : CHGAUD - Change Auditing CHGAUT - Change Authority CHGOWN - Change Owner CHGPGP - Change Primary group DSPAUT - Display Authority WRKAUT - Work with Authority Ces nouvelles commandes supporte ces nouveaux droits : *RWX - Read/Write/Execute *RW - Read/Write *RX - Read/Execute *R - Read *WX - Write/Execute *W - Write *X - Execute |
Valeurs système et commandes de sécurité : QALWOBJRST - Nouvelle valeur système indiquant si les objets "sensibles" peuvent être restaurés. Valeurs possibles : *ALL Tous les objets sont restaurés, qu'ils disposent ou non # d'attributs sensibles pour la sécurité. # # # *NONE Les objets disposant d'attributs sensibles pour la sécurité # ne sont pas restaurés. # # # *ALWSYSSTT Les programmes disposant de l'attribut d'état système sont restaurés. # # ## *ALWPGMADP Les programmes disposant de l'attribut d'adoption sont # restaurés. |
QAUTORMT - Nouvelle valeur système autorisant une configuration automatique des contrôleurs remote. QPWDLMTREP - Valeur système limitant le nombre de caractères identiques dans un mot de passe. Peut prendre une nouvelle valeur (2), limitant cette répétition aux caractères consécutifs. Ex.: NINA est autorisé, ANNE est interdit. QPWDRQDDIF - Valeur système contrôlant la réutilisation des mots de passe précédents. Nouvelles valeurs 2,3,4,5,6,7 et 8, interdisant les 24,18,12,10,8,6 et 4 derniers utilisés. CHKOBJITG - Nouvelle commande contrôlant l'intégrité des objets appartenant à un ou plusieurs utilisateurs. Elle permet de déterminer les violations d'intégrité (modification du domaine, ou bien programme ou module altéré). |
Nouveaux profils IBM : Trois nouveaux profils IBM sont fournis avec l'OS/400, QMSF - Mail Server Framework QNETSPLF - Remote Spooling QTCP - TCP/IP (dans les éditions précédentes, ce profil était fourni avec le produit sous licence TCP/IP). |