インフラ勉強会:LDAP講義
エンジニアライフの読者の皆様、こんにちは。
北陸(石川県金沢)在住で、テクニカルライター&プログラマーの平田豊(ひらたゆたか)です。
今回は4/5に開催されたインフラ勉強会の講義の様子を紹介します。なお、記事作成にあたり、スピーカーのshimarisuさんには許可をいただいています。
講義情報
LDAPの必要性
LDAPは従業員が多数いる組織において、従業員のアカウント管理を楽にするしくみです。
通常、従業員が使うパソコンのアカウント(ユーザ名とパスワード)は、ひとつのパソコンに記録され、その従業員により管理されます。従業員が少ない(例えば10人以下)組織では、この方法でも問題はありません。定期的なパスワード変更は従業員に任せ、パスワードを忘れてしまった場合(かつAdministratorのパスワードも紛失)は、パソコンをクリアインストールすることになります。
しかし、従業員が100人、1000人、10000人と多い場合、前述した管理方法では破綻します。従業員が使うパソコンは一台とは限らないため、パソコンごとにアカウント設定をしないといけないですし、定期的にパスワードを変更しているかを一元管理できないですし、パスワードを失念した場合に都度パソコンをクリアインストールするわけにもいかないからです。
そこでLDAPというしくみを導入することで、従業員のアカウント管理をローカルのパソコンではなく、サーバで一括管理することが可能となり、前述したような課題を解決します。Windowsサーバで運用している場合はActive Directoryを使いますが、LDAPの一種です。
LDAPとは何か
LDAP(Lightweight Directory Access Protocol)はそのまま訳すと「軽量なディレクトリにアクセスするプロトコル」という意味ですが、なんのことやらピンとこないですよね。この手の用語は何の略かを覚えてもあまり意味がないので、略称で覚えておけば、たいてい話は通じます。
LDAPの"L"
エル知っているか 死神は...のエルとはまったく関係ないです。
DAP(X.500)というプロトコルを軽量化するために、LDAPが誕生したとのことです。しかしながら、LDAPv3はもはや軽量とは言えないほど、仕様も実装も大きくなっているようです。
LDAPの"D"
ディレクトリは台帳や名簿という意味で、ID・パスワード・名前などの情報を格納するデータベースのことです。
LDAPのレイヤ
LDAPはTCP/IP階層モデルではアプリケーション層に位置します。TCP/389ポート(ldap)もしくはTCP/636ポート(laps)を使用します。
ディレクトリはツリー構造
LDAPで使われるディレクトリは、RDB(関係データベース)とは異なり、階層構造を持つデータベースとなります。以下、講義資料より引用します。
LDAPサポート製品
Windowsで使われるActive Directoryはみなさん馴染みがあると思いますが、LDAPをベースにMicrosoftが独自拡張したしくみです。
LinuxではオープンソースソフトウェアのOpenLDAP(slapd)が定番です。
LDAPの応用例として、Webサーバ(Apacheやnginx)のユーザ認証やRedmineのユーザ管理などにLDAPのしくみを導入することができます。
LDAPの注意点
LDAPサーバが落ちると、すべてのクライアント端末からユーザ認証ができなくなるので、通常LDAPサーバは冗長化しておく必要があります。
おまけ
今回の講義としてはここまでですが、講義終了後、おまけのトークセッションがありました。
実は今回のスピーカーのshimarisuさんは、Tera Term(ターミナルソフト)のアイコンを制作されている方でもあるのです。
上記アイコンはTera Term Pro 2.3に採用されているものですが、当時会社のお昼休みを使って1時間で描き上げたそうです。すごいですね。
筆者がTera Termのオープンソース化を2004年に着手してから、しばらくして、shimarisuさんから新しいデザインのアイコンが送付されてきたことを思い出しました。懐かしいですね。当然、現在のTera Termでも氏のアイコンが採用されています。