OpenLDAP:柔軟性の高いオープンソースLDAP実装
OpenLDAPは、Lightweight Directory Access Protocol (LDAP) を実装した、フリーでオープンソースのソフトウェアです。BSD系
ライセンスであるOpenLDAP Public Licenseの下で公開されており、世界中の多くの組織や個人によって利用されています。プラットフォーム非依存のプロトコルであるLDAPをサポートし、Linuxを始め、BSD、macOS、
Solaris、Windows、AIX、
HP-UX、z/OSなど、幅広いOS上で動作します。
プロジェクトの歴史と開発チーム
OpenLDAPプロジェクトは、Kurt Zeilenga氏によって1998年に開始されました。
ミシガン大学のLDAP
リファレンス実装を基に、LDAPプロトコルの開発と改良を継続的に行っています。2015年時点の中核開発チームは、Howard Chu氏(チーフアーキテクト)、Quanah Gibson-Mount氏、Hallvard Furuseth氏、Kurt Zeilenga氏の4名で構成され、他にも多くの活発なコントリビュータが参加しています。
システム構成
OpenLDAPは、大きく分けて以下の3つのコンポーネントから構成されます。
1.
slapd (Standalone LDAP Daemon): これはOpenLDAPの中核となるデーモンで、LDAPプロトコル処理とデータ管理を行います。様々なオーバーレイやツールと連携して動作します。
2.
LDAPライブラリ群: LDAPプロトコルを実装したライブラリ群で、他のアプリケーションからLDAPサーバへのアクセスを可能にします。
3.
クライアントソフトウェア: `ldapsearch`, `ldapadd`, `ldapdelete` などのコマンドラインツールが提供され、LDAPサーバとのインタラクションを容易にします。
さらに、OpenLDAPプロジェクトでは、
Java用LDAPクラスライブラリ(JLDAP)、
Java JDBC-LDAPブリッジドライバ(JDBC-LDAP)、
C++用LDAPクラスライブラリ(ldapc++),
Java用ロールベースアクセス管理(Fortress), メモリマップドデータベースライブラリ(LMDB)などのサブプロジェクトも展開しています。
バックエンド
OpenLDAPサーバ(slapd)は、ネットワーク処理とプロトコル処理を行うフロントエンドと、データストレージを扱うバックエンドの2層構造で設計されています。この設計は、
ミシガン大学のオリジナルコードから受け継がれた特徴です。バックエンドはモジュール構造となっており、様々なデータストレージテクノロジーとの連携を可能にしています。Berkeley DB, LDIFファイル、メモリマップドデータベース(LMDB), My
SQLのNDBクラスタエンジンなど、多数のバックエンドが提供されています。また、他のLDAPサーバへのプロキシ機能、Unixパスワードファイルとの連携、
SQLデータベースとの連携なども可能です。`back-perl`, `back-shell`, `back-sock` といったバックエンドは、任意のスクリプト言語との連携を可能にし、高い拡張性を提供します。古いバックエンドの中には、サポートが終了したものや、将来的に廃止される予定のものもあります。
オーバーレイ
オーバーレイは、slapdのフロントエンドとバックエンドの間に挿入されるコードの断片で、LDAPリクエストをインターセプトし、処理をカスタマイズできます。データベース機能の拡張や新機能の追加を、コンパクトで保守性の高いモジュールとして実現可能です。OpenLDAP 2.2で導入されて以来、多くのオーバーレイがコミュニティによって開発され提供されています。アクセスログ、監査ログ、クエリチェーン、動的グループ、パスワードポリシー、レプリケーションなど、様々な機能を提供するオーバーレイが存在します。
モジュール
バックエンドとオーバーレイ以外にも、slapdは動的にロード可能なモジュールをサポートしています。これにより、LDAP構文、マッチングルール、アクセス制御、パスワードハッシュアルゴリズムなどを拡張、カスタマイズできます。また、SLAPI (Sun LDAP Plugin API) もサポートしていますが、OpenLDAPコミュニティではオーバーレイがより一般的に利用されています。
レプリケーション
OpenLDAPは、RFC 4533で定義されたコンテンツ同期レプリケーション(syncrepl)をサポートしています。syncreplは、変更シーケンス番号(CSN)を用いて変更の追跡を行い、複数プライマリレプリケーション(マルチマスター)もサポートします。delta-syncreplは、変更のみを効率的にレプリケーションする拡張機能です。
リリース履歴
OpenLDAPは、
ミシガン大学版からの発展を経て、2.x系へとバージョンアップを繰り返してきました。各バージョンでは、LDAPv3サポート、
IPv6サポート、レプリケーション機能、オーバーレイインターフェース、様々なバックエンドの追加など、多くの機能強化が行われています。
まとめ
OpenLDAPは、その柔軟性、拡張性、そして活発なコミュニティサポートにより、様々な規模のLDAPディレクトリサービス構築に適した、強力なツールです。