안녕하세요.
본 게시물을 통해 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
※ 본 게시물을 재배포 혹은 참고 시에 출처를 반드시 남겨주시기 바랍니다.