What is LDAP
Lightweight directory access protocolの略称。
その名の通り、プロトコル。(FTPとかHTTPと同じ類)
もともとあったDAPというサービスを軽量化させて一般的に使えるようにしたもの。
ユーザーやパスワード等を管理するために使われる。
用途
- 社内のITサービスにおけるユーザー管理
- ユーザーにまつわる認証、認可関連
LDAPにおけるデータ構造
エントリ
DBでいうところのテーブルのようなもの。
組織エントリとか、在庫エントリとか。
基本的にKey/Value形式のような形で、属性名/属性値を設定する。
属性名 | 属性値 |
---|---|
名前 | 田中一郎 |
住所 | 東京都○区 |
電話番号 | △△△△ |
オブジェクトクラス
DBでいうカラムの定義。
各属性に対して、どんな情報を入れるのかを定義しておく。
例えば電話番号に文字列が入るとおかしいなどバリデーションができる。(属性構文)
これらをまとめたものをスキーマと呼ぶ。
DIT(ディレクトリインフォメーションツリー)
基本的にLDAPでは各ユーザーを階層構造で定義しておき、芋づる式でユーザーを検索する。
その階層を定義するのがDITとなる。
例: ◯◯会社の△△部□□課の山田さんというユーザーは、 + 会社 + 部 + 課 という3つの階層が定義されており、その中で管理されている。 (ここでいう△△部とか□□課は他の部や課と区別するということでRDN(Relative Distinguished Name)と呼ばれる)
- DITでよく出る用語 |用語|概要| |—-|—-| |dn|識別名| |objectClass|そのまま| |dc|ドメインを構成する要素| |o|組織名| |ou|組織単位| |cn|名称|
さっきの例をDITの用語で表現すると、
DN: cn=山田さん,ou=□□課,ou=△△部,dc=◯◯会社
みたいになる
LDAPを使ったアクセス認証
LDAP使用時におけるユーザーのアクセス認証については、
+ 各dnにたいしてパスワードを設定する + SASL等のSSOと連携 + Linuxのユーザー権限と組み合わせ
が可能。
LDAPを使ったユーザー検索
ユーザー検索では、 + どの階層に属しているユーザーを検索するか(base) + 指定した階層からどこまで掘り下げて検索するか(one,child) を設定する。
またフィルタを設定することで検索から必要なユーザーだけ抽出も可能。
LDAP更新
LDAPでは追加、更新、削除ができるが、これらはLDIFと呼ばれるフォーマットで設定する