ネットワーク管理者は、しばしばLDAP(Lightweight Directory Access Protocol)を使って集中型ディレクトリサーバの実装を行う。LDAPはApacheでのユーザ認証にも使用される。オープンソースのLDAPソリューションとしてよく知られているのはOpenLDAPとRed Hat Directory Serverの2つであるが、ApacheのマニュアルによればNovell LDAPとiPlanet Directory Serverもサポートされている。本稿はOpenLDAPを対象としたものであるが、ここで紹介する考え方と例はほかのものにも当てはまるはずである。
LDAPはITU-T X.500ディレクトリの仕様を簡素化したバージョンとして設計された。デフォルトのスキーマセットには、/etc/passwdおよび/etc/groupといった従来のLinuxファイルシステムやSunのNIS(Network Information System)に見られる情報のすべてが含まれている。このスキーム群は柔軟性を備えているため、利用者統計情報を追加するために拡張されたり、特定のアプリケーション向けにカスタマイズされたりすることが少なくない。
以下に、LDIF(LDAP Data Interchange Format)に記述される一般的なLDAPのユーザレコードの例を示す。
dn: uid=keithw,ou=People,dc=company,dc=com
uid: keithw
cn: Keith Winston
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {crypt}$1$M/PZEwdp$KHjSay8JILX01YAHxjfc91
shadowLastChange: 13402
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 2741
gidNumber: 420
homeDirectory: /home/keithw
gecos: Keith Winston
LDAPデータに対するクエリには、OpenLDAPの標準ユーティリティの1つであるコマンドラインプログラムldapsearchなど、数々のツールが使える。初めての人には、LDAPの用語や構文が難しく感じられるかもしれない。だが、LDAP検索の構文をしっかりと学んでおけば、あとになって標準でない属性を用いた高度なポリシーを作り上げるときに役立つはずである。
