pause-café
destinée aux informaticiens sur plateforme IBM i.
Pause-café #63
Outils orientés sécurité
Tout d'abord, Guy nous l'a présenté, le Menu SECTOOLS
Page principale :
SECTOOLS SECURITY TOOLS SYSTEM: S44R7480 SELECT ONE OF THE FOLLOWING:
WORK WITH PROFILES 1. CHECK PROFILES FOR DEFAULT PASSWORDS
2. DISPLAY ACTIVE PROFILE LIST 3. CHANGE ACTIVE PROFILE LIST .................................. 4. PROCESS INACTIVE PROFILES <---:pour désactiver les profils : : non utilisés pendant x jours. : 5. DISPLAY ACTIVATION SCHEDULE <-- : [l'option 3 permet d'indiquer : 6. SCHEDULE PROFILE ACTIVATION ! : une liste de type "tout sauf"]: ! :................................: 7. DISPLAY EXPIRATION SCHEDULE ! 8. SCHEDULE PROFILE EXPIRATIONS ! ................................ !---:pour indiquer, pour certains : : profils, une plage horaire : : de validité (ouverture de : SELECTION OR COMMAND : session impossible en dehors): ===> :..............................: F1=HELP F3=EXIT F4=PROMPT F9=RETRIEVE F12=CANCEL
Page suivante :
SECTOOLS SECURITY TOOLS SYSTEM: S44R7480 SELECT ONE OF THE FOLLOWING:
WORK WITH AUDITING 10. CHANGE SECURITY AUDITING 11. DISPLAY SECURITY AUDITING
REPORTS 20. SUBMIT OR SCHEDULE SECURITY REPORTS TO BATCH <- menu SECBATCH
21. ADOPTED OBJECT INFORMATION <--- ........................ 22. AUDIT RECORD REPORT ! : : 23. AUTHORIZATION LIST AUTHORITIES ! : Liste les programmes : 24. COMMAND AUTHORITY !---: compilés en *OWNER : 25. COMMUNICATIONS INFORMATION : : 26. DOCUMENT AUTHORITY :......................: 27. FILE AUTHORITY A suivre... SELECTION OR COMMAND ===> F1=HELP F3=EXIT F4=PROMPT F9=RETRIEVE F12=CANCEL
........................................................................... : : le menu SECBATCH propose les mêmes options (de liste uniquement), :: : mais les commandes sont soumises (à préférer donc ! ) :
:.........................................................................:
System i Navigator propose de nombreuses options
L'option sécurité permet de définir les principales options de sécurité
Liste d'autorisation, vous affiche tous les objets *AUTL de votre système (édition des droits possible)- Stratégies, les principales valeurs système ayant trait à la sécurité (ouverture de session particulièrement)
un clic droit sur Sécurité propose "Configuration".
Vous appelez un assistant (un mini audit sécurité)
etc...
On vous affiche ici les modifications qu'il serait souhaitable de faire :
Puis vous pouvez sauvegarder ces recommandations ainsi que les explications associées
- Rapport d'informations administrateur : rapport technique destiné à l'administrateur sécurité.
- Rapport d'informations utilisateurs : comment présenter les modifications aux utilisateurs.
et enfin LES APPLIQUER
ATTENTION, la valeur par défaut "application immédiate", modifie immédiatement vos valeurs système.
Prenez plutôt l'option "sauvegarde des modifications"
En V5R20, L'option 7 du menu STRSST, permet de fixer certaines options de sécurité :
........................................................................... : Work with System Security : : System: AS400: : Type choices, press Enter. : : : : Allow system value security changes . . . . . 1 1=Yes, 2=No : : Allow new digital certificates . . . . . . . 1 1=Yes, 2=No : : Allow a service tools user ID with a : : default and expired password to change : : its own password . . . . . . . . . . . . . . 2 1=Yes, 2=No : :.........................................................................:
La première option permet d'empêcher la modification de certaines valeurs système (on dit alors qu'elles sont verrouillées)
voici la liste des valeurs système devenant non modifiables si vous indiquez 2 (jusqu'à ce que vous indiquez 1)
QALWOBJRST QDSCJOBITV QPWDPOSDIF QALWUSRDMN QINACTMSGQ QPWDRQDDGT QAUDCTL QLMTDEVSSN QPWDRQDDIF QAUDENACN QLMTSECOFR QPWDVLDPGM QAUDFRCLVL QMAXSGNACN QRETSVRSEC QAUDLVL QMAXSIGN QRMTSIGN QAUTOCFG QPWDEXPITV QRMTSRVATR QAUTORMT QPWDLMTAJC QSECURITY QAUTOVRT QPWDLMTCHR QSHRMEMCTL QCRTAUT QPWDLMTREP QUSEADPAUT QCRTOBJAUD QPWDLVL QVFYOBJRST QDEVRCYACN QPWDMAXLEN QPWDMINLEN QDSPSGNINF
lors de l'utilisation de la commande CHGSYSVAL, vous recevez CPF18C0
La valeur système &1 ne peut pas être modifiée
- Administration d'application
La première chose à faire avec Client Access est de définir les droits des différents utilisateurs, option par option :
Pour cela, choisissez (avec un clic droit sur le nom du système) : "Administration d'application"
à la première utilisation ou lors d'un changement de version, vous risquez de voir :
il s'agit de nouvelles options d'op.nav, non enregistrées sur l'AS/400 (elles sont enregistrée en tant que point d'exit [WRKREGINF].)
choisir OK, vous montre les applications non encore enregistrées :
que vous devez ajouter, afin qu'elles apparaissent sur la fenêtre de droite.
Voilà !
Vous définissez, ensuite, fonction de client access (Operation navigator compris) par fonction , qui a le droit de les utiliser.
et cela à deux niveaux,
Premièrement, les droits par défaut :vous indiquez :
1/ pour System i Navigator
- la colonne "Utilisation par défaut" indique un droit (cochée) ou une absence de droit (non cochée) pour un profil standard.
- la colonne "Utilisation de tous les objets" indique un droit ou une absence de droit pour un profil *ALLOBJ.
- "Utilisation personnalisée", indique des droits spécifiques pour un ou plusieurs utilisateurs.
2/ pour les applications Client Access, les droits par défaut
3/ Il existe aussi une option équivalente pour "Gestion centralisée"
(clic droit sur Gestion centralisée à la place d'un nom de système)pour indiquer des droits individuels, prenez l'option "utilisateurs et groupe", pour l'utilisateur concerné, choisissez "propriété".
puis fonctions
Indiquez alors quelles sont les fonctions pour lesquelles, cet utilisateur ne respecte pas la règle générale.
C'est dans ce cadre que la PTF SF99601 level 16, (c'est de base en V7) propose une administration de la base sans être *JOBCTL
ou WRKFCNUSG et les fonctions QIBM_DB_SQLADM et QIBM_DB_SYSMON
Gestion de l'utilisation de fonctions
Indiquez vos options, puis appuyez sur ENTREE.
2=Modifier l'utilisation 5=Utilisation
Opt ID fonction Nom de la fonction
_ QIBM_DIRSRV_ADMIN IBM Tivoli Directory Server Administrator
_ QIBM_ACCESS_ALLOBJ_JOBLOG Accès à l'historique de travail du travail
_ QIBM_ALLOBJ_TRACE_ANY_USER Trace any user
_ QIBM_WATCH_ANY_JOB Watch any job
_ -> QIBM_DB_SQLADM Administrateur de base de données
_ -> QIBM_DB_SYSMON Informations de base de donnéesLe premier fournit l'accès aux options d'administration de la base, le deuxième un accès restreint en consultation.
Quelques nouveautés du dernier trimestre 2012
SQL (avec le niveau TR5 ou SF99701 level 19)
- En V7, il est possible d'utiliser un nom en trois parties lors d'une requête SQL
Select * from AUTREAS.MABIB.MATBALE
Où AUTRESAS représente le nom d'une base "remote", défini par ADDRDBDIRE
La connexion doit être implicite (ADDSVRAUTE)
Avec le niveau 15 de SF99701 l'utilisation d'un "." ou d'un "/" est admise sous la convention d'appellation système (*SYS)
Select * from MABIB/MATABLE join MABIB.AUTRETABLE
Avec le niveau 18 on peut insérer dans une table locale le résultat d'un Select remote
insert into tablelocale (
select * from AUTREAS.AUTREBIB.AUTRETABLE where xxxx)
- Quand vous créez une procédure cataloguée elle est enregistrée dans SYSPROCS et SYSPARMS
Il existe un mécanisme qui l'enregistre à nouveau dans le catalogue système lors d'un RSTOBJ
Ce mécanisme de mise à jour du catalogue est désormais aussi assuré lors de l'utilisation des commandes :
- CRTDUPOBJ
- CPYLIB
- RNMOBJ
- MOVOBJ
simplifiant le passage en production des objets.
- Le même niveau de correctif (19) permet de définir une valeur par défaut pour un paramètre de procédure
CREATE OR REPLACE PROCEDURE Creation_client(IN NOCLI DEC( 6, 0),IN DEPCLI CHAR(3) DEFAULT('44'),IN DATCLI DATE DEFAULT CURRENT DATE)LANGUAGE SQLBEGIN/* corps de la procédure */END;
L'appel peut se faire ensuite sous la forme
CALL Creation_client('123456')
CALL Creation_client('123456', '22')
CALL Creation_client('123456', '22', DEFAULT)
Les paramètres peuvent être nommés, afin d'éviter de renseigner un paramètre précédent par exemple
CALL Creation_client('123456', DATCLI=>'2013-01-17')
Enfin, la valeur par défaut peut même être "dynamique" :
IN DEPCLI CHAR(3) DEFAULT
(SELECT depNum FROM departements WHERE deptNom='Morbihan')
RDP 8.5.1
- Divers'
Il est possible maintenant de créer une connexion SSH avec un système ayant ce type de service actif
(rappel sur IBM i, il faut le lancer par STRTCPSVR *SSHD)Chaque type de connexion peut être activé (visible) ou pas
On peut demander la réouverture de la perspective "explorateur de système distant" dans le même état que la dernière fois.
Si vous décidez d'utiliser les informations du cache, lors de cette réouverture, vous pouvez en préciser l'obsolescence (en heures)
IBM i, toujours, possibilité d'empêcher la sauvegarde des mots de passe en local, en créant un fichier connection.properties
• Ce fichier doit être créé dans /QIBM/UserData/rse avec le CCSID 819 et les droits de lecture
• Il doit contenir DENY_PASSWORD_SAVE = true | false
Nouvelle préférence empêchant l'expansion de l'arborescence lors de la création d'un membre
L'option "Source/Vérifier (Invite)", permet :
- De définir sir vous utilisez ALWNULL(*USRCTL) pour la vérification
- De positionner des options DEFINE et un chemin des sources à inclure pour cette vérification
- De sauvegarder ces préférences, par "Paramètres d'enregistrement"
- De générer le PCML du programme.
La définition d'un point d'entrée de service (Debug) peut maintenant se faire directement sur le membre source (avant il fallait le faire depuis l'objet *PGM)
LPEX
Nouvelle option pour mettre en commentaire les lignes sélectionnées (ctrl + /, ctrl + \ pour défaire)Résultat ->
vous pouvez d'ailleurs, paramétrer la manière dont doivent apparaître les commentaires.
Nous avions déjà F3 pour aller sur une déclaration (sous programme par exemple)
Quand la touche "ctrl" est enfoncée, vous pouvez cliquer sur tout élément et aller à sa déclaration (variable, procédure, etc...)
touche "ctrl" enfoncée :
La fenêtre structure est mise à jour temps réel, pour les déclarations de variable et de procédure
(sauf paramétrage contraire, voir plus haut le paramétrage de LPEX)Pour les déclarations de fichier, ce dernier est ajouté, il faut faire F5 pour aller "chercher" la liste des zones
>
Ceci entraînant automatiquement une mise à jour des suggestions faites par l'assistant de code (ctrl + espace)
, qui affiche maintenant les décimales pour une variable numérique
Enfin, LPEX signale temps réel les erreurs de syntaxe, en proposant une solution (ici FOR sans ENDFOR)
Concepteur d'écran
Screen designer et Report designer deviennent les éditeurs par défaut des DSPF et PRTF, plus besoin d'utiliser l'option "Ouvrir Avec ..."
Les noms (format et zones) sont automatiquement placés en MAJUSCULES dans le source (enfin !)
La vue structure permet de choisir l'élément actif, particulièrement pour activer les mots-clé niveau fichier (DSPSIZ) par exemple
L'option trier est admise niveau format (permet de trier le source en fonction des positions), avant ce n'était possible qu'au niveau zone
Enfin, sur la vue table
•Pour la liste des objets vous pouvez faire apparaître une colonne date de dernière utilisation,
•Pour la liste des membres vous pouvez faire apparaître une colonne bibliothèque et fichier sourceet vous avez maintenant le choix du format des dates (création, modification et dernière utilisation)
IBM i Access Client Solution
La version 1.1.1 (25 Octobre 2012) apporte un certain nombre d'améliorationsune utilisation plus simple du produit en environnement IBM i, évitant le login quand on est déjà sur IBM i.
Pour utiliser le transfert de fichier depuis IBM i :
- Après avoir fait un transfert depuis votre PC, téléchargez
- le répertoire contenant le produit, particulièrement
- acsbundle.jar
- AcsConfig.properties
- le fichier .dtfx, contenant la définition du transfert
- Modifiez le fichier .dtfx
- paramètre ClientFile, indiquez le fichier résultat
- paramètre FDFFile, indiquez la localisation du fichier décrivant la liste des zones.
- lancez une première fois le transfert depuis QSH
Par ( si vous avez mis acsbundle dans /ACS et le fichier dtfx dans /MesTransferts)
java -jar /ACS/acsbundle.jar -Dos400.class.path.security.check=0
/PLUGIN=download /file=/MesTransferts/le-fichier.dtfx
Au premier lancement (pour l'utilisateur) acceptez la licence
cette phase d'acceptation en mode caractère n'est disponible que depuis la version 1.1.1, avant il fallait monter une session X11 avec VNC
Si tout ce passe bien, vous verrez:
- Vous pourrez ensuite lancer cela directement avec la commande RUNJVA (depuis un CL ou un job soumis)
Résultat
- Si vous ne souhaitez pas voir les messages résultat
- Le fichier Excel est bien généré, ainsi que le fichier de description .fdfx
- Bien sur vous pouvez modifier le fichier .dtfx
- Quant au format à obtenir (.csv par exemple)
- mais aussi la partie requête SQL
- Enfin, vous pouvez lancer directement l'option cldownlaod, qui exporte la totalité d'un fichier,
le format du fichier résultat étant déduit de l'extension
RUNJVA CLASS('/IBMACS/acsbundle.jar')
PARM('/PLUGIN=cldownload' '/SYSTEM=as400'
'/hostfile=BDVIN1/PRODUCTEUR' '/clientfile=/tmp/prod.xls')
L'utilisation d'une vue dans la paramètre /hostfile étant tout à fait admise !
Autres nouveautés
Connexion
- Utilisation possible de kerberos (EIM)
- Possibilité de partager les identifiants de connexion entre systèmes
- D'utiliser toujours le même login ou de se connecter à chaque fois (comme sur Windows)
- nouveau gestionnaire de certificats (pour SSL)
Sessions 5250
- importation des fichiers .ws et .kmp de Client Access pour Windows
- Utilisation possible de kerberos
- possibilité de saut de signon
- paramétrage de la barre d'outils et du clavier
Une nouvelle fonction , Printer Output, permettant une gestion des spools
Edit/préférence
Choisissez :
- le répertoire de téléchargement (attention, par défaut c'est le bureau)
- si vous transformez les spools en PDF
- Si oui , vous pourrez voir tous les spools, la visualisation lancera Acrobat Reader
- Si non, vous ne pourrez voir que les spools de type texte, notepad sera lancé pour l'affichage
View/Set Filter
Vous permet de définir vos critères de constitution de la liste des spools
- par utilisateur
- par OUTQ
Ensuite, lancez une action (téléchargement et/ou visualisation)
Ci-dessus affichage en PDF d'un spool Unicode.
Comment attirer (et conserver) de jeunes recrues
Historiquement, nous avons beaucoup réalisé de formations d'accompagnement aux nouveautés des équipes en place :
- Passage au RPG-IV / ILE
- Syntaxe et évolutions SQL
- Monde Web (Apache sur IBM i , Web services, ...)
- Nouveautés des versions
- Outils graphiques :
- System i Navigator
- WDSc puis RDI enfin RDP
- DB2 Web Query
Même si nous continuons à réaliser ce type de formations, vous nous demandez de plus en plus de former de jeunes recrues, car vous ne trouvez plus de développeurs sur le marché.
Les stagiaires, pour ce type de cours, sont aujourd'hui le plus souvent :
- De jeunes développeurs ayant un cursus universitaire
- Ayant un parcours sur des langages comme .Net, Java, PHP
- Sont parfaitement à l'aise avec SQL
- Utilisent souvent pour la première fois un langage procédural (non objet)
- Sont assez retors au mode terminal et au mode commande.
Pour continuer , nous allons donc regarder notre support de cours (développement sur IBM i / 12 jours)
que nous avons ouvert : 3 fois en 2011, 4 fois en 2012, déjà une session prévue en Février 2013.
VOLUBIS
Conseil et formation sur AS/400
Tel : 02.40.30.00.705 rue du Tertre
44477 CARQUEFOU
Fax : 02.40.30.39.22
Développement sur serveur IBM i - (12 jours, 84 heures)
•But : Acquérir les connaissances permettant de programmer sur un serveur System i
•Mise en œuvre :
Les stagiaires utilisent des PC connectés à un serveur Iseries / System i
La formation est accompagnée de travaux pratiques.•Evaluation :
La formation est validée par une attestation de fin de stage et une feuille d'évaluation.
•Contenu de la formation :
Architecture AS400 - Synthèse générale (2 jours) JOUR 1 :
· NOTIONS FONDAMENTALES
Mémoire virtuelle - Espace Adressable Unique
- pagination/cadres de page /adressage virtuel.
Notion d'objet sur AS/400
- définition
- encapsulation (description - autorisations)
- types d'objets - attributs
Bibliothèque, *LIBL, QSYS
- unicité/qualification
- liste de bibliothèques (structure/manipulation)· Langage de contrôle, commandes
Syntaxe des commandes.
- (verbes - sujets)
Mots-clés/paramètres
Invite, aide.
Les différents systèmes d'aide, les sites web.
Comment retrouver une commande (Menus)· Organisation générale
Sous systèmes.
- Définition/attachements
- unités, entrées.
- Gestion des sous-systèmes
-IPL/PWRDWNSYSNotion de travail
- Ressources / historique
-initialisation - JOBD (définition - rôle).
Travaux interactifs / batchs
JOBQ,OUTQ.
Retrouver un travail
System i Navigator
JOUR 2:Editeur/Spools
OUTQ (détermination de l'OUTQ)
- Editeur (définition / gestion)
- retrouver un spool- manipulation de spools
mode commande
System i Navigator
- messages
· SECURITE
Profils et Sécurité sur AS/400
Profils/profils de groupe
- classes d'utilisateurs - droits spéciaux
- les profils standards
Autorisations,
objet/bibliothèque/liste d'autorisations
Mécanisme de recherche.
Recouvrement
Notion de sauvegarde
- les élements à sauvegarder
- SAVLIB / SAVOBJ / SAV
- les différentes méthodes de recouvrement automatique
Fonction journal
ASP
Remote journalRéseau
Introduction aux réseaux SNA
TCP/IP
Adressage sur IBM i
Gestion des serveurs
utilitaires mode caractère/ System i NavigatorRDP
Nouvelle génération d’utilitaires
Base de données sur AS/400 (3 jours)
JOUR 3 :
DEFINITIONS GENERALES
Définition des fichiers PF et LF
- description de fichiers.
- notion de membres
Répertoire
Conception d’un fichier physique
Syntaxe du langage SDD
Bases du langage
Définition d'un fichier physique
Conception avec SQL
logiciels associés (DFU/QUERY)
importation/exportation
Conception avec Iseries NavigatorFichiers logiques
Index (définition de clés)
redéfinition de format
jointure
JOUR 4:
EvolutionsIntégrité référentielle
Nouveaux types de données
SQL : création
d'index
de vues
principe des triggers
principe des procédures cataloguées
Autres évolutions de la syntaxe au fil de l’eau
V7 -> XMLAdministration / supervision avec Iseries Navigator
JOUR 5:
Les requêtes
Syntaxe SQL/400 de base
jointure, types de jointure
gestion de datesrequêtes complexes
Sous sélections
Fonctions OLAP (row_number() / ROLLUP/CUBE)
WITH
Programmation RPG 4 (6 jours)
JOUR 6 &7 :
FICHIERS EXTERNES
Rappel sur la base de données
- Spécif H
Déclaration de fichiers en externes
- Spécifs F
Spécif DLa logique libre
Les ordres d'entrée/sortie
- lecture (CHAIN,READ,READE,....)
- autres (UPDATE,DELETE,...)
Programmation structurée
- IF/ELSE/ENDIF
-Dow/Dou
- etc. ...Le format libreliste des fonctions intégrées
JOUR 8:
principe des PRTF, Report DESIGNER
Les fichiers écrans (DSPF)
Principes
Définition SDD
Utilitaire Screen DESIGNER
utilisation en RPG
JOUR 9 :
Les sous fichiers
Principes
- format d'enregistrement
- format de contrôle
Définition SDD
Mise en œuvre RPG
Les différentes méthodes de chargement
- statique
- page à page
Lecture d'un sous fichierJOUR 10:
Les appels de pgm
CALL / CALLB
Passage de paramètres
*ENTRY PLIST
Les appels en format libre/ prototypesIntroduction aux fonctions
Compléments
Le mode DEBUG avec RDP
JOUR 11:
Inclure du SQL dans le RPG
Evolutions
Transformer un pgm RPG existant en procédure cataloguée
Transformer un pgm RPG existant en Web service
Programmation en langage de contrôle (1 jour)
JOUR 12 :
· PRESENTATION / SYNTAXE
Présentation générale
- Interprété - compilé (structure).Variables
- déclaration
- manipulation de variables
- traitement de chaînes de caractères (concaténation/extraction)
- variables numériques
IF / GOTO / DO-ENDDO
V5R30 : DOWHILE / DOUNITL/ DOFOR, sous/pgm
· Extraction d'informations
notion de valeurs systèmes.
- principe
- principales valeurs systèmes
Les différentes commandes RTV...· Gestion des erreurs / Messages
MONMSG.
- Principe
- niveau commande/niveau programme
Introduction aux messages
- SNDMSG
- SNDPGMMSG· Utilisation de fichiers
Fichiers BD
- principe des fichiers de sortie
- lecture
- les commandes de substitution
Introduction aux fichiers écrans
- utilisation en CLLe jour 7 nous réalisons un programme en RPG Chargé de remplir un fichier INFOCENTRE (PF)
Structure du fichier INFOCENTRE
Le but est à partir d'une base vinicole de lire tous les producteurs et de charger des informations les concernant dans un fichier de sortie
Un producteur peut faire plusieurs vins (fichier des vins à lire)
Certains de ces vins sont dans le fichier cave, on peut alors dire que ce producteur est en cave.
Chaque vins est composé de cépages (jusqu'à 4), il faut noter
- Le nombre de cépage différents utilisés par ce producteur
- Le cépage le plus utilisé
Ceci nous permettant de voir la notion de tableau en RPG
(voir le source complet)
Le jour 8 le programme écrit dans un PRTF les mêmes informationsLe jour 11 ce programme devient une procédure cataloguée (que nous lançons depuis System i Navigator)
et nous voyons comment il aurait pu devenir un Service WEB
Quelques remarques et retours pour amorcer la discussion
Ils perçoivent assez vite la stabilité des systèmes Power, sont surpris de ne jamais en avoir entendu parlé pendant leurs études
(ou alors comme d'un système moribond !)Quand je montre System i Navigator et RDP, les stagiaires sont souvent "rassurés"
L'utilisation de SQL, de l'intégrité référentielle leur semble naturelle
(A l'inverse, l'utilisation du séquentiel indexé est une difficulté)Ils ont souvent une assez mauvaise image du RPG, le format libre les "libère" .... ;-)
la transformation, assez simple, des programmes historiques en procédures stockées ou en web services, les bluffe
Nos formations ont lieu du Lundi au Jeudi, parfois le retour sur site le Vendredi est une douche froide !!!
Aidez moi !
Copyright © 1995,2013 VOLUBIS