# LDAP(Lightweight Directory Access Protocol) 디렉토리 구조로 데이터를
# 관리하는 프로토콜로 회사와 같은 조직의 사용자 정보(이름, 메일, 주소등) 조회에 많이 사용된다.
# ldap 은 디렉토리(트리) 구조에 각 노드를 의미하는 아래와 같은 요소들 조합으로
# DN(distinguished name)을 구성해 사용자를 식별한다.
# 전통적인 조직 구조로 디렉토리를 구성한 경우
예) korea 나라에 aaa 회사에 programmer 부서에 다니는 ysoftman 사용자는
c(country, 보통 DN 구성에서 빠진다.) -> korea
o(ogranisation) -> aaa
ou(ogranisation unit) -> programmer
cn(common name, 사람과 같은 개인적인 요소를 나타낸다.) -> ysoftman
sn(surname 성을 사용할 수 있는 경우) -> yoon
"cn=ysoftman,ou=programmer,o=aaa"
# 인터넷 스타일로 디렉토리를 구성한 경우
예) aaa.com 도메인(회사)에 programmer 부서에 다니는 ysoftman 사용자는
dc(domain component) -> com
dc(domain component) -> aaa
ou(ogranisation unit) -> programmer
uid(user id) -> ysoftman
다음과 같이 DN 을 만들 수 있다.
"uid=ysoftman,ou=programmer,dc=aaa,dc=com"
# ldap 조회하기
# ldapsearch 설치 - centos
sudo yum install openldap-clients
# ldapsearch 설치 - mac
brew install openldap
# 이제 ldapsearch 툴로 조회할 수 있다.
# -x : simple authentication
# -h : ldaphost
# -p : ldapport
# -D : binddn (DN 명시)
# -w : Use passwd as the password for simple authentication.
# 최상단 기준으로 조회돼서 결과가 많이 나온다.
ldapsearch -x -h ldap.aaa.com -p 389 -D "cn=ysoftman,ou=programmer,o=aaa" -w passwd123
# 조회 시작 위치를 정하면 결과 범위를 줄일 수 있다.
# -b : searchbase
ldapsearch -x -h ldap.aaa.com -p 389 -D "cn=ysoftman,ou=programmer,o=aaa" -w passwd123 -b "cn=programmer"
# 이외에도 ldappasswd, ldapadd, ldapdelete 등의 명령이 있다.
# 참고