###LDAPがなんだかよくわからない自分のために
####【LDAPとは】
Light weight(軽量)な Directory Access Protocolのこと
LDAPは、ユーザからの検索クエリに対して結果を返したり、システム管理者が内容を自由に追加、変更できるデータベースとして機能する、らしい
####【RDB(リレーショナルデータベース)と何が違うのか?】
それだったらRDBでもいいと思う。RDBと何が違うのか?
→ RDBと違って、LDAPは「ディレクトリ」と呼ばれる階層構造(木構造)により構成されている
<データベースが木構造であるメリット>
- ディレクトリ(階層)によるグルーピングにより、管理がしやすい(木構造だから、枝ごとに管理を委任できる)
- 目的のユーザ情報がグルーピングされたディレクトリだけ検索すればよいので、検索のパフォーマンスがよい(木構造だから、全検索しなくても、その枝だけ検索すればよい)
- 主にテキストベースの情報を扱うので処理の負荷が小さい
- 検索のためのプロトコルとして属性が定義されている。LDAPスキーマとして自分で属性を加えることもできる
####【LDAP管理上の単位】
LDAPは管理上の単位として、オブジェクトと、エントリを持つ
オブジェクト→管理者が実際に操作する対象(木構造の葉のこと)
LDAP項目 | RDBで言うと |
---|---|
entry | レコード |
attribute | カラム |
オブジェクトが要素で、エントリが要素の集まった塊のこと。
データベースと同じように、エントリ(レコード)の追加、削除、編集などができるが、それらを行うまえに、バインドを行わなければならない。
バインドとは認証のこと(ログインみたいなもの)
####【LDAPの木構造】
DIT(Directory Information Tree)というらしい。
TOPから順に、
DC(Domain Component)= ドメイン名
OU(Organizational Unit)= 組織単位
CN(Common Name)= 一般名
これらを下位からカンマでつなげると、
DN(Distinguished Name、識別名)になる。当たり前だけど、DNはそのドメインで一意でないといけない。
ちょっと例を見てみよう。
LDAPはデータベースなので、とりあえず登録するものは人でもモノでもなんでもいい。
例えば、日本の、hogehoge社にある、営業課のプリンタを登録してみる。
DC=hogehoge,DC=com ★
OU=Sales
CN=Canon01
★DCはドメインの構成要素のことなので、例えばgoogleだったら、www.google.comは
DC=www,DC=google,DC=comと、3つのDCを持つことになる。
DN:CN=Canon01,OU=Sales,DC=hogehoge,DC=com
こんな感じ。
【LDAP searchの意味がわからない】
ldapsearch -x -h localhost -p 9999 cn=hoge1 -b ds=aaaa, o=bbb, dc=ccc -s sub -a always
-x
InfoDirectoryサーバ上で検索する
-h (ldap host)
LDAPサーバが稼働しているホスト名またはIPアドレス
-p (ldap port)
LDAPサーバに接続するためのポート名
-b (search base)
検索開始位置をデフォルトではなくsearch baseにする
-s (base|one|sub)
検索スコープ。base→ベースオブジェクト、one→1レベル検索、sub→サブツリー検索
-a (never|always|search|find)
never→エイリアスを実名参照しない always→常に実名参照 search→検索で実名参照 find→ベースオブジェクトを探すときのみ実名参照