본문 바로가기
기술자료 (KB)/Python

Python으로 LDAP3 방법으로 Active Directory 연결

by 이완주 2024. 7. 29.

이번 내용은 Python으로 Active Directory에 연결을 하는 방법을 소개

물론 연결 후 정보를 가져오거나 수정 혹은 생성 등의 작업을 할 수 있음. 

 

1. LDAP3 설치

Active Directory는 인터넷 산업 표준 프로토콜인 LDAP을 이용하여 접속이 가능하다.

이를 위해서는 기본 ldap3 모듈을 설치 해야 한다.

 

pip install ldap3

 

2. 연결 테스트

LDAP3 로 연결이 잘 되는지 확인 - 연결 성공으로 잘 연결 됨을 확인 함.

 

서버IP, 계정ID, 계정비밀번호 값을 변경하면 사용이 가능

여기서 사용하는 계정은 소스에 들어가는 서비스 계정을 만들어 사용하고 일반 관리자 계정으로 사용하지 않는 것을 권장

 

from ldap3 import Server, Connection, ALL

# 서버 정보와 사용자 자격 증명 설정
server = Server('서버IP', get_info=ALL)
conn = Connection(server, user='계정ID', password='계정비밀번호')

# 연결 시도
if not conn.bind():
    print('연결 실패:', conn.result)
else:
    print('연결 성공')

# 연결 해제
conn.unbind()

 

3. 정보 가져오기

이제 AD의 값을 가져와 보자 - cn=*는 현재 위치의 모든 사용자 및 그룹 정보를 가져오는 것을 의미한다. 

cn=wjlee 라고하면 해당 wjlee 계정의 정보를 가져오게 된다.

    conn.search('dc=gsoft,dc=local','(cn=*)')
    print(conn.entries)

 

위의 예제 말고도 (objectcategory=person) 등 다양한 필터 조건으로 원하는 값을 가져올 수 있게 된다.

from ldap3 import Server, Connection, ALL

# 서버 정보와 사용자 자격 증명 설정
server = Server('서버IP', get_info=ALL)
conn = Connection(server, user='계정ID', password='계정비밀번호')

# 연결 시도
if not conn.bind():
    print('연결 실패:', conn.result)
else:
    print('연결 성공')
    conn.search('dc=gsoft,dc=local','(cn=*)')
    print(conn.entries)

# 연결 해제
conn.unbind()

 

실행 결과

 

 

 

 

[관련문서]

ldap3 · PyPI

 

ldap3

A strictly RFC 4510 conforming LDAP V3 pure Python client library

pypi.org

 

댓글