====== python-ldap ======
* [[https://pypi.python.org/pypi/python-ldap/|python-ldap]]
* ''pip install python-ldap''
* [[http://www.python-ldap.org/docs.shtml|Python ldap documentation]]
===== Linux에 설치시 =====
* Linux에 설치시에 의존 라이브러리가 없어서 오류가 발생할 수 있다.
* [[http://stackoverflow.com/questions/4768446/python-cant-install-python-ldap|module - Python: can't install python-ldap]]
* Ubuntu에서 미리 설치할 패키지
sudo apt-get install python-dev libldap2-dev libssl-dev libsasl2-dev
* CentOS에서 미리 설치할 패키지
sudo yum install openldap-devel
# 자동으로 cyrus-sasl-devel 설치됨.
===== LDAP 접속 인증 =====
import ldap
l = ldap.initialize('ldap://ldapaddress:port')
l.set_option(ldap.OPT_REFERRALS, 0)
l.simple_bind_s('계정명속성이름=계정명','비밀번호') # who 부분은 바뀔 수 있음.
===== 값비교 및 계정 비밀번호 일치 여부 판단 =====
# 기본적인 비교
l.compare_s('uid=사용자ID,ou=user,dc=example,dc=com', '비교할속성이름', '기대값')
# 결과가 1이면 일치, 0이면 불일치
l.compare_s('uid=사용자ID,ou=user,dc=example,dc=com', '비밀번호속성이름', '사용자가입력한비밀번호')
===== 검색 =====
l.search_s('ou=user,dc=example,dc=com', ldap.SCOPE_SUBTREE, '(검색대상속성이름=검색어)',
['결과속성1', '결과속성2' ..])
# 결과는 튜플의 배열이다.
* 검색 Scope
* ''ldap.SCOPE_BASE''
* ''ldap.SCOPE_ONELEVEL''
* ''ldap.SCOPE_SUBTREE''