У меня около 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?

Есть мысли по этому поводу ...

2 ответа2

0

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

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

Например:

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

(| ... ) ИЛИ в LDAP. Оператор AND (& ... )

0

Возможно, я не совсем понимаю это, но если вы хотите поместить его в скрипт, вы можете написать скрипт 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .