Open Source LDAP 정리

안녕하세요.

본 게시물을 통해 Open Source LDAP에 관해 조사한 내용을 정리하여 공유하고자 합니다.

 

Open Source 란?

Open Source는 저작권자가 소스코드를 공개하여 누구나 특별한 제한 없이 자유롭게 사용, 복제, 배포, 수정할 수 있는 소프트웨어입니다. Open Source는 소스를 공개한다는 면에서 Freeware, Shareware와 다릅니다.

Open Source LDAP은 공개되어 있고 자유롭게 사용할 수 있는 LDAP 제품들을 말합니다.

 

Open Source LDAP

Open Source LDAP엔 다음과 같은 종류가 있습니다.

저작권 제품명 최신 Release
Free Sofrware Foundation OpenDS OpenDS 2.2
ForgeRock OpenDJ OpenDJ 4.0.0
The OpenLDAP Foundation OpenLDAP OpenLDAP 2.3.35
The Apache Software Foundation Apache Directory Server ApacheDS 2.0.0-M24
RedHat 389 Directory Server 389-ds-base 1.3.6.6

 

Open Source LDAP History

Date Event
1996 Netscape Directory Server 프로젝트 시작
1998.08 OpenLDAP 프로젝트 시작 & OpenLDAP 1.0 출시
2003.09 Apache Directory 프로젝트 시작
2004.12 RedHat에서 Netscape Directory Server 인수
2005.02 OpenDS 프로젝트 시작
2005.05 Apache Directory Server 0.9.0 출시
2005.06 RedHat에서 Fedora Directory Server 출시
2006.06 OpenDS의 Open Source 전환
2009.05 OpenDS 2.0.0 Rc1 출시
2009.08 Fedora Directory Server 이름 389 Directory Server로 변경
2010.01 Oracle에서 SUN 인수
2010.10 OpenDS 2.2.1 출시 (최신 버전)
2010.12 OpenDJ 2.4.0 출시
2011 Oracle에서 OUD 출시
2017.04 OpenDJ 4.0.0 출시

(최신 버전, ForgeRock의 Directory Server 5.0.0과 같은 제품)

2017.05 389 Directory Server 1.3.6.6 출시 (최신버전)
2017.06 Apache Directory Server 2.0.0 M24 출시 (최신 버전)

OpenLDAP 2.4.45 출시 (최신 버전)

 

Open Source LDAP Prerequisites

구 분 설치 조건
OpenDJ Java : java 7.0을 사용하는 Oracle JDK

OS : Linux 2.6 버전 이상, Windows Server 2008/2008R2/2012/2012R2, Solaris 10/11

OpenLDAP Java : 정보 없음. (C 개발 환경)

OS : Linux, Unix, Mac OS X, Windows 2000/XP, Solaris

DB : Berkeley DataBase 4.2 이상

Apache Directory Server Java : Oracle JDK 1.7 버전 이상

OS: Windows, Mac OS X, Linux, Unix

389 Directory Server Java : Java-1.7.0-icedtea or Java-1.6.0-Openjdk

OS : Red Hat Enterprise Linux 6 (32/64Bit) 이상, CentOS 6 이상

 

Open Source LDAP Features

구 분 주요 기능
공 통 LDAPv3 규격

Full X500 인증

공식 홈페이지 보유

Admin Guide 존재

Transport Layer Security (TLS)

Access control

Multi-Master Replication

Simple Authentication and Security Layer (SASL)

OpenDJ Password Policy and Data Security

*Embedded Databases

DSMLv2 Gateway

REST APIs and REST to LDAP Gateway

Apache Directory Server Password Policy and Data Security

Written in Java and Embeddable

LDIF-Based Configuration

Keroberos Server Built-in

Apache Directory Studio 사용

OpenLDAP Choice of database backends

Multiple database instances

Generic modules API

389 Directory Server Password Policy and Data Security

Multiple Databases

DSMLv2 Gateway

Microsoft Windows Synchronization

Account Inactivation

Resource-limits by bind DN

공통

LDAPv3 규격 : LDAP 프로토콜 버전 3에 대한 디렉토리 서버의 적합성을 보장하는 Open Group의 인증을 받았습니다.

Full X500 인증 : X.500 기본 엑세스 제어 체계와 X.500 하위 항목을 결합하여 DIT 내의 항목 및 속성에 대한 엑세스를 제어합니다.

Multi-Master Replication : 다중 마스터 복제지원이 가능합니다.

Simple Authentication and Security Layer (SASL) : SASL을 통한 강력한 인증과 자료 보안(무결성 및 기밀 유지) 서비스를 지원합니다.

Transport Layer Security (TLS) : SSL/TLS를 통한 전송 계층을 보안합니다.

Access control : 데이터베이스의 정보에 대한 엑세스를 제어할 수 있습니다. LDAP권한 부여 정보를 기반으로 항목에 대한 IP주소 또는 도메인 이름 및 기타 기준의 엑세스를 제어할 수 있습니다.

 

OpenDJ

Password Policy and Data Security : 암호 정책 사용, Entry Data Encrypt이 가능합니다.

DSMLv2 Gateway : 웹 서비스용 LDAP 작업에 대한 HTTP 기반 *SOAP 엑세스가 가능합니다.

REST APIs and REST to LDAP Gateway : 사용자 데이터 및 서버 구성에 대한 HTTP 기반의 *RESTful 엑세스가 가능합니다.

Embedded Databases : Oracle Berkeley DB 또는 ForgeRock DB를 선택하여 사용합니다.

 

Apache Directory Server

Written in Java and Embeddable : 객체지향 프로그래밍 언어 중 하나인 Java로 작성되어 개발자가 자신의 Java 응용프로그램에 쉽게 임베드 할 수 있습니다.

