20 octobre 2009

Tester l'accessibilité de HR Access Web

Depuis HRv5.0.3, la servlet HRAdmin permet - via le paramètre AUTOCHECK - d'obtenir un bilan rapide de l'accessibilité de l'application :

http[s]://[serveur]:[port]/[hraccess]/HRAdmin?ACTION=AUTOCHECK

Le résultat retourné sera, si aucune erreur n'est détectée :
<HRRESULT Error="0">
 <![CDATA[ Autocheck OK  ]]>
</HRRESULT>

Un utilitaire comme "wget" permettra de "scripter" un contrôle de disponibilité de HR Web.

Pour HRv7 cette commande est spécifique au Rich Client (WebApp hr-rich-client). La  console d'administration permet en revanche de visualiser les statuts des modules. L'URL utilisable est (FUNCTION correspondant au nom de la fonction dans l'objet topologie système) :
http[s]://[serveur]:[port]/[hraccess]/hr-admin-console/controler?action=status&function=[FUNCTION]&node=[FUNCTION]Node

Exemple :

  hradev@srvhra:/hraccess/txt/tmp> wget -nv \--http-user="hr" \--http-passwd="mot2passe" --output-document="/tmp/$CDPLPH.OPENHRS.status"  "http://1.2.3.4:12345/hr-admin-console/controler?action=status&function=OPENHRS&node=OPENHRSNode"
 
  hradev@srvhra:/hraccess/txt/tmp> cat "/tmp/$CDPLPH.OPENHRS.status"
  OK

PS : Toute la chaine de connexion n'est pas contrôlée par la servlet HRAdmin, notamment les mécanismes de connexion de l'utilisateur et la résolution de sa confidentialité. Il faut entendre ce contrôle comme nécessaire mais non suffisant.

8 octobre 2009

Tables working CO40 et CO41

Ces zones working des programmes de gestion de dossiers servent a stocker en mémoire la clef des demandes de mises à jour (table working CO40) et leur contenu (table working CO41). Ceci est valable pour les demandes de mise à jour (batch/TP), mais aussi pour les AMJ / AMK faits par les traitements rattachés aux processus de gestion.

Débordement de tables CO40 / CO41

En batch si la taille des zones CO40 / CO41 est insuffisante, les programmes basculent leurs données en base dans la table M8 (nom complet <RDPROS>M81). Ceci leur permet de continuer, mais avec des performances dégradées.
Depuis HRv3e, le TP fonctionne comme le batch avec une table de débordement CO40 en Base de Données. Les programmes peuvent toutefois bloquer sur des débordements en cas d'utilisation d'opérateurs ALE - opérateur incompatible avec la table en base.

1 octobre 2009

Cryptage standard HR du mot de passe UC10-CDPASS avec HRv3, v5, v7

Par défaut le mot de passe de l'annuaire HR Access (table UC10 champ CDPASS) est en clair... Le minimum est d'en crypter le contenu.

Pour activer le cryptage standard HR Access, rattachez un traitement de type BCF avec dans le contexte TBPPSW la ligne et regénérez votre processus de confidentialité (AS0DC en standard).
M   "1"          UT-TECRYP         10 IT UT-TECRYP="0"

HR note que le mot de passe est codé en alimentant le champ UC10-CDPRDE (ca sent la vampirisation de rubrique) :
  • 0 : non crypté
  • 1 : cryptage standard
  • 2 : cryptage spécifique

Ce cryptage standard fonctionne par translation de caractère (ce qui est loin d'être parfait). La règle peut se retrouver dans le squelette de BCX :
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-+;/ !(,)><=$_
-/AZ!1BFJV7(QSCL9X0Y,6+E4=2UR>); P5<8D_GK3MHIONW$T

Pour décoder un mot de passe, on pourra donc utiliser sous Unix une commande comme la suivante :
echo "!,X!7-" | tr "T\-/AZ!1BFJV7(QSCL9X0Y,6+E4=2UR>); P5<8D_GK3MHIONW\$" "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\-+;/ !(,)><=\$"

Pour activer un cryptage personnalisé on utilisera :
M   "2"          UT-TECRYP

Le reste est à coder (écrivez des fonctions de codage et de décodage). Vous pourrez aussi faire un appel par un CALL à un module externe ... à condition de linker ce dernier au BNR et au RTSDGN (en modifiant le Makefile de adm/src).

Notez que quelle que soit votre politique, sur le réseau et dans les logs on pourra trouver le mot de passe crypté ... suivant la méthode standard.