darkzonesd

LDAP - Verbindungsfehler durch Filter

Halllo zusammen face-smile

ich habe momentan ein Problem mit der Anbindung einer Anwendung mittels LDAP, die Anwendung bietet mir eine "Test" Funktion mit der ich die Verbindung/Filterung testen kann.

Ich habe hier bereits versucht das ganze schön nach den Mitgliedern einer Gruppe zu filtern "(&(objectClass=user)(memberOf=CN=Enerchart,OU=Gruppen,DC=xxxxxxx,DC=local))
", aber Fehlanzeige, die Anwendung sagt nur "Fehler: Verbindung fehlgeschlagen". ich habe versucht stufenweise den Filter zu lockern dieser scheitert jedoch schon an der Bedingung "(objectClass=user)". Nur mit BaseDN, ohne Filter funktioniert das ganze.

Was mich aber am meißten wundert ist das der simple filter "(sAMAccountName=<meinBenutzer>)" funktioniert hat...
unbenannt
Wenn ich dann den Filter erweitere um eine "OR" Klausel mit einem zweiten Benutzer, funktioniert der Filter schon wieder nichtmehr.
unbenannt2
Die Software heißt Enerchart und verwendet laut eigenen Angaben den "allgemein verwendete LDAP Syntax", hat jemand mit solchen Fehler schon Erfahrungen gesammelt? Bis jetzt lief das mit anderen Anwendungen immer reibungslos..

Viele Grüße
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 673212

Url: https://administrator.de/forum/ldap-verbindung-fehler-filter-673212.html

Ausgedruckt am: 26.06.2025 um 21:06 Uhr

StefanKittel
StefanKittel 05.06.2025 um 13:55:51 Uhr
Goto Top
Hallo, Du kannst mal mit dsquery prüfen was der Server da so zurückgibt.
shebang
shebang 05.06.2025 um 14:02:21 Uhr
Goto Top
Zitat von @StefanKittel:

Hallo, Du kannst mal mit dsquery prüfen was der Server da so zurückgibt.

This.

Alternativ, da die Kollegen von Enerchart Ihre Doku nicht online führen (oder ich bin zu unfähig sie zu finden), wäre ein Anruf beim Support gut oder ein Blick ins Handbuch. Wird sicherlich definiert sein, wie das Tool die Eingabe gerne möchte.

Gruß
pebcak7123
pebcak7123 05.06.2025 um 14:10:07 Uhr
Goto Top
moin,
versuch mal objectClass=person statt objectClass=user
Snowman25
Snowman25 05.06.2025 um 14:24:43 Uhr
Goto Top
Servus!

Ich kann mir gut vorstellen, dass hier fehlendes Escaping seitens der Anwendung Schuld ist. Versuche mal, das & mit einem Backslash zu prefixen:
"(\&(objectClass=user)(memberOf=CN=Enerchart,OU=Gruppen,DC=xxxxxxx,DC=local))"

Schönen Gruß,
@Snowman25
DarkZoneSD
DarkZoneSD 05.06.2025 um 14:30:43 Uhr
Goto Top
Zitat von @StefanKittel:

Hallo, Du kannst mal mit dsquery prüfen was der Server da so zurückgibt.

Hi,

mittels dsquery bekomme ich alle Benutzer aus der Gruppe zurückgegeben. Ich habe allerdings gemerkt das es auch einen anderen Fehler gibt, der da lautet: "Fehler: Account not Found" und nicht der "Fehler: Verbindung fehlgeschlagen" den ich bekomme.

Ich nehme mal an das es ist wie @Snowman25 vermutet und die Sonderzeichen lösen eine nicht separat erwartete Exception aus die dann unter die generelle Exception mit der Fehlermeldung: "Fehler: Verbindung fehlgeschlagen" fällt..


Ich kann mir gut vorstellen, dass hier fehlendes Escaping seitens der Anwendung Schuld ist. Versuche mal, das & mit einem Backslash zu prefixen:

Das mit dem Escape Char hat leider nicht funktioniert 😕

Und es ist ebenfalls richtig das es keine Dokumentation zur Software gibt, auch nicht als Kunde.. @shebang

Ich werde mich mal separat beim Support melden, bis jetzt hatte ich nur vermutet das meine Filter Grütze sind 😁

Viele Grüße
pebcak7123
pebcak7123 05.06.2025 um 16:00:51 Uhr
Goto Top
Was du auch versuchen könntest ist dir die query mit dem Adexplorer learn.microsoft.com/de-de/sysinternals/downloads/adexplorer "zusammenzuklicken" dazu das Programm starten, mit dem dc verbinden dann rechtsklick auf den obersten Container - search Container. In dem neuen Fenster kann man sich dann die query aus den einzelteilen basteln und den vollständigen query in der mitte sehen. Achtung es ist hier alles immer mit dem logischen and verknüpft, das kann man aber später ja einfach selbst in das gewünschte ändern.
BiberMan
Lösung BiberMan 05.06.2025 aktualisiert um 17:13:12 Uhr
Goto Top
Manche dieser Tools erfordern oft das der Filter immer nur ein einziges Objekt zurückgibt oder ein bestimmes Attribut für den Usernamen vorhanden sein muss, je nach Directory "uid" oder "sAMAccountName" oder "userPrincipleName", damit die Abfrage quasi immer nur einen eindeutigen User zurückgibt oder eben keinen wenn kein Treffer. Anstatt dort aber den Usernamen im Klartext zu hinterlegen was natürlich keinen Sinn ergibt, gibt man dort eine Variable ein die durch die Software automatisch duch den Usernamen aus der Authentifizierung ersetzt wird. Als Variable würde ich testweise etwa %uid verwenden, bei anderen Tools ist es wiederum <USERNAME>, aber das ist nur eine Vermutung was die hier nutzen, den richtigen Variablennamen musst du in deren Doku nachschlagen oder erfragen, Online stellen die leider außer einem Feature-PDF nicht viel Informationen zum Download.

Setze diese Variable dann in deine Query, wie hier
(&(sAMAccountName=%uid)(memberOf=CN=Enerchart,OU=Gruppen,DC=xxxxxxx,DC=local))
Klick auch mal auf das "i"-Icon vor dem Feld, vielleicht stehen dort wichtige Hinweise dazu.
DarkZoneSD
DarkZoneSD 06.06.2025 um 07:36:13 Uhr
Goto Top
Setze diese Variable dann in deine Query, wie hier
(&(sAMAccountName=%uid)(memberOf=CN=Enerchart,OU=Gruppen,DC=xxxxxxx,DC=local))

Super Tipp! face-smile

(&(memberOf:1.2.840.113556.1.4.1941:=CN=Enerchart,OU=Gruppen,DC=xxxxxxxx,DC=local)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(sAMAccountName=%s))

Der Support hat mir nur einen ihrer eigenen Filter geschickt und da ist mir das %s ins Auge gesprungen. Denn in solchen Feldern:
Klick auch mal auf das "i"-Icon vor dem Feld, vielleicht stehen dort wichtige Hinweise dazu.
Steht leider auch rein garnichts face-sad

clipboard-image

Vielen Dank für den Tipp!
BiberMan
BiberMan 06.06.2025 aktualisiert um 07:46:57 Uhr
Goto Top
Supi 👍.