
LDAP = Lightweight Directory Access Protocol
TCP/IP, 인터넷 환경에서
Directory Service에 대한
접근 및 수정 기능을 제공하는 프로토콜
Directory Service
- 사용자, 그룹, 네트워크 리소스 등의 정보와 관련된 데이터를 중앙에서 저장/관리하는 시스템
- 네트워크 내의 Application과 Service가 이 데이터에 효율적으로 접근하고 활용할 수 있도록 함
- DNS (Domain Name System)
- 역할
- 데이터 중앙화
- 쉬운 검색/조회
- 사용자 인증 및 권한 부여
- 조직의 사용자와 그룹 관리
특징
Lightweight
- 기존의 무거운 X.500의 DAP를 경량화한 버전
- 기존 OSI 7 Layer 전체 계층이 아닌 TCP/IP에서 운영됨
검색에 특화
- LDAP 요청의 대부분은 검색이며 빠른 데이터 검색 및 읽어오기에 최적화 되어 있음
계층적 트리 구조
- 사용자, 시스템, 네트워크, 서비스, 애플리케이션 등의 정보를 트리 구조로 저장하여 조회/관리
- RDB와 다른 계층적 트리 구조로 저장된 데이터를 빠르게 조회하기 위한 단순 쿼리 위주
- 검색 및 읽기 작업에서 RDB 보다 좋음
Binary Protocol
- ASN.1 (Abstract Syntax Notation One)
- 데이터 구조 및 메시지 구문을 정의하기 위한 표준 표기법
- 데이터 구조와 메시지를 정의하고 인코딩하는 데 사용됨
- 메시지를 BER (Basic Encoding Rules) 인코딩 함
- 다양한 시스템 간 호환성 유지 및 안전한 정보 교환
비동기 프로토콜
- 하나의 세션(커넥션)에서 여러 메시지를 주고 받을 수 있음
- 어떤 요청에 대한 응답인지 식별 가능
주요 속성
- c: Country 국가
- st: StateProvince 주 (도)
- l: Locality 지역 (도시)
- o: Organization 조직(회사)
- ou: Organization Unit 조직 부서
- cn: CommonName 이름 + 성
- sn: SurName 성
- dc: DomainComponent 도메인 요소
구조


DC (Domain Component)
- 디렉터리 트리의 루트 노드
- 주로 조직의 도메인 이름을 기반으로 함
OU (Organization Unit)
CN (Common Name)
- 디렉터리 내의 특정 개체를 식별하는 데 사용됨
- 사용자의 이름, 그룹 이름 또는 기타 개체의 이름을 나타냄
용도 및 적용 분야
-
조직/기관 네트워크
- 사용자 인증 (Authentication)
- 권한 부여 (Authorization)
- 사용자 정보 저장 및 계정 관리
-
Web
- SSO (Single Sign-On)
- 사용자의 로그인 정보와 권한 관리
-
이메일 시스템
-
IT 인프라
- 네트워크 접근 제어, 중앙 집중식 사용자 관리
-
네트워크 장비
LDAP 구축 사례
(본문 내용 요약)
기존 구조

수정된 구조

=> 특정 프로그램이 각각 설치된 OS계정을 기준으로 인증을 하고 있었는데, OS가 아닌 별도의 데이터 저장소(LDAP)에 저장하고 여기에 저장된 사용자 계정을 기준으로 프로그램을 사용하고 싶다는 요청.
개선된 점
1. OS에 사용자 계정을 저장하지 않고 전용 데이터 저장소(LDAP)에 사용자 정보를 저장함으로써 보안성 강화
2. OS의 자원/부하를 줄임
3. 양 쪽의 OS에 있던 같은 계정들을 하나로 통합 관리
기타
- Microsoft Active Directory (AD)
- LDAP를 기반으로 하는 디렉터리 서비스
- Windows 도메인 네트워크 환경에서 사용자 및 컴퓨터를 중앙에서 관리하는 데 사용됨
- 기능: 사용자 인증, 그룹 정책 관리, 권한 부여, 자원 접근 제어.
- 사용처: 대규모 기업, 교육 기관, 공공 기관 등.
- OpenLDAP
- 최초의 오픈소스 LDAP 서버(CLI 기반)
- LDAP를 사용하여 다양한 환경에서 중앙 집중식 사용자 관리와 인증 제공
- 기능: 사용자 및 그룹 관리, 인증 서비스, 데이터 동기화
- 사용처: 다양한 산업 분야에서 사용되며, 커스터마이징이 용이함
- Apache Directory Server
- Apache Software Foundation에서 제공하는 디렉터리 서버 (JAVA로 작성됨)
- LDAP 및 Kerberos 프로토콜을 지원
- 기능: 사용자 관리, 인증 및 권한 부여, 확장 가능한 플러그인 시스템
- 사용처: 개발 환경, 교육 기관, 중소 기업
- Google Cloud Directory
- Google Cloud Platform에서 제공하는 디렉터리 서비스
- 클라우드 리소스 접근 제어 및 사용자 관리 제공
- 기능: 사용자 인증, 그룹 관리, SSO(Single Sign-On) 지원.
- 사용처: 클라우드 환경을 사용하는 기업 및 조직
Ref.
https://www.wallarm.com/what/lightweight-directory-access-protocol-ldap
https://ldap.or.kr/
https://www.samsungsds.com/kr/insights/ldap.html
https://docs.oracle.com/cd/E19146-01/820-5654/geezw/index.html
https://nice-engineer.tistory.com/entry/LDAP%EC%9D%B4%EB%9E%80