FrontPage FindPage TitleIndex RecentChanges UserPreferences E D R S I H C
 
Understanding and Deploying LDAP Directory Services
FrontPageSparseBitmapsForPatternMatchCoverageProgrammingInHaskellCacheCoherenceProtocolVerificationUsingOmegaMyResume › UnderstandingAndDeployingLDAPDirectoryServices
[ISBN-0672323168] 요 책을 읽고 요약한 것, 아니 아직 하는 중입니다. 제가 필요한 부분만 주로 요약하고 있습니다.

1 디렉터리 서비스와 LDAP의 개요 및 역사


1.1 디렉터리란 무엇인가

디렉터리는 특성화된 데이터베이스이다.

일상생활에서 접할 수 있는 오프라인 디렉터리들: 전화번호부, TV 상영표, 쇼핑 카탈로그, 도서목록 등

디렉터리의 종류에는 Application Specific (Lotus Notes 주소록, 마이크로소프트 익스체인지 디렉터리 등), Network Operating System based (Novell NDS, Microsoft Active Directory, Sun NIS 등), Purpose specific (DNS 등) 그리고 표준 기반의 범용 디렉터리가 있다. LDAP 는 표준 기반의 범용 디렉터리이다.

컴퓨터와 네트워크를 이용한 온라인 디렉터리의 특징
  • dynamic 정보에 변화가 생기는 즉시 update 가능하다.
  • flexible 새로운 종료의 정보를 넣어야 할 경우 내용의 확장이 용이하다. 여러 가지 정렬 및 검색 기준 등에 따른 다양한 내용 구성이 가능하다.
  • can be secure 사용자 인증이나 접근 권한 제한 등이 가능하다.
  • can be personalized 디렉터리로부터 사용자의 입맛에 맞는 정보만을 추출해 올 수 있다. 사용자에 따라 디렉터리의 내용 중 원하는 부분만을 보여줄 수 있다. (secure 와도 관련 있음)

디렉터리가 특성화된 데이터베이스로서 일반적인 데이터베이스와 비교했을 때 특징은 다음과 같다.
  • 읽기/쓰기 비율이 매우 높다
  • 확장이 쉽다
  • 자료가 더 널리 분산되어 있는 편이다
  • 많은 양의 자료가 복제된 사본이 있는 경우가 많다
  • 매우 고효율의 읽기가 필요하나, 쓰기 효율은 상대적으로 덜 중요하다
  • 표준을 기반으로 한 호환성이 중요하다
  • transactional, relational 연산(transaction, join 등)을 일반적으로 지원하지 않는다

1.2 디렉터리로 무엇을 할수 있나

찾기(전화번호, 쇼핑할 물건, 고객 정보)

관리(주소록, 북마크, 메일 그룹, 분산 서버 설정)

1.3 디렉터리가 아닌 것

  • 데이터베이스
  • 파일시스템
  • 웹서버
  • FTP서버
  • DNS서버

hammer syndrome 을 피하기 위한 조언 - 디렉토리의 올바른 용도.
  • 정보의 크기 - 비교적 작은 크기
  • 정보의 특성 - 이름과 값의 쌍으로 되어 있는 속성(attribute) 기반의 정보
  • 읽기/쓰기 비율이 높을 때
  • 검색 기능이 필요할 때
  • 표준에 기반한 접근성이 필요할 때

1.4 LDAP 의 역사와 기원

옜날에 X.500 이라는 OSI기반 표준이 있었는데 OSI는 쓰이지 않고 TCP/IP가 쓰이고 있으며 너무 복잡한 관계로 구현하기도 곤란하여 결국 LDAP가 나와서 평정하게 되었다는 그런 이야기다.

LDAP의 핵심적인 장점은 다음과 같다.
  • 간단하면서도 많은 실제 디렉토리를 활용하는 상황의 요구조건을 만족한다.
  • 지원하는 환경이 많다 - 다양한 플랫폼에서 LDAP를 지원하는 소프트웨어가 구현되어 있다.
  • LDAP 디렉터리를 배치하고 관리하는 비용이 상대적으로 적고 이해하기 쉽다.
  • 실제로 LDAP 디렉터리 서비스 구현들이 잘 작동하며 성능이 우수하다.
  • 많은 사람(기업, 단체)들이 LDAP 마인드를 공유하고 있다.


2 LDAP 개요

2.1 LDAP 란 무엇인가

2.1.1 LDAP 프로토콜

메시지 기반 프로토콜.

 
클  --- 검색 요청 -->
라                               서
이  <-- 엔트리 ------
언                               버
트  <-- 결과 코드 ---

