LDAPデータ管理のOSS比較 7選
LDAPサーバは、企業内では特にユーザ情報の管理や認証の基盤として使用されています。しかし、OSSのLDAPサーバのソフトウェアには、LDAPのデータを管理するためのGUIが付属しておらず、標準ではコマンドラインの操作が必要です。そのため、一般的には、管理しやすくするためのGUIツールを別途導入する場合が多くあります。ここでは、LDAPサーバのデータを管理するためのOSSを紹介します。
LDAPとは
LDAPとは、「Lightweight Directory Access Protocol」の略称で、様々な情報を、階層型に管理する機能を提供する目的で規定されたプロトコルをいいます。LDAPは、ファイルやユーザ情報(名前、メールアドレス、電話番号、住所など)を管理することや各種アプリケーションの設定情報の共有データベースとして利用されています。このプロトコルを利用したソフトウェアをLDAPサーバといいます。LDAPサーバは、企業のユーザ情報の管理や認証の基盤として利用されています。OSSにもLDAPサーバは複数あり、以下のOSSが有名です。
- Active Directory
- OpenLDAP
- 389 Directory Server
Active Directoryは、LDAP以外の機能も持っているため、単純なLDAPサーバとは異なる点に注意
LDAPのデータ管理ツールの重要性
LDAPサーバは、データを管理するソフトウェアですが、OSSのLDAPサーバの場合、標準でGUIが付属しているソフトウェアがほどんどありません。そのため、データの登録・編集・削除をコマンドラインで行う必要があります。コマンドラインでの管理は、扱いが難しいため、通常では、LDAPサーバをGUIで管理するためのソフトウェアを導入する必要があります。
LDAPデータ管理のOSS
ここでは、LDAPサーバのデータを管理できるオープンソースソフトウェアを紹介します。
LDAPデータ管理ソフトウェア
LDAPデータ管理ソフトウェアとは、LDAPツリー全体を管理できるソフトウェアです。
phpLDAPadmin
phpLDAPadminは、OSSのLDAP管理ツールとして広く普及されているソフトウェアです。WebからLDAPのデータを変更やLDAPサーバの設定管理を行うことができます。しかし、現在は開発が停止している状態で、PHP8やOpenSSL3.0では、うまく動作しません。Githubでは、phpLDAPadmin2のデモサイトが公開されていますが、今現在動きがない状態です。そのため、phpLDAPadminに代わるLDAP管理ツールを探す必要があります。
web2ldap
web2ldapとは、1998年にリリースされてから2023年現在までも開発が継続されている歴史ある管理UIのソフトウェアです。ライセンスは、Apache Licence v2で公開されています。web2ldapは、LDAPのオブジェクトクラスや属性名の表示について、テンプレート化されているため、多言語対応することが可能です。実際の属性名とは異なる、ユーザフレンドリーな表示をすることもできます。しかし、メニューなどの多言語対応ができません。また継続してアップデートされているものの、UIのレイアウトが古いため、操作が直感的では無い部分があります。
Cockpit 389 DSプラグイン
Cockpitとは、Linux OSの管理GUIです。Red Hat Enterprise LinuxやUbuntuなど多くのディストリビューションの管理ツールとして利用が可能です。Cockpitのプラグインとして開発されている、Cockpit 389 DSプラグインは、389 Directory Serverを管理することができます。今までは、389 Directory Server 自体の設定を行う機能しかありませんでしたが、最近では、LDAPのDITを管理する機能が追加されました。Cockpit 389 DSプラグインは、389 Directory Server 専用の管理ソフトウェアです。RHELでは、標準のLDAPサーバが、389 Directory Serverのみになっているため、今後389 Directory Serverの利用が増えていくと考えられます。しかし、現在では、下記の課題があります。
- 日本語化されていない
- ユーザフレンドリな表示に対応していない
- エントリにコピーや、エクスポートなどの機能がない
ldap-ui
ldap-uiとは、Githubで公開されている、LDAPデータ管理ソフトウェアです。ldap-uiは、LDAP DITの表示方法がツリー表示となっており、予め設定したDNパターンによる認証が行えることが特徴です。ldap-uiは、比較的新しいソフトウェアのため、画面が見やすく綺麗になっています。しかし多言語対応が行われていないことや、操作によってはエラーページが表示されるなど、まだ安定性がありません。
go-ldap-admin
go-ldap-adminとは、go言語で書かれたLDAP管理GUIです。go-ldap-adminは、LDAP DITの表示方法がテーブル表示となっており、ldap-uiと同じように、予め設定したDNパターンによる認証を行います。go-ldap-adminは、比較的新しいフロントエンドのフレームワークを用いて作られているため、画面は非常に綺麗です。しかし、開発元が中国で多言語対応の機能も無いため、中国語を理解する必要があります。また、まだバージョン1.0がリリースされていない開発途上のソフトウェアです。
LDAPアカウント管理ソフトウェア
LDAPアカウント管理ソフトウェアとは、LDAPのユーザアカウントを管理するソフトウェアです。
LDAP Account Manager
LDAP Account Managerとは、LDAPのユーザアカウントを管理するために開発されたソフトウェアです。LDAP Account Managerは、アカウント管理に特化しているため、管理できる内容に制限があります。
- 予め設定したアカウント・グループのDIT 配下しか管理ができない
- 全体のツリー表示は可能だが、参照のみ
- アカウントに関連する予め用意されたスキーマしか解釈できない
独自のLDAP スキーマでアカウントを管理している場合は、プログラムのカスタマイズが必要になります。カスタマイズの機能がないため、プログラムを書く必要があります。
Keycloak
Keycloakとは、シングルサインオンを可能にするソフトウェアです。Keyclockでは、SSOの認証バックエンドとしてLDAPを利用することができます。そのためKeycloakで、LDAPユーザ向けインターフェースとして利用が可能です。ユーザ認証やLDAPのパスワード変更、LDAPユーザとLDAPグループの紐づけをすることができます。
LDAPデータ管理のOSS 比較表
phpLDAPadmin | web2ldap | Cockpit 389 DSプラグイン |
|
---|---|---|---|
開発言語 | PHP | Python3 | nodejs |
ライセンス | GNU General Public License | Apache Licence v2 | GPLv3 |
多言語対応 | ○ | △ | △ |
LDAP DITの表示 | ツリー | ツリー | ツリー |
認証 | DNによる認証 | DNによる認証 | Cockpitの認証による |
LDAPサーバの切り替え | ◯ | ◯ | × |
カスタマイズ機能 | ◯ | ◯ | × |
ldap-ui | go-ldap-admin | LDAP Account Manager | keycloak | |
---|---|---|---|---|
開発言語 | Python, Javascript |
Python, Javascript |
PHP | java |
ライセンス | MIT License | MIT License | GPLv3 (pro 版は別ライセンス) |
Apach License version 2 |
多言語対応 | × | × | ◯ | ◯ |
LDAP DITの表示 | ツリー | テーブル | ツリー・テーブル | なし |
認証 | DNパターンによる認証 | DNパターンによる認証 | DNパターンによる認証 | Keycloakの ローカル認証, LDAP認証 |
LDAPサーバの切り替え | × | × | ◯ | × |
カスタマイズ機能 | × | × | × | △ 画面テーマのみ |
LDAPデータ管理ツールは、どれを利用すればいいのか
結果として、phpLDAPadminの代替として利用するのであれば、phpLDAPadminと一番似ていることから、web2ldapが有力候補と考えられます。しかし、利用するLDAPサーバが、389 Directory Serverであれば、Cockpitのプラグインを導入することで、シンプルな管理GUIを利用することができます。また、Keycloakをユーザ向けのインターフェースとして十分に利用が可能です。