LDAP-Suchabfrage

LDAP-Suchabfrage

Ich habe ungefähr 10 Benutzer, denen Zugriff auf eine bestimmte Anwendung gewährt wurde, die AD-Authentifizierung verwendet.

ldapsearch -p xxx -LLL -x -w test -h abc.com -D abc -b dc=abc,dc=com sAMAccountName=xyz | grep displayName

Kann sAMAccountNameich auf einmal auf meine gesamte Benutzerliste (die eine separate Textdatei ist) verweisen? Wenn nicht, können wir diesen Befehl einfach in ein Skript einfügen und den Benutzer seine Benutzer eingeben sAMAccountNameund prüfen lassen, ob sie in AD vorhanden sind?

Irgendwelche Gedanken dazu...

Antwort1

Ich verstehe das vielleicht nicht ganz, aber wenn Sie es in ein Skript einfügen möchten, könnten Sie ein Bash-Skript wie unten schreiben, um zur Eingabe eines Kontonamens aufzufordern.

#!/bin/bash
echo -n "Please enter username to lookup: "
read USERNAME
DISPLAYNAME=`ldapsearch -p xxx -LLL -x -w test -h abc.com -D abc -b dc=abc,dc=com sAMAccountName=$USERNAME | grep displayName`

if [ -z "$DISPLAYNAME" ]; then
  echo "No entry found for $USERNAME"
else 
  echo "Entry found for $USERNAME"
fi

Antwort2

Ihr Skript muss einen entsprechenden LDAP-Filter mit allen Benutzernamen erstellen:

(|(sAMAccountName=foo)(sAMAccountName=bar)(sAMAccountName=baz))

Zum Beispiel:

filter="(|"
while read -r name; do
    filter+="(sAMAccountName=${name})"
done
filter+=")"

(| ... )ist ODER in LDAP. Der UND-Operator ist (& ... ).

verwandte Informationen