고흐의 연구실/Trouble shooting

AD 서버 ldap search 결과를 모두 가져오지 못하는 현상 / AD서버 policy 확인

전고흐 2023. 4. 1. 00:28
728x90

 

case)

LDAP API를 이용하여 AD서버의 사용자를 긁어 오려고 했음.

CONNECT 성공, BIND 성공

search 까지 진행이 되는데, 사용자를 다 가져오지 못하는 현상 발생.

패킷 덤프를 떠서 확인 해보니, search api로 인해 사용자를 가져오다가 중간에 잠시 멈추고  unbind 패킷을 보내고 연결이 끊겼다.

왜 사용자를 중간에 가져오다가 멈추는 걸까?

 

해결방안)

LDAP API는 문제가 없었으며, AD 서버 설정의 문제였음.

AD 서버 설정상 결과를 출력해주는 최대 페이지와 크기를 지정하고 있다.

해당 이슈가 발생했던 이유는 사용자의 수가 AD 서버의 출력 가능한 최대 페이지 수를 초과했던 것.

AD 서버의 설정을 바꾸어 주었더니 정상 동작함.

 

아래와 같이 AD 서버 설정값을 확인할 수 있으며, 값을 변경할 수 있다.

 

AD 서버 Policy 확인 방법

1) AD서버 접속 후, CMD 실행

2) ntdsutil.exe  (Enter)

3) ldap policy (Enter)

4) connect (Enter)

5) connect to domain [도메인명] (Enter)

6) q (Enter)

7) show values (Enter)

 

확인요소

 

AD SERVER POLICY

MaxPageSize : LDAP 프로토콜 응답에 지원되는 최대 Page

MaxResultSetSize : LDAP 프로토콜 응답에 지원되는 최대 크기(Byte)

 

MaxPageSize 값 변경

set MaxPageSize to [size]

commit changes

 

MaxResultSetSize 값 변경

set MaxResultSetSize to [size]

commit changes

1) AD서버 접속 후, CMD 실행

2) ntdsutil.exe  (Enter)

3) ldap policy (Enter)

4) connect (Enter)

5) connect to domain [도메인명] (Enter)

6) q (Enter)

7) show values (Enter)

 

 

적용 결과)

최대 페이지 사이즈를 사용자 수 이상으로 늘렸더니, ldap search api로 모든 사용자를 가져올 수 있었음.

 

추가로, 일부 사용자만을 가지고 오고 싶다면 BaseDN값을 하위 디렉터리로 지정하던가 search 검색 조건을 입력하여 원하는 사용자 그룹만을 가져올 수 있다.

 

 

끝으로)

사용자 정보를 관리하는 인증 서버의 경우, 현업에서 사용하는 규모의 크기의 테스트 서버를 구축하기 힘들 뿐더러

현업 서버를 경험하기도 힘들다.

때문에, 이러한 이슈의 경우는 발생할 때 마다 정리하여 다양한 상황에 대한 원인을 예측할 수 있어야 한다.

직접적인 트러블 슈팅을 하는 직무는 아니지만, 개발자로서 이러한 상황까지 고려하여 개발하고, 솔루션을 제공할 수 있도록 하자.

 

 

728x90

'고흐의 연구실 > Trouble shooting' 카테고리의 다른 글

Oracle과 LDAP의 충돌  (0) 2022.01.15