LDAP3 user Daten von AD ziehen

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
VolkerH
User
Beiträge: 20
Registriert: Dienstag 24. September 2013, 07:16
Wohnort: 46499 Hamminkeln

Hallo zusammen,

seit einigen Stunden versuche ich vergeblich eine LDAP Anfrage gegen einen LDAP Server in unserem Unternehmen abzusetzen, leider läuft es schon ziemlich vorne auf einen Fehler. Habe schon versucht über Google und Co entsprechende Hilfen zu bekommen, aber ich konnte die Infos nicht auf meinen Fall umsetzen. LDAP ist für mich Neuland und in Python bin ich nicht sattelfest.

Mein Test:
from ldap3 import Server, Connection, SIMPLE, SYNC, ALL, SUBTREE

HOST = 'ldap-server'
user_dn = 'login-name'
PASSWORD = 'pw'

s = Server(HOST, port=636, get_info=ALL)
c = Connection(s, authentication=SIMPLE, user=user_dn, password=PASSWORD, check_names=True, lazy=False, client_strategy=SYNC, raise_exceptions=False)
c.open()
c.bind()

Die Fehlermeldung: ldap3.core.exceptions.LDAPSocketReceiveError: error receiving data: [WinError 10054] An existing connection was forcibly closed by the remote host

Meine Pythonversion: Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] on win32
LDAP Server ist Windows Domain AD.

Was mache ich hier falsch? Gibt es ein einfaches Beispiel für solch eine Abfrage?

Danke und viele Grüße,
Volker
Benutzeravatar
__blackjack__
User
Beiträge: 13006
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@VolkerH: Was sagt das Log auf LDAP-Seite dazu warum der Server die Verbindung geschlossen hat?
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
VolkerH
User
Beiträge: 20
Registriert: Dienstag 24. September 2013, 07:16
Wohnort: 46499 Hamminkeln

Hallo _blackjack_,
ich habe leider kein Zugriff auf den LDAP-Server, somit auch nicht auf das Log-File.
Gibt es vielleicht ein funktionierendes kleines Beispiel, dass ich auf meine Frage umsetzen kann? Im Netz und hier habe ich schon wie wild gesucht, aber ich kann ja auch nicht viel ausprobieren, da mein Script auf ein Fehler läuft. Im Debugger konnte ich sehen, dass mit dem LDAP-Server "gesprochen" wurde, aber das Bind funzt nicht.
Viele Grüße,
Volker
Benutzeravatar
sls
User
Beiträge: 480
Registriert: Mittwoch 13. Mai 2015, 23:52
Wohnort: Country country = new Zealand();

@VolkerH: `username` und `password` sind valide? Konntest du das bereits anderweitig testen? Eine Idee wäre, mit einem LDAP-Browser (z.B. von Softerra) zu prüfen, ob die übergebenen Parameter vom AD so akzeptiert werden, um ein Python-Problem auszuschließen. Ansonsten hilft nur das Log vom LDAP-Server weiter, wie __blackjack__ bereits schrieb.
When we say computer, we mean the electronic computer.
lars09
User
Beiträge: 2
Registriert: Mittwoch 17. April 2019, 11:27

Hallo,
LDAP-Port ohne TSL-Verschlüsselung: 389
Du nimmst 636, also mit TSL-Verschlüsselung.
Der LDAP Server lauscht auf 636? Vielleicht hilft das weiter: https://stackoverflow.com/questions/771 ... honldapssl
vG
Antworten