SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

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対応例 @SugarCRM

システムの話でLDAPとかAD(えーでー、ActiveDirectoryのこと)とか言われたら、
認証サーバー、認証データベースだなと思っておけば話は通じると思います。
会社や学校で100人、1000人単位で人がいるところは、
よくそういうものでユーザーやメールアドレスを管理してます。

ADで認証などしたかったら、LDAP関数を使うとよいです。
http://jp2.php.net/ldap
・アカウントとパスワードが正しいか問い合わせる(認証)
・登録されているその人の情報を取得する(問い合わせ)
・その人のパスワードを変更する(更新)
などができます。

関連するメモ

コメント