**LDAP(Lightweight Directory Access Protocol, 경량 디렉터리 접근 프로토콜)**은 네트워크 상에서 **디렉터리 서비스(Directory Service)**에 접근하고 관리하기 위한 표준 프로토콜입니다.
쉽게 말해, LDAP은 **조직 내 사용자 계정, 그룹, 권한, 네트워크 자원(프린터, 서버 등)**을 중앙에서 관리하고, 이를 애플리케이션이나 시스템이 쉽게 가져다 쓸 수 있도록 도와주는 규칙이라고 보면 됩니다.
1. LDAP란 무엇인가?
-
풀네임: Lightweight Directory Access Protocol
-
역할: 디렉터리 서비스에 접근하여 검색, 인증, 수정 등의 작업 수행
-
표준 기반: TCP/IP 네트워크 위에서 동작
-
용도: 중앙 집중형 사용자 계정 관리, 인증(Authentication), 권한 부여(Authorization), 자원 검색
2. 디렉터리 서비스(Directory Service)란?
LDAP이 접근하는 대상은 디렉터리 서비스입니다.
여기서 말하는 "디렉터리"는 파일 시스템의 폴더가 아니라, 조직의 사람, 그룹, 장비, 정책 같은 데이터를 계층적으로 저장하는 데이터베이스를 의미합니다.
예시:
이런 조직 구조처럼 **계층적(Tree 구조)**으로 데이터를 저장하고 관리합니다.
3. LDAP의 주요 특징
-
계층적 구조(Hierarchical Structure)
-
루트(root)에서부터 가지(branch)와 잎(leaf)처럼 데이터를 관리
-
트리 구조로 조직도, 도메인, 사용자, 그룹을 표현
-
-
표준화된 프로토콜
-
애플리케이션이나 운영체제에서 동일한 방식으로 접근 가능
-
-
경량 프로토콜
-
원래 X.500(무거운 디렉터리 접근 프로토콜)을 단순화한 버전 → TCP/IP 환경에 최적화
-
-
확장성
-
수십만 명의 사용자 계정도 효율적으로 관리 가능
-
4. LDAP 구조 용어
LDAP에서는 데이터가 특정한 형식으로 저장됩니다.
-
DN (Distinguished Name)
-
개체(엔트리)의 전체 경로 (예:
cn=홍길동,ou=IT,dc=example,dc=com)
-
-
RDN (Relative Distinguished Name)
-
DN을 이루는 부분 요소 (예:
cn=홍길동)
-
-
OU (Organizational Unit)
-
조직 단위, 부서 등을 나타냄
-
-
DC (Domain Component)
-
도메인 구성 요소 (예:
dc=example,dc=com)
-
-
Entry
-
LDAP의 기본 단위(사용자, 그룹, 프린터 등 객체)
-
-
Attribute
-
Entry가 가진 속성 (예:
uid=hong,mail=hong@example.com)
-
5. LDAP의 활용 분야
LDAP은 다양한 시스템에서 중앙 인증 및 사용자 관리를 위해 쓰입니다.
-
사내 인트라넷: 사용자 로그인 관리
-
메일 서버(Postfix, Sendmail 등): 사용자 이메일 계정 관리
-
VPN / Wi-Fi 인증: 조직 계정으로 접속 제어
-
SSO(Single Sign-On): 여러 서비스에서 한 번 로그인으로 접근 가능
-
Active Directory(AD): 마이크로소프트의 LDAP 기반 디렉터리 서비스
6. LDAP 동작 방식 예시
예를 들어, 사용자가 회사 시스템에 로그인할 때:
-
사용자가
아이디/비밀번호입력 -
애플리케이션이 LDAP 서버에 바인딩(Bind, 인증 요청)
-
LDAP 서버가
uid=사용자ID,ou=부서,dc=example,dc=com경로에서 계정 검색 -
입력한 비밀번호와 LDAP 서버에 저장된 암호 해시 비교
-
일치하면 인증 성공 → 서비스 접근 허용
7. LDAP과 Active Directory 차이
-
LDAP: 프로토콜 자체, 개방형 표준 (Linux, Unix, Windows 모두 사용 가능)
-
Active Directory (AD): 마이크로소프트가 LDAP + Kerberos + 자체 기능을 결합해 만든 디렉터리 서비스
즉, AD는 LDAP을 내부적으로 활용하지만, 더 많은 기능(그룹 정책, 도메인 컨트롤러 등)을 포함합니다.
✅ 정리하면,
LDAP은 기업이나 조직에서 사용자 계정과 네트워크 자원을 효율적으로 관리하기 위한 프로토콜로, 중앙 집중 관리, 인증, 권한 부여에 매우 중요한 역할을 합니다.


