코딩마을방범대

LDAP이란 본문

🎃 기타/상식 ❗

LDAP이란

신짱구 5세 2023. 8. 29. 17:04

 

 

LDAP(Lightweight Directory Access Protocol)

 

  • 네트워크 상에서 개인정보나 파일, 디바이스 정보를 찾아보는 것을 가능하게 만든 소프트웨어 프로토콜
  • 디렉토리 서비스 표준인  X.500의 DAP(Directory Access Protocol)를 기반으로한 경량화(Lightweight)된 DAP 버전
    • DAP는 OSI 전체 프로토콜 스택을 지원하며 운영에 매우 많은 컴퓨팅 자원을 필요로하는 아주 무거운 프로토콜
    • LDAP은 DAP의 복잡성을 줄이고 TCP/IP 레이어에서 더 적은 비용으로 DAP의 많은 기능적인 부분을 조작할 수 있도록 설계
  • 바이너리 비동기 프로토콜
    • BER(Basic Encoding Rules)라는 포맷으로 인코딩하여 주고받음
    • 세션을 하나만 열어서 여러 메시지 요청을 보낼 수 있고, 각각의 요청에 대한 응답이 다른 시점에 올 수 있음
      (응답마다 어떤 요청의 응답인지 식별할  수 있는 아이디가 부여됨)
Directory의 사전적 의미는 체계적이고 조직적인 계획 (Systematic Scheme)을 통해 정보(자원)을 질서정연하게 담은 정보 저장소(Information Storage Location)로서 특정화된 데이터베이스이며, 쓰기 작업 보다는 읽기 작업이 빈번한 적합한 서비스이다.

X.500 디렉토리 서비스(DAP)는 ISO(International Standards Organization)에서 재정한 컴퓨터 네트워크 모델인 OSI (Open System Interconnection) 7 Layer의 응용계층(Application layer)에 속하는 프로토콜로서,
정보통신 서비스에 필요한 정보를 데이터베이스화하여 효율적으로 관리하고 사용자가 편리하게 접근할 수 있는 기능을 제공하는 서비스이다.
즉, 인터넷 사용자들에게 다른 사용자나 서비스에 관련된 정보들을 검색할 수 있는 수단을 제공하는 것이다.

 

ldab 인증 flow

 

 

 


 

 

Lightweight Directory

  • Directory 안에는 연락처, 유저, 파일, code 같은 정보를 넣을 수 있고 insert나 update보단 빠른 검색 요청에 특화
  • 일반 데이터베이스(RDBMS)와는 다르게 검색에 특화되어 있기 때문에 트랜잭션 기능이나 롤백 기능이 없고, 복잡한 관계 등을 설정하지도 않음
  • 신뢰성이나 가용성을 개선하기 위해 쉽게 복제 될 수 있는 아키텍처 구성 
  • 디렉토리 정보(entry)는 계층적 트리(hierarchical tree-like) 구조로 아래와 같이 구성
  • 인터넷 프로토콜로 데이터를 조금만 주고 받아도 되게끔 설계되어 있음(통신 네트워크 대역폭 상의 가벼움)
디렉토리 서비스
이름을 기준으로 대상을 찾아 조회하거나 편집할 수 있는 서비스
( DNS도 디렉토리 서비스의 일종 )

 

 

 


 

 

용도

  • 유저 권한 관리 
  • 주소록 
  • 조직도 
  • 사용자 정보 관리 
  • 어플리케이션/시스템 설정 정보 
  • 공개 키 인프라스트럭처 
  • DHCP, DNS 저장소 
  • 문서 관리 
  • 이미지 저장소

 

 

 

 


 

 

주요 용어

약자 준말 설명
DC Domain Component 도메인에 대한 요소
CN Common Name 이름
SN Sir Name 성 (Family Name)
OU Organizational Unit 그룹 (조직)
DN Distinguish Name 특정한 사용자를 구분할 수 있는 고유의 이름
RDN Relative Distinguished Name 상대적 고유의 이름
DIT Directory Information Tree 디렉토리 정보 트리
LDIF LDAP Data Interchange Format LDAP 데이터 교환 형식
UID User ID 유저 ID

 

 

 

 


 

 

 

 

 

LDAP 서버와 클라이언트

LDAP를 통한 디렉토리 서비스가 다양하게 활용되는 만큼 다양한 클라이언트와 서버 툴이 등장했다.

 

 


 

 

LDAP 서버

 

OpenLDAP

LDAP 디렉토리를 구축하고 관리할 수 있는 커맨드 라인 기반의 서버이다.

LDAP가 개발되고 이를 활용하는 최초의 오픈소스 LDAP 서버로 지금까지 꾸준히 활용되고 있다.

LDAP 기능만을 제공하고 있어 확장성이 뛰어나다.

 

Apache Directory Server

