Je cherche à travers d'un serveur Web (sous Tomcat) à modifier le mot de
passe dans un ActiveDirectory.
Y-a-il une API spécifique et disponible pour manipuler les fonctions de
l'ActiveDirectory ?
L'ADSI dispose-il d'une interface Java ? Si oui, comment la récupérer et
l'utiliser ?
Malgré mes recherches sur le Web, je tourne en rond.
Les solutions trouvées fonctionnent plutôt sur des LDAP "standards".
Merci de votre aide, cela m'enlèverait une épine du pied ...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
JScoobyCed
EJL wrote:
Bonjour à toutes et à tous,
Je cherche à travers d'un serveur Web (sous Tomcat) à modifier le mot de passe dans un ActiveDirectory.
Y-a-il une API spécifique et disponible pour manipuler les fonctions de l'ActiveDirectory ? L'ADSI dispose-il d'une interface Java ? Si oui, comment la récupérer et l'utiliser ?
Malgré mes recherches sur le Web, je tourne en rond. Les solutions trouvées fonctionnent plutôt sur des LDAP "standards".
Merci de votre aide, cela m'enlèverait une épine du pied ...
Elisabeth Toulouse
Bonjour,
J2SE contient tous ce qu'il faut pour lire/ecrire vers LDAP, y compris AD. Il suffit que le servlet connecte a LDAP et envoie une query pour mettre a jour le mot de passe. Il y a un tutoriel sur java.sun.com sur LDAP: http://java.sun.com/products/jndi/tutorial/ldap/
-- JSC
EJL wrote:
Bonjour à toutes et à tous,
Je cherche à travers d'un serveur Web (sous Tomcat) à modifier le mot de
passe dans un ActiveDirectory.
Y-a-il une API spécifique et disponible pour manipuler les fonctions de
l'ActiveDirectory ?
L'ADSI dispose-il d'une interface Java ? Si oui, comment la récupérer et
l'utiliser ?
Malgré mes recherches sur le Web, je tourne en rond.
Les solutions trouvées fonctionnent plutôt sur des LDAP "standards".
Merci de votre aide, cela m'enlèverait une épine du pied ...
Elisabeth
Toulouse
Bonjour,
J2SE contient tous ce qu'il faut pour lire/ecrire vers LDAP, y compris
AD. Il suffit que le servlet connecte a LDAP et envoie une query pour
mettre a jour le mot de passe.
Il y a un tutoriel sur java.sun.com sur LDAP:
http://java.sun.com/products/jndi/tutorial/ldap/
Je cherche à travers d'un serveur Web (sous Tomcat) à modifier le mot de passe dans un ActiveDirectory.
Y-a-il une API spécifique et disponible pour manipuler les fonctions de l'ActiveDirectory ? L'ADSI dispose-il d'une interface Java ? Si oui, comment la récupérer et l'utiliser ?
Malgré mes recherches sur le Web, je tourne en rond. Les solutions trouvées fonctionnent plutôt sur des LDAP "standards".
Merci de votre aide, cela m'enlèverait une épine du pied ...
Elisabeth Toulouse
Bonjour,
J2SE contient tous ce qu'il faut pour lire/ecrire vers LDAP, y compris AD. Il suffit que le servlet connecte a LDAP et envoie une query pour mettre a jour le mot de passe. Il y a un tutoriel sur java.sun.com sur LDAP: http://java.sun.com/products/jndi/tutorial/ldap/
-- JSC
EJL
Je viens de lire le tutorial indiqué.
J'avais déjà bien trouvé le moyen de modifier les attributs, mais comme ActiveDirectory ne possède pas le champ "userPassword", ce qui aboutit à une impasse.
La seconde piste trouvée est d'utiliser les "extended" operations, comme indiqué dans l'article : "http://rfc3062.x42.com/". Mais, dans l'ActiveDirectory, les "supportedextension" ne semblent pas exister (er notamment l'opération : "1.3.6.1.4.1.4203.1.11.1" qui pourrait m'aider) ...
Une idée ?
Merci,
EJL
JScoobyCed wrote:
EJL wrote:
Bonjour à toutes et à tous,
Je cherche à travers d'un serveur Web (sous Tomcat) à modifier le mot de passe dans un ActiveDirectory.
Y-a-il une API spécifique et disponible pour manipuler les fonctions de l'ActiveDirectory ? L'ADSI dispose-il d'une interface Java ? Si oui, comment la récupérer et l'utiliser ?
Malgré mes recherches sur le Web, je tourne en rond. Les solutions trouvées fonctionnent plutôt sur des LDAP "standards".
Merci de votre aide, cela m'enlèverait une épine du pied ...
Elisabeth Toulouse
Bonjour,
J2SE contient tous ce qu'il faut pour lire/ecrire vers LDAP, y compris AD. Il suffit que le servlet connecte a LDAP et envoie une query pour mettre a jour le mot de passe. Il y a un tutoriel sur java.sun.com sur LDAP: http://java.sun.com/products/jndi/tutorial/ldap/
-- JSC
Je viens de lire le tutorial indiqué.
J'avais déjà bien trouvé le moyen de modifier les attributs, mais comme
ActiveDirectory ne possède pas le champ "userPassword", ce qui aboutit à
une impasse.
La seconde piste trouvée est d'utiliser les "extended" operations, comme
indiqué dans l'article : "http://rfc3062.x42.com/".
Mais, dans l'ActiveDirectory, les "supportedextension" ne semblent pas
exister (er notamment l'opération : "1.3.6.1.4.1.4203.1.11.1" qui
pourrait m'aider) ...
Une idée ?
Merci,
EJL
JScoobyCed wrote:
EJL wrote:
Bonjour à toutes et à tous,
Je cherche à travers d'un serveur Web (sous Tomcat) à modifier le mot
de passe dans un ActiveDirectory.
Y-a-il une API spécifique et disponible pour manipuler les fonctions
de l'ActiveDirectory ?
L'ADSI dispose-il d'une interface Java ? Si oui, comment la récupérer
et l'utiliser ?
Malgré mes recherches sur le Web, je tourne en rond.
Les solutions trouvées fonctionnent plutôt sur des LDAP "standards".
Merci de votre aide, cela m'enlèverait une épine du pied ...
Elisabeth
Toulouse
Bonjour,
J2SE contient tous ce qu'il faut pour lire/ecrire vers LDAP, y
compris AD. Il suffit que le servlet connecte a LDAP et envoie une query
pour mettre a jour le mot de passe.
Il y a un tutoriel sur java.sun.com sur LDAP:
http://java.sun.com/products/jndi/tutorial/ldap/
J'avais déjà bien trouvé le moyen de modifier les attributs, mais comme ActiveDirectory ne possède pas le champ "userPassword", ce qui aboutit à une impasse.
La seconde piste trouvée est d'utiliser les "extended" operations, comme indiqué dans l'article : "http://rfc3062.x42.com/". Mais, dans l'ActiveDirectory, les "supportedextension" ne semblent pas exister (er notamment l'opération : "1.3.6.1.4.1.4203.1.11.1" qui pourrait m'aider) ...
Une idée ?
Merci,
EJL
JScoobyCed wrote:
EJL wrote:
Bonjour à toutes et à tous,
Je cherche à travers d'un serveur Web (sous Tomcat) à modifier le mot de passe dans un ActiveDirectory.
Y-a-il une API spécifique et disponible pour manipuler les fonctions de l'ActiveDirectory ? L'ADSI dispose-il d'une interface Java ? Si oui, comment la récupérer et l'utiliser ?
Malgré mes recherches sur le Web, je tourne en rond. Les solutions trouvées fonctionnent plutôt sur des LDAP "standards".
Merci de votre aide, cela m'enlèverait une épine du pied ...
Elisabeth Toulouse
Bonjour,
J2SE contient tous ce qu'il faut pour lire/ecrire vers LDAP, y compris AD. Il suffit que le servlet connecte a LDAP et envoie une query pour mettre a jour le mot de passe. Il y a un tutoriel sur java.sun.com sur LDAP: http://java.sun.com/products/jndi/tutorial/ldap/
-- JSC
JScoobyCed
Je suis assez etonne de constater que le champ 'userPassword' n'apparait pas par default. En forcant a retourner le champ userPassword (grace au SearchControl), le champ est vide meme pour un compte qui a un mot de passe.
Je viens de chercher sur le web des infos. Je suis tombe sur un interessant thread (http://forums.devshed.com/t74683/s.html). En particulier en page 5 et 6). C'est du PHP, mais ca se traduit en Java (voir plus bas) L'idee: - se connecter sur ldap//monserver:636 avec un connection SSL (le port 636 est cense etre le port SSL. Si votre server a un autre port SSL changer le 636. Note2: se connecter avec ldaps://monserver ne marche pas toujours tres bien) - il faut forcer le mode LDAPv3 (dans le hashtable d'environement) - il faut utiliser un set de remove + modify du champ 'unicodePwd' - il faut coder en unicode par: <sniplet> String oldpass = "oldpass1233!"; oldpass = """ + oldpass + """; // entourer de guillemets String unioldpass = ""; for(int i=0;i<oldpass.length();i++) { unioldpass += (oldpass [i] + "