Keycloakを使ったLDAPデータの管理
OSS研究室 森 彰吾
今回は、LDAPのデータ管理ツールとして、Keycloakをご紹介します。
Keycloakは、以前もこのメールマガジンで取り扱っています。その際は、シングルサインオン(SSO)に関連する機能を重点的に紹介しましたが、今回は、LDAPデータを管理するための機能をご紹介します。
LDAPとは
LDAP(Lightweight Directory Access Protocol)とは、ディレクトリサービスのための標準プロトコルです。ディレクトリサービスとは、ファイルや人の情報(名前、メールアドレス、電話番号、住所など)を管理するためのものです。LDAPを使ってディレクトリサービスを提供するソフトウェアやシステムを、LDAPサーバと呼びます。
LDAPサーバは、企業内では特にユーザ情報の管理や認証の基盤として使用されます。有名なOSSのLDAPサーバとしては次のようなものが挙げられます。
- OpenLDAP
- 389 Directory Server
LDAPのデータ管理ツールの必要性
上記のようなLDAPサーバのソフトウェアには、LDAPのデータを管理するためのGUIが付属しておらず、標準ではコマンドラインの操作が必要です。そのため、一般的には、管理しやすくするためのGUIツールを別途導入する場合が多いです。
OSSのGUIツールとしては、phpLDAPadminというソフトウェアが広く普及していましたが、現在は開発が停止している状態(※1)で、最新のOS(PHP)で上手く動作しません。つまり、現在はphpLDAPadminに代わる別のLDAP管理ツールの必要性が増しています。
(※1)GithubではphpLDAPadmin2のデモサイトが公開されていますが、2021年ごろから動きがありません。筆者から開発者に連絡を取ってみたところ、開発に割ける時間がない旨の返信がありました。
KeycloakによるLDAPデータの管理
Keyclockとは、RedHatによって開発されているシングルサインオン(SSO)を実現するためのオープンソースソフトウェアです。Keyclockでは、SSOの認証バックエンドとしてLDAPを利用することができます。ただ認証するだけでなく、LDAPのデータを操作するための機能も充実しています。そのため、Keycloakを利用することで、LDAPデータをわかりやすく管理することができます。
標準の状態のKeycloakとLDAPサーバを連携し、次のような機能を利用することができます。
- ユーザ認証
- LDAPの属性(姓、名、メールアドレスの情報等)とKeycloakの属性のマッピング
- LDAPの属性の追加・更新
- LDAPのパスワード属性の更新
- LDAPユーザとLDAPグループの紐付け
特に便利なポイントとして次の内容が挙げられます。
LDAP属性をカスタマイズして管理できる
Keycloakは、LDAP属性の管理ができるだけでなく、管理画面のカスタマイズもできるようになっています。一般的なLDAP管理ツールでは専門的な属性名でしか管理できなかった情報を、Keycloakで独自のフォームを作成することで、ユーザデータをわかりやすく管理することができます。ユーザ情報は組織によって様々であるため、カスタマイズすることで組織毎の運用に合わせた管理画面を作成することができます。
ユーザ自身でパスワードを更新できる
Keycloakは、ユーザ自身がログインをしてプロフィールやパスワードの更新をする画面を備えています。この画面があることにより、ユーザ自身がパスワードを更新するという運用を、GUIの開発無しで実現することができます。また、Keycloakでパスワードのポリシーを決めることができるため、組織のルールにあった強度のパスワードを設定することもできます。
ユーザ画面のカスタマイズも可能
前述した属性管理と同じように、ユーザが操作する画面もカスタマイズが可能です。カスタマイズすることで、次のようなことを行うことができます。
- ユーザに更新してほしくない情報を読み取り専用にする
- 標準以外の任意の属性を更新できるようにする
- 組織の管理方法に合うようにデザインを変更する
LDAPデータ管理ツールとしてのKeycloakの課題
LDAPデータ管理ツールとしてのKeycloakには、以下のような課題もあります。
- LDAPのデータツリーなど深い部分の管理が行えない
- LDAPグループの作成・削除の処理がKeycloakから行えない
つまり、LDAPサーバ自体は管理できず、あくまでLDAPサーバのデータを管理する目的で利用するということになります。
課題の改善方法
LDAPサーバの管理を行うためには、サーバ自体を管理するためのツールが別途必要です。最近のLinux OSでよく利用されている389 Directory Serverであれば、OSを管理するためのUIであるCockpitというソフトウェアを使って、LDAPサーバの管理をすることができます。Cockpitも機能追加により、やや専門的であるものの、LDAPデータの管理ができるようになっています。
初期のLDAPサーバの構築や、時折発生するグループ追加などの作業はCockpitを利用し、日常的なデータ管理はKeycloakを利用するといった使い分けが可能です。
CockpitのLDAPデータ管理機能については、以下の調査報告書で解説しています。
デージーネットでは
デージーネットでは、Red Hat Enterprise Linuxなどが389 Directory Serverを標準化したことで、389 Directory Serverの取扱いが増えています。今後は、上記のような構成でのご提案や、より運用しやすいKeycloakの管理画面の提供を行いたいと考えています。
なお、LDAPデータの管理ツールについては、他にもいくつか存在しています。それらは以下の調査報告書にまとめて公開しています。
今回ご紹介したKeycloakについては、管理画面イメージと合わせて以下のページで詳細を紹介しています。
関連ページ
KeyclockのLDAPデータ管理
デージーネットからのお知らせ
IT資産管理もOSSで、社内の備品管理からIT資産情報まで取得できるSnipe-IT紹介セミナーを開催します。
今回は、社内の備品管理からIT資産情報まで取得できるオープンソースソフトウェアの資産管理ツールSnipe-ITを紹介します。
- 日程:2023年2月22日(水)
- 時間:15:00〜16:00
詳細↓↓
https://www.designet.co.jp/seminar/seminar.php?seminar_id=79
倉敷ケーブルテレビに当社が10G対応ネットワーク通信速度計測OSS 『LibreSpeed』を導入 高速なインターネット環境の導入を促進
https://www.designet.co.jp/info/?id=583
日本企業のメールセキュリティ対策調査結果についてのプレスリリースが、impress BUSINESSMEDIAに取り上げられました!
https://www.designet.co.jp/info/?id=582
無料資料ダウンロードに【LDAPサーバ管理UI調査報告書】を掲載しました。
LDAPとは、ディレクトリサービスのための標準プロトコルです。LDAPを使い、ディレクトリサービスを提供するソフトウェアやシステムを、LDAPサーバと呼びます。本書は、OSSのLDAPサーバの管理UIの現状についてまとめたものです。
https://www.designet.co.jp/download/#information
メールサーバの安全性を無料でチェックできるサイトを公開しています。
メールセキュリティへの関心が高まる中、メールセキュリティのチェック項目を整理して、誰でも簡単にチェックできるツールはありませんでした。本サイトでは、メールアドレスを入力するだけで、メールサーバのセキュリティを無料でチェックできます。