Bonjour,
Je voudrais savoir comment faire pour interroger l'AD ?
J'ai vu quelques articles qui ne m'ont franchement pas aidé...
Merci de votre aide!
Bonjour,
Je voudrais savoir comment faire pour interroger l'AD ?
J'ai vu quelques articles qui ne m'ont franchement pas aidé...
Merci de votre aide!
Bonjour
Tout d'abord est-ce que tu as commencé par faire quelque chose ?
un code ?
une erreur que tu obtiens ?
Je t'avoues que je connais l'active directory et non pas advance directory
mais si c'est un annuaire je ne vois pas le problème
tu as des API dont une faite par sun qui te permet d'interroger un annuaire
Tu pourrais commencer par essayer un code avec l'API de sun
Lol! Autant pour moi, c'était ACTIVE DIRECTORY... (une preuve comme quoi je connais réellement le sujet)
Bon, tout d'abord merci pour ta réponse!
Oui j'ai commencé àfairepomper un code que voici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 import javax.naming.*; import javax.naming.directory.*; import javax.naming.ldap.PagedResultsControl; import javax.naming.ldap.*; Hashtable env = new Hashtable(); String searchBase = "DC=intra-dev01,DC=bdf-dev01,DC=local"; String searchFilter = "(&(objectCategory=group)(cn=" + sFiltreNomGroupe + "))"; //String adminName = "CN=IDEA_ASV,CN=Users,"+searchBase; //String adminPassword = "BOXIR2SP3"; env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory"); //set security credentials, note using simple cleartext authentication env.put(Context.SECURITY_AUTHENTICATION,"none"); //env.put(Context.SECURITY_PRINCIPAL,adminName); //env.put(Context.SECURITY_CREDENTIALS,adminPassword); //connect to my domain controller env.put(Context.PROVIDER_URL, "ldap://intra-dev01.bdf-dev01.local"); try { // Create the initial directory context LdapContext ctx = new InitialLdapContext(env,null); } catch (NamingException e) { System.err.println("Paged Search failed." + e); } catch (java.io.IOException e) { System.err.println("Paged Search failed." + e); }
et j'obtiens l'erreur suivante :
[LDAP: error code 1 - 00000000: LdapErr: DSID-0C090627, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, vece
Le problème c'est que normalement j'exécute le programme depuis un compte windows qui est connecté à l'AD, donc pas besoin de donner login et mot de passe. Par ailleurs je ne le connais pas
Mais là apparemment il en a besoin d'un. Je ne sais pas comment passer outre.
ça parait normal qu'il y ait besoin d'un couple login/mot de passe !
sinon tout le monde peut interroger l'annuaire avec un client et en général on y stocke des informations importantes
est-ce que déjà tu arrives à accéder à la machine :
intra-dev01.bdf-dev01.local
Sinon tu peux toujours essayer
ou avec un login vide eventuellement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 env.put(Context.SECURITY_PRINCIPAL,"anonymous"); env.put(Context.SECURITY_CREDENTIALS,"");
Sinon il faut demander à tes admins
Oui j'ai pingé l'adresse et il n'y a pas de souçis...
Par contre j'ai testé avec "anonymous", il me met le même message d'erreur.
Le compte dont je parle est un compte particulier destiné à interroger l'AD. Il a des droits particuliers différent des autres comptes. Ce sera à partir de ce compte là que le programme sera exécuté. La sécurité est fait à ce niveau là.
Sinon on m'a parlé d'un fichier keytab qui contiendrait les paramètres d'authentification... je ne sais pas si t'en as entendu parler... je me demande s'il y aurait une API qui permettrait de l'utiliser??
Ils en parlent ici :
http://stackoverflow.com/questions/1...authentication
mais ne donnent pas de solution...![]()
Utilise cette librairie : http://code.google.com/p/jedi-obi/
Elle est gratuite, simple, efficace et robuste. Ya des samples, la javadoc et est mise a jour regulierement.
Partager