LDAP(Lightweight Directory Access Protocol)[1]는 조직 · 구성원 · 장비 같은 데이터를 트리 구조로 저장한 디렉터리에 읽고 쓰기 위한 프로토콜이다. 애플리케이션이 디렉터리 서비스와 정보를 주고받는 공통 언어를 제공하며, 실무에서는 주로 사용자 계정을 한곳에 두고 여러 서비스가 같은 계정으로 인증하게 하는 데 쓴다. Kerberos · SSO · SASL · TLS 지원을 갖춰 IAM(Identity and Access Management)의 사용자 저장소 역할을 한다.
구현체는 OpenLDAP · 389 Directory Server(FreeIPA 의 바탕) · Microsoft Active Directory 가 있다. Active Directory 도 LDAP 으로 조회할 수 있어 ldapsearch 가 그대로 통한다.
LDAP 인증은 클라이언트-서버 모델이며 다음 요소로 이루어진다.
| 요소 | 뜻 |
|---|---|
| DSA (Directory System Agent) | LDAP 서버. slapd 가 이것이다 |
| DUA (Directory User Agent) | 서버에 접속하는 클라이언트 — 사용자 PC · 애플리케이션 |
| DIT (Directory Information Tree) | 항목이 이루는 트리. 최상위를 suffix 또는 base DN 이라 한다 |
| DN (Distinguished Name) | 트리 안 항목의 전체 경로 — uid=susan,ou=users,dc=example,dc=com |
| RDN (Relative DN) | DN 의 각 구성 요소 — uid=susan |
| Entry · Attribute · objectClass | 항목은 속성의 집합이고, objectClass 가 어떤 속성을 가져야 하는지 정한다(schema) |
| Bind | 인증 동작. 익명 · simple(DN + 비밀번호) · SASL(Kerberos 등)[2] |
| LDIF | 항목을 텍스트로 적는 형식. ldapadd · ldapmodify 의 입력 |

포트는 389(평문 · StartTLS) 와 636(LDAPS) 이다. Active Directory 글로벌 카탈로그는 3268 · 3269 를 더 쓴다.
slapd.conf 로 LDAPS 까지 연다.slapd.conf 와 동적 cn=config 의 차이, ldapi:// EXTERNAL 바인드.access to · olcAccess 규칙의 평가 순서와 흔한 구성.emptyDir 구성을 영속 볼륨으로 바꾼다.member 표기.gitlab.rb 설정과 Community Edition 에서 되는 것 · 안 되는 것의 구분../configure 단계의 누락 패키지와 설치 경로 · 설정 경로 불일치.Constraint violation (19) 로 LDIF 가 들어가지 않을 때 오버레이를 확인한다.INITIAL_CONTEXT_FACTORY · PROVIDER_URL 같은 항목이 있는데 무엇…ldapsearch 는 조회 전용이다. 이름 때문에 "검색 조건으로 값을 바꾼다" 고 오해하기 쉽지만 쓰기 동작이 없다. 변경은 `ldap…slapd 는 자기 로그 파일을 직접 만들지 않는다. syslog 로 보낼 뿐이다. 그래서 로그가 안 보인다는 문제는 대개 수준이 낮아서이…RFC 4511 — LDAP: The Protocol. 2026-09-20 확인. https://www.rfc-editor.org/rfc/rfc4511.html ↩︎
RFC 4513 — LDAP: Authentication Methods and Security Mechanisms. 2026-09-20 확인. https://www.rfc-editor.org/rfc/rfc4513.html ↩︎