OpenLDAP 資料一覧
2008/3/22更新
対応バージョン: 2.4.8
slapd.confは多くの設定項目があるので、ここでは初期インストール時に有効になっている項目についてのみ説明する。他の設定項目については別資料にて説明する。
まず注意すべき点として、行がスペースで始まっている場合は前の行からの継続であるとみなされる。次に設定項目と設定値の間はスペースでなくタブである必要がある。これらの仕様はトラブルの元になることが多いので意識して設定を行うこと。
以下、それぞれの設定項目について説明する。
スキーマ読み込み
使用するスキーマ定義を読み込む。1行ずつ複数指定可能である。
include <スキーマ定義ファイル>
例)
include /usr/local/etc/openldap/schema/core.schema include /usr/local/etc/openldap/schema/cosine.schema include /usr/local/etc/openldap/schema/inetorgperson.schema
(*) このオプションの取り扱いには注意すること。入れ子になったincludeオプションに制限はなくincludeがループになった場合でも検出されない。
OpenLDAPにはあらかじめ以下のスキーマ定義が用意されている。
この中でcore.schemaは必須であり、それ以外は必要に応じてincludeする。
基本
core.schema
OpenLDAPのコアスキーマ定義
cosine.schema
X.500シリーズ(*1)準拠スキーマ定義
inetorgperson.schema
core.schemaのorganizationalPersonオブジェクトクラス(*2)を拡張し、メールアドレスなどのインターネットで使用する属性を加えたinetOrgPersonオブジェクトクラスが定義されている。
(*1) X.500シリーズは分散ディレクトリサービスに関する世界統一規格。この規格に準拠したネームスペースを使用すれば異なるディレクトリサービス間で相互運用性が確保される。
(*2) organizationalPersonオブジェクトクラスはpersonオブジェクトクラスの拡張。つまり、inetOrgPerson > organizationalPerson > personという継承関係になる。
サービス/プロトコル関連
corba.schema
CORBA関連
java.schema
Java関連
nis.schema
NIS関連
その他
openldap.schema
OpenLDAPプロジェクトPR用
ppolicy.schema (*)
パスワードポリシー用
dyngroup.schema (*)
Netscapeによるダイナミックグループ定義
misc.schema (*)
雑多なスキーマ定義
(*) これらのスキーマは実験用なので実運用にはなるべく使用しないこと!
slapd管理ファイル
slapdのPIDや起動時のコマンドラインオプションを保存するファイルを指定する。
内容はslapd起動時に書き込まれる。
pidfile /var/run/slapd.pid argsfile /var/run/slapd.args
バックエンドデータベース
バックエンドに使用するデータベースの種類を指定する。
database <データベースタイプ>
データベースは「bdb」(Berkeley DB)を使用するのが一般的であるが、その他にも以下の種類が利用できる。
dnssrv
DNS SRV
hdb
Hierarchical variant of bdb
ldap
Lightweight Directory Access Protocol(代理)
ldbm
軽量DBM
meta
メタディレクトリ
monitor
モニタ
passwd
passwd(5)への読取り専用アクセス
perl
Perlプログラム可能なバックエンド
shell
Shell(外部プログラム)バックエンド
sql
SQLプログラム可能なバックエンド
サフィックス
データツリーのベース部分を定義する。以降のデータは全てこのツリー下に配置される。
suffix "<ベース指定>"
例えば「dc=example,dc=com」というベースを定義する場合は以下のようになる。
suffix "dc=example,dc=com"
root DN
管理者のDNを定義する。
rootdn "<root DN>"
例えば以下のように前述のサフィックスと共に指定する。
rootdn "cn=Manager,dc=example,dc=com"
rootpw
上記管理者のパスワードを指定する。
rootpw <root DNのパスワード>
平文で指定することも可能であるが、セキュリティを考慮して通常はSSHA形式などエンコードされた値を使用すべきである。
指定可能な暗号化方式を以下に示す。
CRYPT
MD5
SMD5
SSHA (デフォルト)
SHA
パスワードはOpenLDAP付属のslappasswdコマンドにて生成することができる。
# /usr/local/sbin/slappasswd -s <パスワード> -h '{<暗号化方式>}' {<暗号化方式>}k3aOoaWZat8snR3O4LmNzHwcWTYV5rPe
出力された結果をそのままrootpwに指定すればよい。例えば以下のように指定する。
rootpw {SHA}eOZi3nfyPWFJueGFZS5i3jaQMD8=
尚、暗号化方式に「CRYPT」を指定すれば/etc/shadow内のパスワードをそのまま流用できる。
関連資料・記事
directory
データの実体を保存するディレクトリを指定する。
directory <ディレクトリ>
index
属性毎に管理するインデックスを指定する。
ユーザ情報を扱うposixAccountのように検索キーとして頻繁に使用する属性(uid,uidNumber等)とほとんど使用しない属性(gecos等)がはっきりしている場合には検索キーにインデックスを作成しておくと検索速度が早くなる。
ただ、インデックスを作成するとその分ディスク容量が必要になるので必要に応じて作成するようにする。
設定は以下の書式で行なう。
index {<属性リスト>|default} [<インデックス設定>]<属性リスト>だけが指定された場合、デフォルトのインデックス(pres,eq)が指定されたものとみなされる。
以下、インデックス設定の種類についてそれぞれ説明する。
pres (存在)
検索例)
uid=*
eq (等価)
検索例)
uid=ldapuser
approx (近似)
検索例)
uid=ldapusr
sub (部分一致)
検索例)
uid=ldap*
none (無し)
例) インデックスのデフォルトセットを存在(presence)と等価性(equality)を管理するように設定
index default pres,eq
例) objectClassとuid属性型についてデフォルトのインデックス(pres,eq)を管理すように設定
index objectClass,uid
例) cnとsn属性型について等価性(equality)、部分文字列(substring)、近似(approximate)のインデックスを管理するように設定
index cn,sn eq,sub,approx
インデックスの設定を行ったらslapindexを使ってインデックスを作成する。
# service slapd stop # /usr/local/sbin/slapindex # service slapd start
尚、インデックスはslapd.confのdirectoryで指定されたディレクトリ配下に格納される。
関連資料・記事