위 그림과 같이 클라이언트가 고유한 메시지 아이디를 생성해서 요청 메시지를 서버에 보내면 서버는 데이터베이스에서 해당하는 엔트리를 찾아 하나의 메시지를 보내고 또 다른 별도의 메시지로 서버는 결과 코드를 보낸다. 만일 여러 개의 엔트리가 검색 결과로 나온다면 아래 그림과 같이 될 것이다. 엔트리 전송시 각각의 엔트리는 distinguished name (DN) 이라는 고유한 문자열을 갖는다.

 
클  --- 검색 요청 -->
라  <-- 엔트리1 -----   서
이  <-- 엔트리2 -----
언  <-- 엔트리3 -----   버
트  <-- 결과 코드 ---

그런데 메시지 기반 프로코콜이므로 다음과 같이 여러 개의 요청을 한꺼번에 보내고 받는 것도 가능하다. HTTP 와 같은 lockstep (하나의 연결에서 하나의 요청을 하면 다음 요청 전까지 반드시 응답을 기다려야 하는) 프로토콜에 비해 유연한 장점을 갖는다.

 
클  --- 검색 요청(1) -->
라  --- 검색 요청(2) -->   서
이  <-- 엔트리(1) ------
언  <-- 엔트리(2) ------   버
트  <-- 결과 코드(1) ---
     <-- 결과 코드(2) ---

2.1.2 LDAP 연산


Interrogation: search, compare

Update: add, delete, modify, modify DN (rename)

Autentication/Control: bind, unbind, abandon

 일반적인 LDAP 통신
클라이언트                     서버
1. ---- 연결 후 bind ------>
2. <--- bind 결과 ----------
3. ---- search ------------>
4. <--- 검색된 엔트리1 -----
5. <--- 검색된 엔트리2 -----
6. <--- 검색 결과 ----------
7. ---- unbind ------------>
8        <--- 연결 끊음 ----


LDAP 의 용례) 이메일 클라이언트와 같은 엔드유저가 실명으로 디렉토리를 검색하여 원하는 사람의 메일 주소로 이메일을 발송할 수 있다. 반대로 메시지 서버 역시 메일을 받았을 때 디렉토리를 검색하여 해당 사용자의 메일박스에 이메일을 저장할 수 있다.

LDAPv3 에서는 LDAP 에위 9가지 기본 연산 이외에 보안이나 제어 등의 확장된 연산들이 있다. 이것은 3장에서 자세히 다룬다.

프로토콜의 자세한 부분까지 알아야 할 필요는 없지만 LDAP 는 여러가지 형식의 데이터를 인코딩하는 LBER(Lighetweight Basic Encoding Rules) 를 사용한다는 것을 알아 두라. 즉 LDAP 는 HTTP, SMTP, POP 와 같은 단순 텍스트 기반 프로토콜이 아니다. 하지만 LDAP 는 보편화된 프로토콜이기 때문에 DNS 스니핑 프로그램이 있듯이, 필요하다면 LDAP 를 이해하는 스니핑 프로그램을 이용할 수 있으니 걱정할 필요는 없다. 보편화된 스니핑 프로그램인 Etherial 에도 LDAP 모듈이 있다.

2.2 LDAP 모델


2.2.1 Infromation


2.2.2 Naming


2.2.3 Functional


2.2.4 Security


2.3 LDIF


2.4 LDAP 서버 소프트웨어


2.5 LDAP 명령줄 유틸리티


2.6 LDAP API


2.7 LDAP 국제화


2.8 LDAP 개요에 대한 점검표

  • LDAP 프로토콜은 표준적이고 확장성있는 디렉터리 접근 프로토콜이다.
  • LDIF 는 디렉터리 데이터를 교환하는 표준 텍스트 형식이다.
  • LDAP 모델(Informational, Naming, Functional, Scurity)은 어떻게 디렉터리를 이용하는지를 기술한다.
  • 상용, 오픈소스를 포함하는 다양한 LDAP 서버 구현이 있다.
  • LDAP 서버나 LDAP 기반 어플리케이션과 함께 제공되는 명령행 유틸리티가 있다.
  • LDAP API 로 LDAP 클라이언트 어플리케이션을 개발할 수 있다.


3 LDAPv3 확장


4 Netscape 테렉터리 서버 개요


5 디렉터리 디자인의 청사진


6 디렉터리 요구조건 파악


7 데이터 디자인


8 스키마 디자인


9 Namespace 디자인


10 Topology 디자인


11 Replication 디자인


12 Priavacy and Security 디자인



13 Evaluating Directory Products


14 Piloting Your Directory Service


15 Analyzing and Reducing Costs


16 Putting Your Directory Service into Production



17 Backups and Disaster Recovery


18 Maintaing Data


19 Monitoring


20 Troubleshooting



21 Developing New Applications


22 Directory-Enableing Existing Appications


23 Directory Coexistence



24 Case Study: Netscape Communications Corporation


25 Case Study: A Large Multinational Enterprise


26 Case Study: An Enterprise with an Extranet

last modified 2009-03-09 12:47:00
EditTextFindPageDeletePageLikePages