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...![]()
et en quoi ça te pose problème de dé-commenter tes lignes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 env.put(Context.SECURITY_PRINCIPAL,adminName); env.put(Context.SECURITY_CREDENTIALS,adminPassword);
Bonjour du lundi matin
Je peux les décommenter et changer le mode d'authentification en "simple", mais comme je t'ai dit, je ne connais pas le mot de passe du compte, donc cela a peu de chance de marcher...
(j'avais mis un mot de passe bidon au cas où par un miracle il s'avérerait être juste... mais en fait non!)
Hi
Il faut demander aux admins un compte (même si il est temporaire et avec des accès réduits) histoire que tu puisses au moins avancer et valider l'authentification . je ne vois pas ce que tu peux faire d'autre
J'ai testé avec un compte valide et ca y est! je suis connecté!
... donc le code était bon
par contre en prod je n'aurai jamais accès au compte qui exécuterait le programme et personne ne connaitra son mot de passe. (c'est fait exprès)
du coup je me demande si ca va être utile d'avancer si au final je ne peux pas me logger...
Pour les quelques personnes qui nous rejoignent, je rappelle mon problème :
Je veux me connecter à l'AD avec mon login et mdp windows sans avoir à les entrer directement dans mon programme...
Peut être que ce que tu veux c'est récupérer le login windows pour l'utiliser lors de la connexion.
Dans ce cas je te conseil de lire ce post
Pour récupérer le mot de passe, je crains que ca ne soit pas possible et que tu sera obligé de le demander via une pop-up.
Du coup je pense que ta problématique n'est pas de savoir comment se connecter à l'annuaire (puisque tu l'as déjà fait une fois) mais plutot, comment récupérer les identifiant de connexion.
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