Keroberos Server Built-in : LDAP 서버 뿐 아니라 KDC, TGS 및 AS인 Kerberos 프로토콜을 지원합니다.

LDIF-Based Configuration : LDAP 엔지니어 에게 LDIF형식의 파일을 사용하여 서버 구성을 용이하게 합니다.

 

OpenLDAP

Choice of database backends : 다양한 데이터베이스 백엔드를 선택할 수 있습니다. (MDB, BDB, HDB,SHELL, PASSWD)

Multiple database instances : 단일 서버에서 동시에 여러 데이터베이스를 제공하도록 구성 가능합니다.

Generic modules API : 커스터미이징으로 자신 만의 모듈을 쉽게 작성할 수 있습니다.

 

389 Directory Server

Multiple Databases : 여러 개의 Suffix를 사용 가능합니다.

Microsoft Windows Synchronization : User와 Group 및 암호 정보는 Active Directory (2003 및 2008 32Bit 및 64Bit) 도메인 컨트롤러 및 NT4 도메인 컨트롤러와 동기화 할 수 있습니다.

Account Inactivation : 나중에 사용하거나 다시 활성화 할 수 있도록 사용자의 정보를 유지하면서 관리자가 계정을 비활성화 하여 시스템에 로그인 할 수 없게 할 수 있습니다.

Resource-limits by bind DN : 클라이언트의 바인드 DN을 기반으로 검색 작업에 할당되는 서버 리소스의 양을 제어할 수 있는 권한을 부여할 수 있습니다.

 

참고사항

라이센스

구 분 라이센스 상용 배포 조건
OpenDJ The Common Development and Distribution License(CDDL) O CDDL 라이선스 조건 하에 사용 가능. “버그 패치 및 기능 확장 제공의 의무”
Apache Directory Server Apache License 2.0 O Software 배포 시 Apache License 2.0을 포함하여 배포
OpenLDAP OpenLDAP Public License O Software 배포 시 OpenLDAP Public License를 포함하여 배포

 

용어정리

Embedded System

◆ 임베디드 시스템은 특정 목적을 지닌 시스템입니다.

◆ 핸드폰, 팩스 등이 임베디드 시스템이라 할 수 있습니다.

◆ 임베디드 시스템은 기능에 맞는 하드웨어와 소프트웨어를 갖습니다.

◆ 임베디드 시스템은 다음과 같은 특징이 있습니다.

1. 기능이 제한적이다.

2. 베터리 용량이 제한적이라 저전력 이여야 한다.

3. 사용되는 프로세스나 운영체제가 다양하다.(임베디드용)

4. 실시간성을 제공해야 한다.(의료기기, 공장 자동화 시스템, 군용 등)

5. 하드디스크가 없는 대신 ROM, RAM, Flash 메모리로 구성된다.

SOAP (Simple Object Access Protocol)

◆ HTTP, HTTPS, SNMP 등을 통해 XML 기반의 메시지를 컴퓨터 네트워크 상에서교환하는 프로토콜이며 이는 RPC(Remote Procedure Call) 중 하나입니다.

◆ 기존 네트워크 상에서 사용되던 RPC들은 HTTP를 통해 사용되지 않았으며 그로 인해 호환성 및 보안 문제가 나타나게 되었습니다. (방화벽 및 프록시 서버는 이러한 트레픽을 차단)

◆ SOAP는 HTTP, HTTPS, SNMP등을 통한 RPC 기법으로, 범용성이 있는 Protocol을 사용함으로써 모든 인터넷 브라우저 및 서버에서 지원할 수 있습니다.

◆ 즉, SOAP은 서로 다른 운영체제에서 실행되는 응용프로그램 간에 서로 다른 기술 및 프로그래밍 언어로 통신할 수 있는 방법을 제공합니다.

RESTful

◆ REST = Representational State Transfer. REST는 소프트웨어 아키텍쳐의 한 형식입니다.

◆ REST의 원리를 따르는 시스템들을 RESTful이라 지칭하며 다음 6가지 원칙에 제한됩니다.

1. 클라이언트/서버 구조이다.

2. 각 요청 간 클라이언트의 콘텍스트가 서버에 저장되어서는 안된다.(무상태, Stateless)

3. 클라이언트는 응답을 캐싱할 수 있어야 하며 이로 인해 확장성 및 성능이 향상된다.(캐시처리기능, Cacheable)

4. 클라이언트가 대상 서버에 직접 연결되었는지, 혹은 중간 서버를 통해 연결되었는지 알 수 없어야 한다. (계층화, Layered System) 선택적 항목으로 자바 애플릿이나 자바 스크립트의 제공을 통해 서버에서 클라이언트가 실행시킬 수 있는 로직을 전송하여 기능을 확장시킬 수 있다. (Code on demand)

5. 아키텍처를 단순화 시키고 작은 단위로 분리함으로써 클라이언트/서버의 각 파트가 독립적으로 개선될 수 있게 해준다.

◆ REST의 주 목표

1. 구성 요서 상호작용의 규모 확장성

2. 인터페이스의 범용성

3. 구성 요소의 독립적인 배포

4. 중간적 구성요소를 이용해 응답지연 감소, 보안 강화, 레거시 시스템을 인캡슐레이션

 

이상입니다.

 

 

※ 출처

OpenDJ 정보

□ https://www.forgerock.com/

□ https://en.wikipedia.org/wiki/OpenDJ

OpenLDAP 정보

□ http://www.openldap.org/

Apache Directory Server 정보

□ http://directory.apache.org/apacheds/

389 Directory Server 정보

□ http://directory.fedoraproject.org/index.html

□ https://en.wikipedia.org/wiki/389_Directory_Server

※ 본 게시물을 재배포 혹은 참고 시에 출처를 반드시 남겨주시기 바랍니다.


답글 남기기