LDAP 검색 쿼리

LDAP 검색 쿼리

AD 인증을 사용하는 특정 애플리케이션에 대한 액세스 권한을 부여받은 사용자는 약 10명입니다.

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

sAMAccountName전체 사용자 목록(별도의 텍스트 파일)을 한 번에 참조할 수 있나요 ? 그렇지 않다면 이 명령을 스크립트에 넣고 사용자가 명령을 입력하여 sAMAccountNameAD에 존재하는지 확인할 수 있습니까?

이에 대한 어떤 생각이라도...

답변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에 있습니다. AND 연산자는 입니다 (& ... ).

관련 정보