web-dev-qa-db-fra.com

Comment savoir quel serveur héberge LDAP sur mon domaine Windows?

J'essaie de développer une application (C #) pour interroger un serveur LDAP. Je ne connais pas le serveur réel nommé pour interroger - existe-t-il un moyen de le savoir en utilisant des outils Windows standard ou quelque chose dans .net?

J'ai également entendu des rumeurs selon lesquelles le nom du serveur (ldap: // server /) n'est pas toujours nécessaire tant que j'ai dc = domaine, dc = com dans ma chaîne de requête, mais j'ai jusqu'à présent pu de travailler avec elle de cette façon.

Des conseils?

Merci

35
bugfixr

Si vous utilisez AD, vous pouvez utiliser liaison sans serveur pour localiser un contrôleur de domaine pour le domaine par défaut, puis utilisez LDAP: // rootDSE pour obtenir des informations sur le serveur d'annuaire, comme décrit dans l'article lié.

15
Joe

AD enregistre les enregistrements de ressources SRV (Service Location) sur son serveur DNS que vous pouvez interroger pour obtenir le port et le nom d'hôte du serveur LDAP responsable dans votre domaine.

Essayez simplement ceci sur la ligne de commande:

C:\> nslookup 
> set types=all
> _ldap._tcp.<<your.AD.domain>>
_ldap._tcp.<<your.AD.domain>>  SRV service location:
      priority       = 0
      weight         = 100
      port           = 389
      svr hostname   = <<ldap.hostname>>.<<your.AD.domain>>

(à condition que votre serveur de noms soit le serveur de noms AD, ce qui devrait être le cas pour que l'AD fonctionne correctement)

Veuillez consulter Enregistrements SRV Active Directory et Livre blanc DNS Windows 20 pour plus d'informations.

94
Stefan Gehrig

Si la machine sur laquelle vous vous trouvez fait partie du domaine AD, ses serveurs de noms doivent être définis sur les serveurs de noms AD (ou, espérons-le, utiliser un chemin de serveur DNS qui résoudra éventuellement vos domaines AD). En utilisant votre exemple de dc = domaine, dc = com, si vous recherchez domain.com dans les serveurs de noms AD, il renverra une liste des IP de chaque contrôleur AD. Exemple de mon entreprise (avec le nom de domaine changé, mais sinon c'est un vrai exemple):

 mokey 0/home/jj33> nslookup example.ad 
 Serveur: 172.16.2.10 
 Adresse: 172.16.2.10 # 53 
 
 Non- réponse faisant autorité: 
 Nom: example.ad 
 Adresse: 172.16.6.2 
 Nom: example.ad 
 Adresse: 172.16.141.160 
 Nom: example.ad 
 Adresse: 172.16.7.9 
 Nom: example.ad 
 Adresse: 172.19.1.14 
 Nom: example.ad 
 Adresse: 172.19.1.3 
 Nom: example.ad 
 Adresse: 172.19.1.11 
 Nom: example.ad 
 Adresse: 172.16.3.2 

Notez que je fais la requête à partir d'une machine non AD, mais nos serveurs de noms Unix savent envoyer des requêtes pour notre domaine AD (exemple.ad) aux serveurs AD DNS.

Je suis sûr qu'il existe un moyen Windowsy super-lisse de le faire, mais j'aime utiliser la méthode DNS lorsque j'ai besoin de trouver les serveurs LDAP à partir d'un serveur non Windows.

12
jj33