LDAP基本

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と呼ばれるフォーマットで設定する