LDAP를 기반으로 자바로 작성된 LDAP 서버이다.

이클립스와 같은 자바 기반의 응용 프로그램에 쉽게 임베드 할 수 있는 장점이 있다.

LDAP뿐만 아니라 DNS, Kerberos와 같은 다른 프로토콜들도 지원한다.

 

Active Directory

LDAP뿐만 아니라 다양한 형태의 디렉토리 구조 및 여러 프로토콜을 제공하는 솔루션이다.

기존 LDAP를 보다 확장해 다양한 기능을 제공할 뿐 아니라 서버 설정, 관리와 같은 전반적인 환경을 제어할 수 있는 GUI 서비스 및 툴들을 제공한다.

다만 다른 OpenLDAP 서버들과 달리 윈도우 환경에서만 서비스가 가능하다.

 

 

 


 

 

 

LDAP 클라이언트

구축된 LDAP 서버에 접근해 여러 상호작용을 위해선 클라이언트 서비스가 존재해야 한다.

LDAP 클라이언트 API는 다양한 종류의 개발 언어들과 기능이 제공되는 다수의 라이브러리가 존재한다.

클라이언트 API에도 여러 가지가 있지만 JAVA 기반으로 쉽게 사용할 수 있고 지속적으로 관리되는 API는 다음과 같다.

 

 

JNDI

자바2부터 기본적으로 내장된 라이브러리이다.  

자바에서 활용할 수 있는 네이밍, 디렉토리 관련 서비스들에 활용할 수 있는 라이브러리로 LDAP 역시 디렉토리 서비스로 JNDI를 통해 활용할 수 있다.

LDAP가 가진 모든 기능(Controls, Extension 등)을 제공한다.

 

Spring LDAP

다양한 프로젝트나 서비스에서 많이 고려되는 Spring 프레임워크를 기반으로 하는 LDAP 라이브러리이다.

기존 자바 라이브러리인 JDNI와 비교해 더욱 간결하고 쉽게 활용할 수 있으며 예외 처리를 유연하게 제공한다.

 

UnboundID LDAP

Ping Identity사에서 제공하고 있는 자바 기반의 LDAP 라이브러리다.

다른 LDAP 라이브러리보다 빠르고 쉬우며 여러 기능을 가진 것을 강점으로 내세우고 있다.

UnboundID LDAP는 다양한 데이터 포맷, 암호화 등을 비롯한 관련 API들과 LDAP 기반의 In-Memory 테스트 환경을 제공한다.

 

 

 

 

 


 

 

 

 

 

 

LDAP과 RDMBS의 차이

RDBMS란?

  LDAP Directory RDBMS
구조 계층적, 속성값 기반의 계층적 모델 복잡한 관계형 모델
퍼포먼스 튜닝 간단하다. 복잡하여 전문가가 필요하다.
보안 SSL 3.0  향상된 보안 제공, 접근통제가 객체형식을 상속가능 그룹별로 필드 단위까지 접근 통제 가능
확장성 계층적 구조로 별도의 개발없이 확장이 가능 하나의 시스템에서만 관리
유지보수 및 구성 관리 네트워크 요구 사항에 맞게 디렉토리 규모를 조정가능하며, 디렉토리의 분할 또는 수많은 리소스와 개체를 포함하도록 디렉토리 확장 가능 구축 후 규모에 따라 조정이 어렵고 기존의 Schema 조정을 하기 위해서는 신규 설계 구축해야함
정보 복제 디렉토리 정보 생성 /수정이 발생하면 Mastrer 및 Relplica로 변경 부분 전송 별도의 개발이 요구됨
상호 운영성 표준 디렉토리 액세스 프로토콜 기반 동일 프로토콜 타 디렉토리 서비스와 상호 운용 타 회사 제품간의 정보 교환이 어려움
쿼리 융통성 네트워크 상의 개체 신속 검색, 단순 쿼리 강함 어플리케이션에서 개발이 필요하며, 복잡 쿼리 강함(SQL),OLDAP 사용 가능
용도 LDAP Client에게 최적화 SQL Client에게 최적화
저장정보 Tree구조로 저장, 쓰기보다 읽기 최적화 관계형 구조로 저장
정보 참조 타 정보 참조로 전환기능(Reffaral, Chainning) 기능 제공 안함

 

 

 

 

 


참고사이트

OPENLDAP 개요 및 설치

[LDAP] 개념 잡기

알아두면 쓸데있는 LDAP

LDAP 과 DAP

 

 

SMALL

'🎃 기타 > 상식 ❗' 카테고리의 다른 글

Radius란?  (0) 2023.08.31
RDBMS와 NoSQL의 차이점  (0) 2023.08.29
컨테이너와 Docker란?  (0) 2023.08.29
Base64 인코딩이란?  (0) 2023.08.02
Intellij IDEA 유용한 단축키 모음  (0) 2023.07.24