Запрос ldapsearch

Запрос ldapsearch

У меня около 10 пользователей, которым предоставлен доступ к одному конкретному приложению, использующему аутентификацию AD.

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

Можно ли sAMAccountNameсделать так, чтобы ссылаться на весь мой список пользователей (который является отдельным текстовым файлом) сразу? Если нет, можем ли мы просто поместить эту команду в скрипт и позволить пользователю ввести их sAMAccountNameи проверить, существуют ли они в AD?

Есть какие-нибудь мысли по этому поводу...

решение1

Возможно, я не совсем понимаю это, но если вы хотите поместить это в скрипт, вы можете написать скрипт bash, как показано ниже, чтобы запросить имя учетной записи.

#!/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

решение2

Ваш скрипт должен будет создать правильный фильтр LDAP со всеми именами пользователей:

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

Например:

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

(| ... )В LDAP это OR. Оператор AND это (& ... ).

Связанный контент