Masquage du mot de passe dans les commandes WAS
Classiquement, pour passer une commande ou un script WAS, on tape en ligne de commande quelque chose comme :
wsadmin -user lmd -password lmd -lang jython -f abcd.py
ou
stopServer -user lmd -password lmd - profileName LMD
Pendant l’exécution de cette commande, un “ps” affiche les paramètres utilisés et en particulier le mode de passe.
Il est possible d’éviter cette situation en modifiant le fichier soap.client.props situé dans le répertoire /properties.
Mode opératoire :
- Editer le fichier soap.client.props situé dans le répertoire /properties
- Passer la ligne com.ibm.SOAP.securityEnabled à true.
- Renseigner les deux autres lignes avec le login et le mot de passe à utiliser.
Exemple avant édition :
com.ibm.SOAP.securityEnabled=false
com.ibm.SOAP.loginUserid=
com.ibm.SOAP.loginPassword=
Exemple après édition :
com.ibm.SOAP.securityEnabled=true
com.ibm.SOAP.loginUserid=lmd
com.ibm.SOAP.loginPassword=lmd
Il est maintenant possible de passer des commandes sans que le mot de passe apparaisse sur un ps.
Mais à ce stade, le mot de passe est en clair dans le fichier.
Il est possible d’encoder ce mot de passe avec la fonction PropFilePasswordEncoder (située dans le bin du profil par exemple) :
PropFilePasswordEncoder "nom_fichier" liste_propriétés_mot_de_passe -profileName profile
Exemple :
PropFilePasswordEncoder /app/was70/profiles/Dmgr/properties/soap.client.props com.ibm.SOAP.loginPassword -profileName Dmgr
Résultat :
com.ibm.SOAP.loginUserid=lmd
com.ibm.SOAP.loginPassword=xorMzI7
Le mot de passe est xoré, mais reste vulnérable à une déxorisation. Il est donc souhaitable de protéger l’accès à ce fichier .props de manière appropriée.
Version PDF de cet article : Masquage du mot de passe dans les commandes WAS