본문 바로가기
IT Network System/Linux Srv

LDAP

by Skills 2021. 3. 5.

* LDAP(Lightweight Directory Access Protocol)

- 네트워크 상에서 어떠한 정보(전화번호, 주소, 조직, 파일, 계정 등등)를 쉽게 찾아볼 수 있게 하는 소프트웨어 프로토콜이다.

- 디렉터리 서비스, DNS도 디렉터리 서비스의 일종이다. 예를 들면 어떤 이름을 기준으로 대상을 찾아 조회하거나 편집하는 서비스라고 할 수 있다.

- 회사에서 사내 조직도 정보나 각 구성원의 인트라넷 아이디와 패스워드를 LDAP으로 관리할 수 있다.

- LDAP은 디렉터리 서비스를 의미하기도 하고 LDAP 프로토콜을 의미하기도 하는데, LDAP 디렉터리 서비스는 LDAP 프로토콜의 구현체이다.

 

* LDAP와 AD의 차이점

- AD는 디렉터리 서비스 공급자이다.

- LDAP은 AD 및 OpenLDAP와 같은 디렉터리 서비스 공급자가 사용하는 응용 프로그램 프로토콜이다.

- AD는 LDAP을 사용할 수도 있고, Kerberos를 사용하여 인증할 수도 있다.

- AD는 MS의 독점적 제품이며 주로 Windows Server와 연결된다. 그러나 LDAP은 다른 모든 운영체제에서 사용할 수 있다.

 

* Lightweight(경량)

- 경량의 의미가 프로토콜 스펙상의 가벼움을 얘기하는 것이 아니라, 통신 네트워크 대역폭 상의 가벼움을 의미하는 것이다.

- LDAP은 네트워크상의 디렉터리 서비스 표준인 X.500의 DAP(Directory Access Protocol)를 기반으로 한 경량화된 DAP 버전이다.

 

* LDAP의 용도

- 사용자, 시스템, 네트워크, 서비스, 애플리케이션 등의 정보를(주로 트리 구조로) 조회하거나 관리한다.

- 회사에서 구성원의 조직도나 팀별 이메일 주소 등도 LDAP 서비스로 관리한다.

- 특정 영역에서 사용자 이름과 패스워드를 확인하여 인증하는 용도로 스인다.

- LDAP은 서버에만 적용되는 프로토콜이 아니라 주소록 관리에 사용되거나 스마트폰 내에서도 LDAP 클라이언트가 포함되어 있다.

 

* LDAP 구조

Entry : 디렉터리 정보에 대한 기본단위이며, 각각의 Entry는 DN(Distinguish Name)으로 구분되고 Tree구조를 형성한다.  이러한 Tree형태의 구조를 DIT(Directory Information Tree)라고 칭한다. (아래와 같은 구조로 Database에 데이터들이 저장된다.)

 

Attributes : Entry를 구성하는 단위이며 각 Attribute마다 Type과 Value가 존재한다. (Type은 Attribute가 포함하는 정보의 종류이다. 아래의 표 참고)

 

Value : Attribute의 실질적인 데이터를 나타낸다. 또한 Value는 Sytax와 Matching Rules와 관련이 있다.

- Syntax : 데이터의 형식을 결정

- Matching Rules : 값의 동일성 검사, 정렬 시 사용

 

* 전체적인 Information Model

위 Tree에서 각 동그라미들은 하나의 Entry이고 가장 위에 있는 Entry를 Root Entry 혹은 Suffix라고 한다.

 

각 Entry마다 할당된 "dc=plain,dc=org","ou=devieces" 같은 문장은 각 Entry의 RDN이 된다.

DN : CN=gerald Carter, OU=People, DC=Plain, DC=org

RDN : "CN=Gerald Carter"

 

Object Class : Attribute를 담고 있는 틀. 하나의 Object Class내에는 각종 Attribute를 지정할 수 있다. 예를 들어 Entry를 생성 시 Object Class를 지정할 수 있다. 그러면 해당 Entry는 지정된 Object Class 내 Attribute를 사용할 수 있다.

구체적인 예시) Object Class 중 Person이란 Class가 있다. 이 Person에는 cn과 sn이라는 Attribute가 들어있다. Entry를 생성시 Person이라는 Object Class를 지정해주면 Entry에 cn값과 sn값을 넣을 수 있다.

 

Schema : Object Class와 Attribute를 정의하고 있는 파일이다. 즉, 어떤 Object Class에 어떠한 Attribute가 들어있는지 정의를 하기도 하고 어떤 Attribute가 어떠한 Syntax를 갖고 Value를 다중으로 지정할 수 있는지 등의 정의를 한다.

 

* DAP의 요청 처리 과정

① 사용자 혹은 응용프로그램에서 DUA를 통해 서비스 요청을 한다.

② DAP를 통해 DSA로 요청이 보내진다.

③ DSA는 DAP에게 받은 요청 서비스를 해석하고 DataBase를 통해 서비스를 수행한다.

④ 수행한 뒤 수행 결과를 생성하여 DUA를 통해 요청자에게 결과를 전송하게 된다.

+ 만약 분산 디렉터리 서비스 환경이라면 요청 처리 시 DSP를 통해 각 DSA 간 분산처리를 하게 된다.

 

* LDAP의 요청 처리

① 사용자 혹은 응용프로그램에서 요청을 보낸다.

② LDAP을 통해 LDAP 서버에게 요청이 전달되고 서버는 요청을 처리한다.

③ 요청을 처리 후 다시 LDAP을 통해 요청자에게 결과를 전송한다.

+ DAP와 다르게 TCP/IP 상에서 운영된다.

 

Reference

ldap.or.kr/ldap-%EC%9D%B4%EB%9E%80/

blog.hkwon.me/use-openldap-part1/

docs.oracle.com/cd/E41492_01/E41732/html/ldap-auth.html

medium.com/happyprogrammer-in-jeju/ldap-%ED%94%84%ED%86%A0%ED%86%A0%EC%BD%9C-%EB%A7%9B%EB%B3%B4%EA%B8%B0-15b53c6a6f26

 
 
 
 
728x90

'IT Network System > Linux Srv' 카테고리의 다른 글

XFF Header  (0) 2021.03.28
[Linux Srv 실습] NFS  (0) 2021.01.27
Linux DNS Master & Slave  (0) 2021.01.15
리눅스 디렉터리별 기능  (0) 2020.11.25
rm (디렉터리, 파일 제거)  (0) 2020.11.20

댓글