* 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
'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 |
댓글