Problème de transmission de mot de passe à SAP
Après la mise à jour vers les versions 2004s et ultérieures de SAP Netweaver, la connexion de l'Utilisateur CPIC ne fonctionne plus
Symptôme
Les essais de connexions basées sur mot de passe (sur les systèmes : ABAP à partir de la version 7.00 / NetWeaver 2004s / mySAP ERP 2005) échouent, même si l'Utilisateur a enregistré un mot de passe a priori correct dans un composant frontal ou la destination d'un autre système. Cependant, une connexion directe SAPGUI avec le même mot de passe réussit.
Origine
Les systèmes ABAP à partir de la version 2004s (7.00) de NetWeaver prennent en charge des mots de passe de 40 caractères maximum, et sensibles à la casse. Dans les anciennes versions, la limite était de 8 caractères et toutes les minuscules étaient mises en majuscules.
Si un mot de passe non rétrocompatible est utilisé dans le nouveau système, et si le composant frontal ou intermédiaire ne peut traiter correctement ces mots de passe, la connexion échoue. La raison en est en général la conversion (invisible) minuscule/majuscule.
En effet, le mot de passe entré par l'Utilisateur n'arrive pas au Serveur sous sa forme originale, mais sous une forme modifiée soit directement après la saisie, soit lors de la transmission (qui s'effectue à travers de nombreux composants).
Définitions
- Mot de passe : rétrocompatible / non rétrocompatible
Un mot de passe est rétrocompatible s'il a 8 caractères au maximum et ne contient aucune minuscule.
Un mot de passe n'est pas rétrocompatible s'il a plus 8 caractères au maximum et/ou contient au moins une minuscule.
Les anciennes versions des systèmes ABAP ne prennent en charge que les mots de passe rétrocompatibles. A partir de la version 7.00, les deux sortes de mots de passe peuvent être utilisées. Comme les minuscules ne sont plus converties en majuscules, les mots de passe des nouvelles versions des systèmes ABAP ne sont généralement pas rétrocompatibles.
- Méthode de hachage de mots de passe / Versions de Code
Les systèmes ABAP ne sauvegardent pas les mots de passe en clair. Ils calculent à partir des données saisies une somme de contrôle qu'ils sauvegardent avec les méta-données décrivant le mode de hachage ("version de code"). Ces informations sont enregistrées dans les données de référence de l'Utilisateur et utilisées lors de la vérification du mot de passe. A partir du mot de passe saisi, une somme de contrôle est calculée avec la version de code enregistrée dans les données de référence de l'Utilisateur et comparée à celle de ces mêmes données.
La quantité des méthodes de hachage dépend de la version du programme, les nouvelles prenant toujours en charge celles des versions précédentes. De cette façon, la connexion protégée par mot de passe est toujours possible, même après une mise à jour.
Seules les méthodes de hachage de mot de passe des versions à partir de 7.00 prennent aussi en compte les mots de passe non rétrocompatibles. Les anciennes versions ne prennent en charge que les mots de passe rétrocompatibles.
Ce sont donc les données enregistrées dans les données de référence de l'Utilisateur (version de code) qui déterminent tout d'abord la prise en compte éventuelle de la connexion effectuée avec des mots de passe non rétrocompatibles.
Solution
- Emploi d'Utilisateurs techniques (dans des destinations RFC) :
Nous vous conseillons d'utiliser le type d'Utilisateur SYSTEM (ou SERVICE, si la fonction SAPGUI est nécessaire) sur le Serveur, car c'est le seul type pour lequel la durée de validité du mot de passe est illimitée. Tant que le mot de passe doit être saisi dans une destination RFC d'une version ancienne d'un système (= Client RFC), il doit être défini de façon rétrocompatible au niveau du Serveur Cela est toujours possible aux types SYSTEM ou SERVICE, même si les règles de définition des mots de passe obligent l'utilisation de mots de passe non rétrocompatibles (avec login/min_password_lng > 8 ou login/min_password_lowercase > 0 par ex.).
- Emploi d'anciens composants frontaux ou intermédiaires et connexion d'Utilisateurs "normaux" (de type DIALOG) :
Dans ce cas, il n'est pas indiqué de modifier les mots de passe des nombreux Utilisateurs (comme dans le cas précédent des utilisateurs techniques). Vous devrez dans ce cas remplacer les composants frontaux / intermédiaires obsolètes. La remarque SAP 792850 énumère les versions à partir desquelles certains composants frontaux et intermédiaires prennent en charge les mots de passe non rétrocompatibles. Il peut être de plus nécessaire d'actualiser d'autre composants logiciels (d'autres fournisseurs par ex.) dépendant de ces mêmes composants, dans le cas notamment où ces composants ont une fenêtre de dialogue de saisie de mot de passe propre mais ne prennent pas en charge les mots de passe non rétrocompatibles.
Provisoirement et à titre de test, vous pouvez définir le paramètre de profil login/password_downwards_compatibility sur 2 ou 3. Dans ce cas, le Serveur vérifie si le Client a envoyé un mot de passe rétrocompatible (coupé après 8 caractères et converti en majuscules) au lieu du mot passe non rétrocompatible attendu. Cela est alors journalisé dans le système (pour analyse des erreurs) et la connexion est considérée comme réussie (paramètre sur 3) Le paramètre peut être modifié dynamiquement, sans redémarrage du système avec la transaction SAP RZ 11.