Il y a quelques mois et après plusieurs jours de tests laborieux, nous avons fini par comprendre pourquoi Enterprise Users Security (EUS pour les intimes !) d’Oracle9i ne pouvaient pas valider leurs credentials dans un référentiel iPlanet. La raison est simple :
- Le mot de passe est stocké dans iPlanet sous une forme hashée avec un algorithme standard (e.g. SHA-1)
- Oracle9i n’est pas capable d’utiliser un autre algorithme que l’algorithme propriétaire et historique d’Oracle (i.e. O3LOGON)
Avec Oracle 10g R2, tout est censé *en théorie au moins* changer ! Deux indices bien cachés, nous mettent sur la voie :
- la note metalink N°272196.1 indique que le mot de passe des utilisateurs d’EUS d’Oracle 10.2 n’est plus validé sur l’attribut orclpassword d’OID (qui contient la forme O3LOGON du mot de passe) mais sur l’attribut authpassword qui contient une forme multi-valuée par des mots de passe (Cette forme peut par exemple contenir le mot de passe hashé sous la forme SHA-1)
- La documentation « Oracle® Database Enterprise User Administrator’s Guide – 10g Release 2 (10.2) – Part Number B14269-01 » indique dans les nouveautés d’Oracle 10.2 que la gestion des utilisateurs dans un annuaire tiers est supporté et notamment du fait que les algorithmes standards de vérification ont été introduit dans le produit
J’ai commencé à tester… J’ai installé OID (depuis le CD d’Oracle Application Server 10g), une base 10.2. Il faut également installer le client de la base de données qui contient Enterprise Security Manager (ESM) nécessaire au setup : je dois downloader le client de la base de données et je ne peux pas récupérer la distrib depuis chez moi… Pour visualiser le contenu d’OID et mettre à jour les attributs, j’ai téléchargé et installé LDAP Browser/Editor (LBE) (http://www-unix.mcs.anl.gov/~gawor/ldap/index.html).
J’ai créé un utilisateur et avec LBE, j’ai vérifié qu’en modifiant le mot de passe avec sa forme SHA-1 (seule forme que je peux récupérer d’iPlanet), je mets à null l’attribut orclpassword de l’utilisateur et la forme multi-valué de authpassword ne contient que la forme SHA-1 du mot de passe, soit pour « manager1 », la chaine {SHA}pcKXwV5ArDiB21EndhOuo3MbZzo=
La semaine prochaine, je paramètre EUS et je vérifie si… oui ou non ma théorie est correcte de manière pratique : pour l’instant rien n’indique le contraire ! La suite, bientôt…
GarK!