前置き
なにかと認証周りで利用されているLDAP。
自分も仕事で使っているが「ユーザー情報が格納されてるんでしょ?」ぐらいの理解しかないので、
この機会に理解を深めるべく、つらつら調べたことをまとめてみる( ・`д・´)
※コマンドやファイルのパスなどは基本的に OpenLDAP で利用
LDAPとは?
Lightweight Directory Access Protocol の略で LDAP。
名前の通りで、ディレクトリサービスにアクセスするためのプロトコル。
ディレクトリサービスとは?
ネットワークを利用するユーザー名やマシン名など様々な情報を管理するためのサービス。
分散型のディレクトリサービスとして DNS が有名。
ディレクトリサービスの特徴
- 読み取りが高速
- 分散型の情報格納モデル
- 高度な検索機能を持つ
- テーブル構造ではなく木構造
- 主にテキストベースの情報を扱う
- 基本的な設定項目が最初から定義されている(氏名・電話番号など)
代表的なディレクトリサービス
- OpenLDAP(OSS)
- NIS(Sun Microsystems = Oracle?)
- NDS(NetIQ)
- Open Directory(Apple)
- Active Directory(Microsoft)
用語
LDBM
ツリー状にデータを管理するデータベース
ベースDN
ディレクトリサービスの起点となるディレクトリ
エントリ
ツリー状に構成される要素(データ)
実世界のオブジェクトを反映したもの
DN (= Distinguished Name)
各エントリを一意に識別する識別名
属性
エントリの関連情報
オブジェクトクラス
属性の集合体でエントリにオブジェクトクラスを指定すると、
そのオブジェクトクラスで定義されている属性をエントリで使用できるようになる。
ユーザーが自由に作成することが可能だが、一般的に OpenLDAP に含まれる標準的なオブジェクトクラスを使用する。
スキーマファイル
オブジェクトクラスを定義したファイル
/etc/openldap/schema に格納されている。
LDIF (= LDAP Data Interchange Format)
LDAPのデータをまとめて処理するためのファイルフォーマット。
簡単にデータの操作が可能になる。
LDAPサービスの代表的な属性
属性名 | 定義 |
---|---|
dc | ドメイン名の要素(Domain Component) |
c | 国名(Country) |
o | 会社名・組織名(Organization) |
ou | 部署名(Organization Unit) |
uid | ユーザーID(UserID) |
cn | 氏名(Common Name) |
sn | 姓(Surname) |
gn | 名(Givenname) |
メールアドレス | |
loginshell | ログインシェル |
uidNumber | ユーザーID |
gidNumber | グループID |
homeDirectory | ユーザーのホームディレクトリ |
userPassword | ユーザーのパスワード |