LDAPって何なの
問題
LDAPって何
解答例
要するにデータベースです。
LDAP = Lightweight Directory Access Protocol で、
正確にはプロトコル(規格みたいなもの)です。
「LDAPというデータベース」ではなくて、
「LDAPを実装したデータベース」なのですが、いろいろ存在します。
オープンなものだと OpenLDAPなど。
プロプライエタリなものだとActiveDirectory(Microsoft)など。
正確には、バックエンドのデータベースは何でもよくて
(BerkeleyDB、HDB、他のサーバー、ActiveDirectory など)
そこに入っている情報に、
LDAPっていうプロトコルで問い合わせができればよい。
Webサーバーは何でもよくて(Apache、nginx、Lighttpd、IIS など)
HTTPっていうプロトコルで問い合わせができればよい。
というのと似てますね。
で、LDAPの特徴ですが、
階層型のデータベースと考えるとわかりやすいです。
人や組織を表すのに向いています。
「株式会社ソフテルのXX部のXX課のAさん」とか
「Aさんのメールアドレスはaa1@とaa2@とaa3@の3つあります」
といったレコード(エントリ)が作れます。
問い合わせもSQL文じゃないです。
「メールアドレスがaa2@の人って誰」
「XX部の人の一覧ちょうだい」
など問い合わせできます。
リレーショナルデータベースとはまた違った世界も見てみると面白いと思います。
データベースに入れて、データベース側で一元管理したいものといったらいろいろありますが、人や組織を表すのに向いていると書いたとおり、
・ メールアカウント
・ Windows、Linuxのログイン情報
・ Apacheのベーシック認証のユーザー
・ (認証に限らず)メールソフトのアドレス帳
・ FTPユーザー
などのデータベースとして利用されたりします。
OS(Windows、Linux)、メールサーバー、メールソフト、Apacheなど各種システムの方も、
なにげに広くLDAPに対応しているので、
地味にあちこちで活躍しています。
企業などで使われることを想定しているグループウェア等のWebシステムでも、
LDAP認証ができるようになっている製品がよくあります。
システムの話でLDAPとかAD(えーでー、ActiveDirectoryのこと)とか言われたら、
認証サーバー、認証データベースだなと思っておけば話は通じると思います。
会社や学校で100人、1000人単位で人がいるところは、
よくそういうものでユーザーやメールアドレスを管理してます。
ADで認証などしたかったら、LDAP関数を使うとよいです。
http://jp2.php.net/ldap
・アカウントとパスワードが正しいか問い合わせる(認証)
・登録されているその人の情報を取得する(問い合わせ)
・その人のパスワードを変更する(更新)
などができます。
コメント