2017-10-30 1 views
0

Ich denke, was ich versuche zu tun ist ziemlich einfach, ich möchte ldap so einrichten, dass eingehende Bindungen überprüfen, dass das Passwort korrekt ist und der Benutzer ein Mitglied einer bestimmten Gruppe ist.Wie binden Sie einen Benutzer und stellen Sie sicher, dass er in der richtigen Gruppe ist?

die folgende Abfrage Ausführen ergibt die folgende

ldapsearch -x -LLL -H ldap:/// -b uid=myname,ou=users,dc=example,dc=com dn memberof 

Ergebnis

dn: uid=myname,ou=users,dc=example,dc=com 
memberOf: cn=admin,ou=groups,dc=example,dc=com 

ich die folgende Abfrage

ldapsearch -x -H "ldap://localhost" -D "(&(cn=My Name)(memberOf=cn=admin,ou=groups,dc=example,dc=com))" -W -b "dc=example,dc=com" 

ldapsearch werfen hält den folgenden Fehler

versucht haben,
ldap_bind: Invalid DN syntax (34) 
     additional info: invalid DN 

Was mache ich falsch?

+0

Ist diese Antwort genug oder stoßen Sie auf ein anderes Problem? Normalerweise verwenden wir für die Suche nach einem Eintrag ein technisches Konto, um an das Verzeichnis zu binden. Müssen Sie mit demselben Benutzer binden, für den Sie den Eintrag überprüfen möchten (dh Sie wissen nicht, ob dieser Benutzer über ausreichende Berechtigungen zum Durchsuchen des gesamten DIT verfügt)? – EricLavault

+0

@EricLavault, Ihre Antwort brachte mich auf den richtigen Weg, änderte den Befehl wie Sie vorgeschlagen haben und es hat funktioniert. Ich benutze auch einen nichtmenschlichen Dienst-Account für die Bindung, ich setzte den Filter als Bindung ein! Es macht jetzt Sinn –

Antwort

2

Es gibt 2 Dinge in Ihrer Suchanfrage zu beheben:

  • der Filter Teil sollte nach allen Optionen platziert werden und bevor die Liste der Attribute falls vorhanden.
  • Die -D-Option erfordert ein Argument, ein bind dn Bindung an das LDAP-Verzeichnis.

Mit anderen Worten: ldapsearch -x -H <ldapuri> -D <binddn> -W -b <basedn> <filter>

Vorausgesetzt, dass Sie diese binden dn cn=manager,dc=example,dc=com verwenden können, sollten Sie mit einer Abfrage suchen am Ende wie folgt:

ldapsearch -x -H "ldap://localhost" -D "cn=manager,dc=example,dc=com" -W -b "dc=example,dc=com" "(&(cn=My Name)(memberOf=cn=admin,ou=groups,dc=example,dc=com))" 

https://linux.die.net/man/1/ldapsearch

Verwandte Themen