SLAPD.CONF
Section: File Formats (5)
Updated: 2005/11/18
Index
Return to Main Contents
名前
slapd.conf - スタンドアローン LDAP デーモン slapd の設定ファイル
所在
/usr/local/etc/openldap/slapd.conf
説明
ファイル
/usr/local/etc/openldap/slapd.conf
は
slapd(8)
デーモンのための設定情報を持ちます。この設定ファイルは、
複製デーモン
slurpd(8)
と SLAPD ツール
slapacl(8),
slapadd(8),
slapauth(8),
slapcat(8),
slapdn(8),
slapindex(8),
slaptest(8)
でも利用されます。
この
slapd.conf
ファイルは、(すべてのバックエンドを含む)
slapd
全般に適用する一連のグローバル設定オプションと、バックエンドの実体に
固有の情報を持つデータベースバックエンド定義が0個以上続いたものから成ります。
設定オプションは英大小文字を区別しませんが、その値はオプションにより
英大小文字を区別する場合があります。
slapd.conf
の一般的なフォーマットは次とおりです。
# comment - these options apply to every database
<global configuration options>
# first database definition & configuration options
database <backend 1 type>
<configuration options specific to backend 1>
# subsequent database definitions & configuration options
...
バックエンド固有のセクションは必要なだけ置けます。
グローバルオプションはバックエンドのセクションで上書きできます
(同じオプションが2度以上現れる場合には、ファイル
slapd.conf
で最後にあるものが使われます)。
行が空白文字で始まる場合には前の行からの継続とみなされます。
空行と文字 `#' で始まるコメント行は無視されます。
注記:継続行はコメント処理が適用される前に結合されます。
設定行での引数は空白で区切ります。引数に空白を含めるには、その引数を
二重引用符で囲みます。引数に二重引用符(`"')あるいは
バックスラッシュ文字(`\')を含めるには、その文字の前に
バックスラッシュを付けます。
指定可能な個々の設定オプションは、以降の節の
「グローバル設定オプション」、「一般バックエンドオプション」、
「一般データベースオプション」でで説明します。
バックエンド固有のオプションは
slapd-<backend>(5)
マニュアルページで説明します。
slapd の設定ファイルについてより詳しくは "OpenLDAP 管理者ガイド"
を参照してください。
グローバル設定オプション
この節で説明するオプションは、バックエンド定義で特に上書きしない限り
すべてのバックエンドに適用します。
実際のテキストで置き換える引数はブラケット <> で示します。
- access to <what> [ by <who> <access> <control> ]+
-
エントリや属性の1セット(<what> に指定)に対するアクセス権(<access>
に指定)を1人以上の要求者(<who> に指定)に与えます。
アクセス制御を指定しない場合にはデフォルトのポリシーにより
あらゆるものを読み取ることができますが、更新は rootdn
だけに限定されます("access to * by * read"
と指定した場合と同じになります)。rootdn は常に読み取りと書き込みが可能です!
詳しくは
slapd.access(5)
を参照してください。
- allow <features>
-
許可する機能を(空白文字で区切って)指定します(デフォルトは none)。
bind_v2
は LDAPv2 バインド要求の受付を許します。
slapd(8)
は、今では歴史上のもの(RFC 3494)となった LDAPv2 (RFC 1777)を忠実に実装
しているわけではないことに注意してください。
bind_anon_cred
は認証情報が空でない匿名バインド(DN が空のときなど)を許します。
bind_anon_dn
は DN が空でないときの匿名バインドを許します。
update_anon
は認証されていない(匿名の)ユーザによる更新操作の処理を許します
(アクセス制御などの設定管理による制限を受けます)。
- argsfile <filename>
-
slapd
サーバをデバッグコマンドラインオプション無しで始動した場合に、
slapd
サーバのコマンドラインオプションを保持するファイルの
絶対パス名を指定します。
- attributeoptions [option-name]...
-
属性タグオプションまたはタグ/地域の接頭辞を定義します。
オプションの終端には `-' があってはならず、接頭辞の終端は `-'
でなければなりません。
予め定義されている接頭辞に `lang-' がありますが、
attributeoptions
ディレクティブを利用すると `lang-' の定義は無効になるので、
使いたいのであれば明示的に指定しなければなりません。
タグオプションの付いた属性記述子は、オプション無しの属性記述子の
サブタイプです。
この点を除いて、attributeoptions ディレクティブで定義された
オプションは特別な意味を持ちません。
ディレクティブ attributeoptions で定義された接頭辞は `lang-'
の付いたオプションと同様に機能します。
これはタグオプションのための接頭辞を定義していて、
この接尾辞で始まるオプションを利用可能とします。
すなわち接頭辞 `x-foo-' を定義すると、オプション `x-foo-bar' が
使えるようになるわけです。
さらに検索や比較において、
接頭辞や地域名(末尾に `-' の付くもの)は、その名前で始まるすべてのオプショ
ンに一致し、末尾に `-' の無いレンジ名のオプションにも一致します。
すなわち `x-foo-bar-' は `x-foo-bar' にも `x-foo-bar-baz' にも一致します。
RFC 2251 は、私的な実験のために 'x-' が先についたオプションを予約しています。
その他のオプションは IANA に登録するべきです。
オプションの登録方法は RFC 3383 の 3.4 節を参照してください。
OpenLDAP は組込みで `binary' オプションも持っていますが、
これは転送オプションであって、タグオプションではありません。
-
attributetype ( <oid>
[NAME <name>] [DESC <description>] [OBSOLETE] [SUP <oid>] [EQUALITY <oid>] [ORDERING <oid>] [SUBSTR <oid>] [SYNTAX <oidlen>] [SINGLE-VALUE] [COLLECTIVE] [NO-USER-MODIFICATION] [USAGE <attributeUsage>] )
-
- RFC 2252 に定義されている LDAPv3 シンタックスを用いて属性型を指定します。
slapd のパーサは RFC 2252 の定義を拡張していて、
属性の OID と属性シンタックスの OID に使う数値形式の OID の他に
文字列形式の OID も許しています(
objectidentifier
の説明を参照)。
- authz-policy <policy>
-
代理認可で使う規則を指定します。
代理認可はクライアントのサーバへの認証において、
あるユーザの認証情報を使いますが、
認可とアクセス制御の目的のために使うアイデンティティには違うものを指定します。
原則的にユーザ A はユーザ A のパスワードを用いてユーザ B
としてログインできます。
フラグ
none
は代理認可を無効にします。これはデフォルトの設定です。
フラグ
from
は認証 DN の
authzFrom
属性に設定されている規則を使います。
フラグ
to
は認証 DN の
authzTo
属性に設定されている規則を使います。
フラグ
any
は
authzFrom
と
authzTo
属性の両方に設定されている規則を使います。
検査の順序は
to,
from
の順序で行い、最初に成功したものを使います。
フラグ
both
は
any
と同義ですが、将来的に無くなる予定です。
フラグ
all
は両方の認可の成功を要求します。
-
規則の指定は代理認可を行える DN を指定する機構です。
エントリ中の
authzFrom
属性は、他のユーザにこのエントリへの代理認可を許すことを指定します。
エントリ中の
authzTo
属性は、このユーザが代理認可できる他のユーザを指定します。
authzTo
規則の利用する場合、
この属性への任意の更新をユーザに認めてしまうと簡単に不正な利用ができてしまう
ので注意してください。
一般に
authzTo
属性は特権ユーザだけが更新できるように ACL で保護しなければなりません。
authzFrom
と
authzTo
の値は ID または ID の集合です。この値の指定には3つの形式があります。
-
- ldap:///<base>??[<scope>]?<filter>
-
-
dn[.<dnstyle>]:<pattern>
-
u[<mech>[<realm>]]:<pattern>
-
group[/objectClass[/attributeType]]:<pattern>
-
<pattern>
-
<dnstyle>:={exact|onelevel|children|subtree|regex}
1番目の形式は正当な LDAP
URI
ですが、
<host>:<port>,
<attrs>,
<extensions>
部分は省略しなければなりません。この形式の指定の場合には
saslAuthzFrom
または
saslAuthzTo.
について内部的な検索が行われます。
2番目の形式は、オプションのスタイル修飾子のついた
DN,
です。
スタイル就職子には
exact,
onelevel,
children,
subtree
があり、それぞれ指定した DN のエントリ、指定した DN 直下のエントリ、
指定した DN も含めたサブツリーのエントリに該当します。
<pattern>
には正規化した DN を指定します。
特殊なスタイル修飾子
regex
を指定した場合、
<pattern>
は
regex(7)
や
re_format(7)
に説明のある POSIX (拡張)正規表現として扱います。
パターン
*
は任意の匿名でない DN を意味します。
3番目の形式は SASL の認証
ID
であり、オプションで認証機構
<mech>
と、認証機構でサポートしているレルム
<realm>
を指定できます。
認証機構を指定する必要性についてはまだ議論中であり、
この指定を当てにするのは極力避けてください。
4番目の形式はグループ指定で、キーワード
group
とオプションでグループの
objectClass
とメンバの
attributeType
を指定したものから成ります。
DN
<pattern>
を指定したグループは、
ベース検索され、一致したらメンバの
attributeType
の値が対象の DN として検索されます。
後方互換性のために、形式の種別の指定がなければ(すなわち
<pattern>
だけを指定した場合)、指定の DN のエントリに厳密一致するものとします。
つまり
<pattern>
は正規化した DN として扱います。
authzFrom
と
authzTo
の解釈はセキュリティに影響するので、ID の種別は明確に指定するよう
強く推奨します。
これらの規則のサブセットが
authz-regexp
(後述)の第3引数にも適用されます。特に
URI
と
dn.exact:<dn>
の形式が重要となります。
- authz-regexp <match> <replace>
-
SASL サブシステムが提供するような単純なユーザ名を認可のために利用する
LDAP DN に変換するために認証フレームワークによって利用されます。
結果の DN を持つエントリが存在しなくても適正とみなされることに注意
してください。
SASL サブシステムから認可要求が受け取られると SASL の
ユーザ名(USERNAME)、レルム(REALM)、認証機構(MECHANISM)
を使って、次の形式の SASL 名を作り出します。
-
-
- UID=<username>[[,CN=<realm>],CN=<mechanism>,]CN=auth
-
この名前を
match
POSIX(拡張)正規表現と比較し、一致したならば名前が
replace
文字列に置換されます。
次の例のように
match
の中に括弧で囲まれた正規表現文字列があれば、
その括弧内の正規表現に一致する名前の一部分が $1 などの
数字のついたプレースホルダ変数に格納されます。
-
- UID=([^,]*),CN=.*
-
括弧で囲まれた正規表現が複数ある場合には、左から順番に $1, $2, $3
と格納されていきます。このプレースホルダ変数は次のように
replace
文字列で使えます。
-
- UID=$1,OU=Accounts,DC=example,DC=com
-
名前は DN (前に "dn:" の付いた文字列)あるいは LDAP URI
のどちらかに置換できます。
後者の場合、サーバはそれ自体のデータベースの検索に URI を使い、
検索結果が1エントリだけであれば、そのエントリの DN で SASL 名を置換します。
LDAP URI にはホスト名、ポート、属性、拡張指定があってはなりませんが
フィルタは必須です。たとえば次に示すように指定します。
-
- ldap:///OU=Accounts,DC=example,DC=com??one?(UID=$1)
-
URI のプロトコロル部は必ず
ldap
にしなければなりません。
設定ファイルには複数の
authz-regexp
ディレクティブを与えることができ、
複数のマッチングと置換パターンを指定できます。
マッチングパターンは設定ファイル内の出現順に処理され、
最初に一致したところで処理を終えます。
- concurrency <integer>
-
並行処理の要求レベルを指定します。
これは基盤のスレッドシステムにヒントとして渡します。
デフォルトでは基盤のスレッドシステムに何もヒントを渡しません。
- conn_max_pending <integer>
-
匿名セッションのための未解決要求の最大数を指定します。
サーバの能力を超える要求が送られた場合、そのような要求は
このディレクティブに指定した数まではキューに入れられます。
指定した数を超えた場合にはセッションを閉じます。
デフォルトは 100 です。
- conn_max_pending_auth <integer>
-
認証されたセッションのための未解決要求の最大数を指定します。
デフォルトは 100 です。
- defaultsearchbase <dn>
-
クライアントが空のベース DN でベース検索でない検索要求を送ってくる
場合に使うデフォルトの検索ベースを指定します。
空のベース DN でベース検索を行う場合には、この設定は影響しません。
- disallow <features>
-
禁止する機能を(空白文字で区切って)指定します(デフォルトは none)。
bind_anon
は匿名バインド要求の受付を禁止します。
bind_simple
は簡易(バインド)認証を禁止します。
tls_2_anon
は Start TLS がセッションを匿名状態を強制することを禁止します
tls_authc
も参照)。
tls_authc
は認証後の StartTLS を禁止します(
tls_2_anon
も参照)。
-
ditcontentrule ( <oid>
[NAME <name>] [DESC <description>] [OBSOLETE] [AUX <oids>] [MUST <oids>] [MAY <oids>] [NOT <oids>] )
-
- RFC 2252 に定義されている LDAPv3 シンタックスを用いて DIT Content Rule
を指定します。
slapd のパーサは RFC 2252 の定義を拡張していて、
属性の OID と属性シンタックスの OID に使う数値形式の OID の他に
文字列形式の OID も許しています(
objectidentifier
の説明を参照)。
- gentlehup { on | off }
-
SIGHUP シグナルが「寛大な」シャットダウン実行を行うかを指定します。
slapd
は新しい接続をできなくしますが、接続中のクライアントの切断はしません。
しかし以後の書込み操作は unwilling-to-perform を返します。
すべてのクライアントか接続を閉じるか、その前に SIGTERM シグナル
を受けると slapd は終了します。
これは、現在アクティブなクライアントを切断することなくサーバを終了し、
別のデータベースで
slapd
サーバを始動したい場合に有用です。
デフォルトは off です。
このオプションと
idletimeout
を組み合わせて使うとよいかもしれません。
- idletimeout <integer>
-
アイドル状態のクライアント接続を強制的に切断するまでの秒数を指定します。
idletimeout の値が 0 であるとこの機能は無効になります。
デフォルトは 0 です。
- include <filename>
-
現在のファイルの次の行に進む前に、与えたファイルから追加の設定情報を
読み込みます。
- index_substr_if_minlen <integer>
-
索引種別 subinitial と subfinal のための最小の長さを指定します。
属性値が索引機能で処理されるためには少なくとも指定の長さを
持たなければなりません。デフォルトは 2 です。
- index_substr_if_maxlen <integer>
-
索引種別 subinitial と subfinal のための最大の長さを指定します。
属性値のこの長さまでの部分が索引機能で処理され、これを超える分については無視します。
デフォルトは 4 です。
- index_substr_any_len <integer>
-
索引種別 subany で適用する長さを指定します。
属性値が索引機能で処理されるためには少なくとも指定の長さを
持たなければなりません。属性値が指定の長さを超える場合には、
指定の長さの単位で処理されます。デフォルトは 4 です。
フィルタ文字列が
index_substr_if_maxlen
で指定した値より長い場合には、
subinitial と subfinal による検索でも
subany 索引を利用します。
- index_substr_any_step <integer>
-
索引種別 subany で使うステップ数を指定します。
この値は、subany
索引で処理するフィルタに指定した文字列の一部へのオフセット間隔を指定します。
たとえばデフォルト値のままでフィルタ "cn=*abcdefgh*"
による検索を行うと、索引として "abcd", "cdef", "efgh" を生成します。
- localSSF <SSF>
-
ローカル LDAP セッションに与えるセキュリティ強度係数(Security
Strength Factor: SSF)を指定します。
ローカル LDAP セッションには ldapi:// による接続があります。
SSF 値については
sasl-secprops
の
minssf
オプションの説明を参照してください。デフォルトは 71 です。
- loglevel <integer> [...]
-
デバッグ情報と操作の統計値を syslog に出力するかを示すレベルを指定します
(現在のところ、
syslogd(8)
の LOG_LOCAL4 に記録されます)。
ログレベルは冗長度を上げるものというよりは、サブシステムと考えるべきです。
優先度の高いメッセージについてはログが設定されれば、設定のログレベル
にかかわらずログを取ります。ログを設定しなくても優先度の高いメッセージ
は記録します。
各種のログレベルを加算して指定できます。
利用できるレベルは次のとおりです。
-
-
- 1
-
(0x1 trace)
関数呼出しのトレース
- 2
-
(0x2 packet)
パケット処理のデバッグ
- 4
-
(0x4 args)
(関数の引数も含めた)詳細なデバッグトレース
- 8
-
(0x8 conns)
接続管理
- 16
-
(0x10 BER)
パケット送受信の印字
- 32
-
(0x20 filter)
検索フィルタの処理
- 64
-
(0x40 config)
設定ファイルの処理
- 128
-
(0x80 ACL)
アクセス制御リストの処理
- 256
-
(0x100 stats)
接続/操作/結果の統計ログ
- 512
-
(0x200 stats2)
エントリ送信の統計ログ
- 1024
-
(0x400 shell)
shell バックエンドとの通信の印字
- 2048
-
(0x800 parse)
エントリの解析
- 4096
-
(0x1000 cache)
データのキャッシュ処理(未使用)
- 8192
-
(0x2000 index)
データの索引処理(未使用)
- 16384
-
(0x4000 sync)
LDAPSync 複製
- 32768
-
(0x8000 none)
ログレベルの設定にかかわらずログを取るメッセージのみ
ログレベルは、各レベルの整数値を論理和した値、
レベルの整数値のリスト(内部で論理和をとる)、レベル名のリストで指定できます。
整数値は10進値でも16進値でも指定できます。
たとえば次の3つの指定はどれも同じログレベルになります。
loglevel 129
loglevel 0x81
loglevel 128 1
loglevel 0x80 0x1
loglevel acl trace
キーワード
any
を指定すると、全レベルのログを出力します(-1 を指定するのと同じ)。
キーワード
none
または同等の整数値は、ログレベルの設定にかかわらずログを取る
メッセージを記録します。
実際には no ログレベル(または 0 レベル)を指定すると、ログを取らなくな
るので、優先度の高いメッセージのログを取るには少なくとも
none
レベルが必要になります。
- moduleload <filename>
-
ロードする動的ロード可能モジュールの名前を指定します。
引数の <filename> には絶対パス名か単純なファイルを指定できます。
絶対パス名で指定しない場合には
modulepath
オプションに指定したディレクトリからモジュールを探します。
このオプションと
modulepath
オプションは slapd のコンパイルで --enable-modules
を指定した場合にだけ利用できます。
- modulepath <pathspec>
-
動的ロード可能モジュールを検索するディレクトリのリストを指定します。
典型的にパスはコロンで区切りますが、何で区切るかは OS に依存します。
-
objectclass ( <oid>
[NAME <name>] [DESC <description] [OBSOLETE] [SUP <oids>] [{ ABSTRACT | STRUCTURAL | AUXILIARY }] [MUST <oids>] [MAY <oids>] )
-
- RFC 2252 に定義されている LDAPv3 シンタックスを用いてオブジェクトクラス
を指定します。slapd のパーサは RFC 2252 の定義を拡張していて、
オブジェクトクラスの OID に使う数値形式の OID の他に
文字列形式の OID も許しています(
objectidentifier
の説明を参照)。オブジェクトクラスはデフォルトで "STRUCTURAL" です。
- objectidentifier <name> { <oid> | <name>[:<suffix>] }
-
指定する OID と同等に扱う文字列形式の名前を定義します。
この文字列は、オブジェクトクラスと属性の定義において数値形式の
OID を指定する所に使えます。この名前には ":xx" 形式の接尾辞をつけて
使うこともできます。たとえば "oid.xx" といった値が使えます。
- password-hash <hash> [<hash>...]
-
このオプションは、LDAP Password Modify Extended Operations (RFC 3062)
の処理をとおして userPassword に格納するユーザパスワードの生成に使う
1つ以上のハッシュ方式を設定します。引数 <hash> は
{SSHA},
{SHA},
{SMD5},
{MD5},
{CRYPT},
{CLEARTEXT}
のいずれかでなければなりません。デフォルトは
{SSHA}
です。
{SHA}
と
{SSHA}
は SHA-1 アルゴリズム(FIPS 160-1)を使います。後者には seed
(乱数の発生系列を変える種)が付いています。
{MD5}
と
{SMD5}
は MD5 アルゴリズム(RFC 1321)を使います。後者には seed
(乱数の発生系列を変える種)が付いています。
{CRYPT}
は
crypt(3)
を使います。
{CLEARTEXT}
は新しいパスワードが平文で userPassword に付け加えられることを示します。
このオプションは LDAP の追加/更新などの操作で userPassword を処理する
通常のユーザアプリケーションの動きを変えないことに注意してください。
- password-crypt-salt-format <format>
-
LDAP Password Modify Extended Operations (RFC 3062)
の処理をとおして {CRYPT} パスワード(
password-hash
を参照)を生成するときに
crypt(3)
に渡す salt の形式を指定します。
この文字列は
sprintf(3)
形式で指定する必要があり、その中に1個(1個だけ)の %s 置換を含められます。
この変換は [A-Za-z0-9./] の文字から構成されたランダムな文字列で
置き換えられます。たとえば "%.2s" は2文字の salt を提供し、"$1$%.8s"
は crypt(3) のいくつかのバージョンにMD5 アルゴリズムを使うことを知らせ、
ランダムな8文字の salt を提供します。
デフォルトは "%s" で、31 文字の salt を提供します。
- pidfile <filename>
-
slapd
サーバをデバッグコマンドラインオプション無しで始動した場合に、
slapd
サーバのプロセス ID (
getpid(2)
を参照)を保持するファイルの絶対パス名を指定します。
- referral <url>
-
slapd(8)
が要求を処理するためのローカルデータベースを見つけられなかった場合に、
クライアントに戻す紹介先(referral)を指定します。
- replica-argsfile
-
slurpd
サーバをデバッグコマンドラインオプション無しで始動した場合に、
slurpd
サーバのコマンドラインオプションを保持するファイルの
絶対パス名を指定します。
- replica-pidfile
-
slurpd
サーバをデバッグコマンドラインオプション無しで始動した場合に、
slurpd
サーバのプロセス ID (
getpid(2)
を参照)を保持するファイルの絶対パス名を指定します。
- replicationinterval
-
slurpd
が replogfile の変更を検査する間隔の秒数。
- require <conditions>
-
必要となる条件を指定します(デフォルトは none)。
複数の条件がある場合には空白文字で区切って指定します。
このディレクティブはグローバルにもデータベースごとにも
指定できます。
bind
はディレクトリ操作の前に bind 操作を必要とします。
LDAPv3
はセッションが LDAP バージョン3を使うことを必要とします。
authc
はディレクトリ操作の前に認証を必要とします。
SASL
はディレクトリ操作の前に SASL 認証を必要とします。
strong
はディレクトリ操作の前に強固な認証を必要とします。
キーワード strong は SASL 認証と同様に保護された「簡易」認証を許可します。
none
は条件を何も必要としない場合に使います(グローバルに設定された条件を
特定のデータベースで無効にするのに使えます)。
- reverse-lookup on | off
-
クライアント名の逆引きを有効/無効にします(configure スクリプトに
--enable-rlookups を指定してコンパイルした場合に利用できます。デフォルトは
off)。
- rootDSE <file>
-
root DSE 用のユーザ定義属性を持った LDIF(5) ファイルの名前を指定します。
これらの属性は通常 slapd が作り出す属性と一緒に返されます。
- sasl-host <fqdn>
-
SASL 処理に利用する完全に修飾されたドメイン名を指定します。
- sasl-realm <realm>
-
SASL レルムを指定します。デフォルトは空です。
- sasl-secprops <properties>
-
Cyrus SASL のセキュリティプロパティを指定します。
フラグ
none
は(他のプロパティ指定がなければ)、
このフラグのプロパティをデフォルト("noanonymous,noplain")にクリアします。フラグ
noplain
は、単純な passive attack に弱い機構を無効にします。フラグ
noactive
は、active attack に弱い機構を無効にします。フラグ
nodict
は、passive dictionary attack に弱い機構を無効にします。フラグ
noanonyous
は、匿名ログインをサポートする機構を無効にします。フラグ
forwardsec
は、セッション間の forward secrecy を要求します。フラグ
passcred
は、クライアントの身元証明を渡す機構を要求します
(そして身元証明を渡せる機構がそうすることを可能にします)。プロパティ
minssf=<factor>
は、最小の受け入れ可能な
security strength factor
を暗号のための有効キー長に近い整数値で指定します。
0 (ゼロ)は暗に保護無しを意味します。1 は暗に整合性の保護だけを意味します。
56 は DES あるいは他の弱い暗号化方式を有効にします。
112 は triple DES あるいは他の強い暗号化方式を有効にします。
128 は RC4, Blowfish, 他の現代的な強い暗号化方式を有効にします。
デフォルトは 0 です。プロパティ
maxssf=<factor>
は、最大の受け入れ可能な
security strength factor
を整数値で指定します(minssf の説明を参照)。
デフォルトは INT_MAX です。プロパティ
maxbufsize=<factor>
は、セキュリティ層の受信バッファの最大サイズを指定します。
これが 0 ならばセキュリティ層は無効になります。
デフォルトは 65536 です。
- schemadn <dn>
-
このサーバのエントリを制御する subschema subentry の識別名を指定します。
デフォルトは "cn=Subschema" です。
- security <factors>
-
要求されるセキュリティ強度係数を(空白文字で区切って)指定します
(セキュリティ強度係数については
sasl-secprops
の
minssf
オプションを参照)。
このディレクティブはグローバルにも設定できますし、
データベースごとにも設定できます。
ssf=<n>
は全体的なセキュリティ強度係数を指定します。
transport=<n>
はトランスポートのセキュリティ強度係数を指定します。
tls=<n>
は TLS セキュリティ強度係数を指定します。
sasl=<n>
は SASL セキュリティ強度係数を指定します。
update_ssf=<n>
はディレクトリ更新のための全体的なセキュリティ強度係数を指定します。
update_transport=<n>
はディレクトリ更新のためのトランスポートのセキュリティ強度係数を指定します。
update_tls=<n>
はディレクトリ更新のための TLS セキュリティ強度係数を指定します。
update_sasl=<n>
はディレクトリ更新のための SASL セキュリティ強度係数を指定します。
transport
係数とは、たとえば ldapi:// (つまり IPSEC)などの基盤のトランスポート
によって提供されるセキュリティの程度のことです。
これは普通は使われません。
- sizelimit {<integer>|unlimited}
-
- sizelimit size[.{soft|hard|unchecked}]=<integer> [...]
-
検索操作から返すエントリの最大数を指定します。デフォルトのサイズ制限は
500 です。
値として
unlimited
を指定すると無制限になります。2番目の形式ではサイズ制限を細かく設定できます。
同じ行に特別の引数を追加できます。個々のフラグの説明は
limits
を参照してください。
- sockbuf_max_incoming <integer>
-
匿名セッションのための LDAP PDU サイズの最大値を指定します。
デフォルトは 262143 です。
- sockbuf_max_incoming_auth <integer>
-
認証セッションのための LDAP PDU サイズの最大値を指定します。
デフォルトは 4194303 です。
- threads <integer>
-
主スレッドプールの最大サイズを指定します。
デフォルトは 32 です。
- timelimit {<integer>|unlimited}
-
- timelimit time[.{soft|hard}]=<integer> [...]
-
slapd
が検索要求の応答に使う最大秒数(実時間)を指定します。
デフォルトの時間制限は 3600 です。
値として
unlimited
を指定すると無制限になります。2番目の形式では時間制限を細かく設定できます。
同じ行に特別の引数を追加できます。個々のフラグの説明は
limits
を参照してください。
- tool-threads <integer>
-
ツールモードで使うスレッドの最大数を指定します。
これはシステムの CPU 数よりも大きくすべきではありません。
デフォルトは 1 です。
TLS オプション
slapd
が TLS (Transport Layer Security)をサポートするように構築されていれば、
さらに次にあげるオプションを指定できます。
- TLSCipherSuite <cipher-suite-spec>
-
どの暗号化方式をどのような優先順位で受け付けるかを設定します。
<cipher-suite-spec> は OpenSSL の暗号化方式の指定方法に基づきます。
たとえば次のように指定します。
TLSCipherSuite HIGH:MEDIUM:+SSLv2
指定することのできる暗号化方式を調べるには次のコマンドを使います。
openssl ciphers -v <cipher-suite-spec>
- TLSCACertificateFile <filename>
-
slapd
が認めるすべての認証局の証明書を含んだファイルを指定します。
- TLSCACertificatePath <path>
-
認証局の証明書が個々のファイルに分けて置かれているディレクトリのパスを
指定します。普通はこれか TLSCACertificateFile のどちらか1つだけを使います。
- TLSCertificateFile <filename>
-
slapd
サーバの証明書のファイルを指定します。
- TLSCertificateKeyFile <filename>
-
TLSCertificateFile
で指定したファイルに格納されている証明書に対応する
slapd
サーバの私有鍵のファイルを指定します。
現在のところ私有鍵はパスワードで保護してはならないので、
このファイルを注意深く保護することが極めて重要です。
- TLSDHParamFile <filename>
-
このディレクティブは Diffie-Hellman
鍵交換のためのパラメータを持つファイルを指定します。
これは、サーバで DSA 証明書を使うために必要とされます。
指定のファイルに複数セットのパラメータがある場合には、
そのすべてが処理されます。
- TLSRandFile <filename>
-
/dev/[u]random が利用できないときに乱数を取得するファイルを指定します。
一般には EGD/PRNGD ソケットの名前を設定します。
このファイル名を設定するのには環境変数 RANDFILE も使えます。
- TLSVerifyClient <level>
-
TLS セッション開設時にクライアント証明書をどうするかを指定します。
引数の
<level>
には次のキーワードのいずれかを指定できます。
-
- never
-
これはデフォルトです。
slapd
はクライアント証明書を求めません。
- allow
-
クライアント証明書が要求されます。
証明書が与えらていない場合でもセッションは普通に継続します。
不適当な証明書が与えられた場合でもセッションは普通に継続します。
- try
-
クライアント証明書が要求されます。
証明書が与えらていない場合でもセッションは普通に継続します。
不適当な証明書が与えられた場合はセッションをすぐに切断します。
- demand | hard | true
-
これらのキーワードは互換性の都合によりどれも同じ意味を持ちます。
クライアント証明書が要求されます。
証明書が与えらていない場合、
あるいは不適当な証明書が与えられた場合はセッションをすぐに切断します。
適正なクライアント証明書は TLS セッションでの SASL EXTERNAL
を利用するために必要となります。
したがってデフォルトではない
TLSVerifyClient
の設定が SASL EXTERNAL 認証においては必須となります。
- TLSCRLCheck <level>
-
クライアント証明書が失効しているかを確認するために、
CA の証明書失効リスト(Certificate Revocation List: CRL)を使うかを指定します。
これを指定するには
TLSCACertificatePath
パラメータの設定が必要です。
<level>
には次のキーワードのいずれかを指定します。
-
- none
-
CRL 検証を行わない
- peer
-
ピア証明書の CRL を検証
- all
-
証明書パス全体を検証
一般バックエンドオプション
この節のオプションは、そのオプションを指定するバックエンドにのみ適用されます。
これらのオプションはあらゆる種別のバックエンドでサポートされます。
- backend <databasetype>
-
バックエンド定義の始まりを示します。
引数 <databasetype> には、バックエンドが提供するデータベースにより
bdb,
config,
dnssrv,
hdb,
ldap,
ldbm,
ldif,
meta,
monitor,
null,
passwd,
perl,
relay,
shell,
sql
のいずれかを指定できます。
一般データベースオプション
この節のオプションは、そのオプションが定義されているデータベースに
のみ適用されます。これらのオプションはあらゆる種別のバックエンドで
サポートされます。各データベースについて少なくとも
database
と
suffix
オプションは指定しなければなりません。
- database <databasetype>
-
新しいデータベース実体定義の始まりを示します。
引数 <databasetype> にはバックエンドが提供するデータベースにより
bdb,
config,
dnssrv,
hdb,
ldap,
ldbm,
ldif,
meta,
monitor,
null,
passwd,
perl,
shell,
sql,
tcl
のいずれかを指定できます。
- lastmod on | off
-
slapd
がエントリの運用属性 modifiersName, modifyTimestamp, creatorsName,
createTimestamp を自動的に管理するかを指定します。
デフォルトで lastmod は on になっています。
- limits <who> <limit> [<limit> [...]]
-
オペレーションを開始したユーザを対象にした時間やサイズの制限を指定します。
引数
who
には次のいずれかを指定できます。
-
-
- anonymous | users | [dn[.<style>]=]<pattern> | group[/oc[/at]]=<pattern>
-
ここで <style> は次の構文で記述します。
-
- <style> ::= exact | base | onelevel | subtree | children | regex | anonymous
-
anonymous
は、すべての認証されていないクライアントに該当します。
users
は、すべての認証されたクライアントに該当します。
さもなければ、正規表現
exact
の dn パターンであるとみなされます。ただし、(オプションの)キーワード
dn に
exact
か
base
(同義語)の修飾がある場合には DN の厳密一致を要求し、
onelevel
で修飾した場合には直に1レベルの深さの一致を要求し、
subtree
で修飾した場合には厳密一致を含む任意レベルの深さの一致を許し、
children
で修飾した場合には厳密一致を含まない任意レベルの深さの一致を許します。
regex
で修飾した場合は、
POSIX (拡張)正規表現パターンを基にした一致を要求します(修飾しない
場合と同じ)。
anonymous
で修飾した場合は、バインドなし操作に一致し、
pattern
の指定は無視されます。これと同じ振舞は
who
節に
anonymous
を指定しても得られます。
group は、
グループを示すオブジェクトクラス
oc
の属性
at
の値として設定されている DN のリストについて制限をかけます。
オブジェクトクラス
oc
と属性型
at
はオプションであり、デフォルトはそれぞれ
groupOfNames
と
member
になります。
現状で制限できるのは
size
と
time
です。
time[.{soft|hard}]=<integer>
ここで
<integer>
は slapd が検索要求に応答するのに利用できる秒数を表します。
クライアントが時間制限を指定してこなければ
soft
制限を適用します。時間制限の要求が
hard
制限を超えていると、hard 制限の値が代わりに適用されます。
hard
制限をキーワード
soft
に設定すると
soft
制限を適用します。
hard
制限をキーワード
unlimited
に設定すると
hard
制限を強制しません。
クライアントからの時間制限の指定が
hard
制限以下であればクライアントの指定を優先します。
soft
か
hard
であるかの指定が無い場合には元々の仕様と同じになるように、
値は
soft
制限に適用され、
hard
制限は
soft
に設定されます。
サイズ制限の構文は次のようになっています。
size[.{soft|hard|unchecked}]=<integer>
ここで
<integer>
は slapd が検索要求に応答で返すことのできる最大エントリ数を表します。
クライアントがサイズ制限を指定してこなければ
soft
制限を適用します。サイズ制限の要求が
hard
制限を超えていると
制限を超えていると、hard 制限の値が代わりに適用されます。
hard
制限をキーワード
soft
に設定すると
soft
制限を適用します。
hard
制限をキーワード
unlimited
に設定すると
hard
制限を強制しません。
クライアントからのサイズ制限の指定が
hard
制限以下であればクライアントの指定を優先します。
unchecked
が指定されていれば、検索要求が選択できるエントリ数の制限を設定します。
このような指定がある背景としては、
属性への索引づけが不適切である場合に
検索候補が大量になってしまうということがあります。
そのような大量の候補について
slapd(8)
が検索フィルタに一致するかを判定しなければならないのです。
uncheched
制限は、そのようなことが起きる前に、該当する操作を減らす手段を提供します。
選択されたエントリの数が
unchecked
制限を超えた場合、
検索は
Unwilling to perform
エラーで中断します。
unchecked
制限をキーワード
unlimited
に設定した場合、選択エントリ数を制限しません(デフォルト)。
unchecked
制限を
disable
に設定した場合には検索が実行されません。
これは特定のユーザに検索を許さないようにするのに有用です。
何も指定が無い場合には元々の仕様と同じになるように、
値は
soft
制限に適用され、
hard
制限は
soft
に設定されます。
どの制限の指定も無い場合、グローバル制限が適用されます。
デフォルト値は
sizelimit
や
timelimit
と同じです。
unchecked
制限は設定されません。
,
pagedResults
制御が要求される場合にはデフォルトで
hard
サイズ制限が使われます。これは、ページサイズの要求が、
返すエントリ数の制限を明示的に要求しているとみなすためです。
しかし、サイズ制限は検索で返すエントリ総数に適用するのであって、
単一のページに適用するのではありません。
追加のサイズ制限を強制できます。
この指定は
size.pr={<integer>|noEstimate|unlimited},
という形式で行います。
ここで
integer
は、制限が明示されない場合の最大ページサイズです。
noEstimate
は、サーバが戻されるエントリの総数を見積もらないようにします
(注記:現在の実装では見積を返しません)。
キーワード
unlimited
は
pagedResults 制御のページサイズに制限をかけないことを示します。
形式が
size.prtotal={<integer>|unlimited|disabled}
である指定は、
pagedResults 制御で返すことのできるエントリの総数に制限をかけます。
デフォルトでは、
hard
制限になっています。
設定において
integer
は
pagedResults 制御での検索で返すことのできるエントリの総数に制限をかけます。
unlimited
を指定すると、返すエントリの数を無制限にします。
たとえばクライアントが pagedResults 制御を使う際のサイズ制限が無くなります。
キーワード
disabled
は pagedResults 制御を無効にします。
すなわち結果をベージ化しないで返します。
pagedResults 制御を要求時に返すエントリの総数は、
prtotal
スィッチで拡大しない限り、通常の検索の
hard
サイズ制限を超えられません。
- maxderefdepth <depth>
-
実名参照するエイリアスの最大数を指定します。
エイリアスの無限ループを回避するために利用します。
デフォルトは 1 です。
- overlay <overlay-name>
-
このデータベースに指定のオーバレイを追加します。
オーバレイは、データベース操作を拡張や変更するために、データベース操作を
事前に捕らえて処理するモジュールです。
オーバレイはデータベースが備えるスタックにプッシュされるので、
設定したのと逆順に実行していき、すべてのオーバレイの処理の後、
データベース自体に制御が移ります。
- readonly on | off
-
このオプションはデータベースを「読取り専用」モードにします。
このモードでデータベースを更新しようとすると "unwilling to perform"
エラーが返ります。デフォルトで reeadonly は off になっています。
-
replica uri=ldap[s]://<hostname>[:port]|host=<hostname>[:port]
[starttls=yes|critical]
[suffix=<suffix> [...]]
bindmethod=simple|sasl [binddn=<simple DN>] [credentials=<simple password>]
[saslmech=<SASL mech>] [secprops=<properties>] [realm=<realm>]
[authcId=<authentication ID>] [authzId=<authorization ID>]
[attr[!]=<attr list>]
-
このデータベースの複製サイトを指定します。
複製される
slapd
ディレクトリサービスの設定について詳しくは "OpenLDAP
管理者ガイド" を参照してください。引数
suffix
の指定が1個でもあれば、その指定したサブツリーを複製します(デフォルトでは
データベース全体を複製します)。引数
uri
のサポートによりレプリカ LDAP サーバを LDAP URI
で指定できるようになったので、引数
host
による指定は推奨しません。
引数
bindmethod
が
simple
の場合はオプション
binddn
と
credentials
を必要とします。これは(TLS や IPSEC などの)十分な
セキュリティサービスがある場合にのみ使うようにすべきです。
bindmethod
が
sasl
の場合はオプション
saslmech
を必要とします。
- SASL バインドのセキュリティプロパティを
(先述のキーワード
sasl-secprops
のように)設定するには
secprops
オプションを指定してください。
デフォルトでない SASL レルムを設定するには
realm
オプションを使います。
引数
mechanism
に Kerberos を使う場合、kerberos の実体を
authcId
に与えるべきです。
引数
attr
の
<attr list>
に属性のリストを指定すると、その指定した属性だけを複製するようになります。
さらにオプションの
!
マークを付けると、指定した属性だけを複製しなくなります。
属性のリストに objectClass があると、
それに関連するすべての属性が対象となります。
- replogfile <filename>
-
変更を記録する複製ログファイルの名前を指定します。
複製ログは通常
slapd(8)
が書き出し、
slurpd(8)
が読み取ります。より詳しくは
slapd.replog(5)
を参照してください。
複製ログファイルは機密情報を含むかもしれないので、
このオプションで指定するファイルは read/write/execute
アクセス権を制限したディレクトリにあるようにすべきです。
- restrict <oplist>
-
制限する操作のリストを空白で区切って指定します。
データベース設定内に指定すると、制限はそのデータベースにだけ適用し、
さもなければ制限はサーバ全体に適用します。
指定できる操作には、
add,
bind,
compare,
delete,
extended[=<OID>],
modify,
rename,
search,
があります。特殊な疑似操作である
read
と
write,
も指定でき、それぞれ読取りと書込みの操作を意味します。
restrict write
と指定することは
readonly on
と指定するのと同じ意味を持ちます(上記参照)。
キーワード
extended
では制限する特定の操作の OID を指定できます。
- rootdn <dn>
-
このデータベースに対するアクセス権制御あるいは管理限度の制限に
従わないエントリの DN を指定します。
この DN はディレクトリ中のエントリのものでもよいですし、
そうでなくてもかまいません。root DN が無い場合(デフォルト)、
root のアクセス権限は与えられません。
rootdn は(最初にデータベースを作成するときなど)必要なときにだけ
指定することを勧めます。rootdn がデータベースの namingContext
(接尾辞)に属する場合には、簡易バインドのパスワードを
rootpw
ディレクティブで指定することもできます。
rootdn は syncrepl を用いる場合に必ず必要となります。
- rootpw <password>
-
rootdn オプションで与えた DN のためのパスワード
(あるいはパスワードをハッシュしたもの)を指定します。
rootdn がデータベースの namingContext に属するものでなければ、
このオプションで与えたパスワードは無視されます。
このオプションには、クリアテキストの他にも
サーバがサポートしている RFC 2307 userPassword formats
をすべて指定できます(
password-hash
の説明を参照)。
パスワードのハッシュを生成するには
slappasswd(8)
を利用できます。クリアテキストと {CRYPT} の利用は勧められません。
rootpw が空の場合(デフォルト)、root DN の認証は(SASL などの)他の手段で
行われます。SASL の利用を推奨します。
- suffix <dn suffix>
-
このバックエンドデータベースに渡す問合せの DN 接尾辞を指定します。
複数の suffix 行を与えてもよいですが、
各データベース定義に少なくとも1つは必要です。
あるデータベースの接尾辞が別のデータベースの接尾辞の「中」にある場合、
その中の接尾辞を持つデータベースは、設定ファイル中でより前になければ
なりません。
- subordinate [advertise]
-
このバックエンドデータベースが別のバックエンドデータベースの下位に
あることを指定します。下位データベースは接尾辞を1つだけ持てます。
このオプションにより、複数のデータベースから成る単一の namingContext を
作成できます。このデータベースの接尾辞が上位データベースの namingContext
内にある場合、上位データベースに対する検索は下位データベースにも伝播します。
単一の namingContext と関連づけられたデータベースのすべては、同一の
rootdn を持つべきです。
この設定により、他の LDAP 操作の振舞に影響が及ぶことはありません。
特に namingContext 内で、ある下位データベースから別の下位データベースに
移動する moddn を行うことはできません。
オプションの advertise フラグを指定すると、このデータベースの
namingContext を root DSE で公開します。デフォルトでは、このデータベースの
namingContext を隠し、上位の namingContext だけを公開します。
slap ツール
slapcat(8),
slapadd(8),
slapindex(8)
を上位データベースに対して使う場合、これらツールをサポートする下位
データベースも対象になります。
この機能により上下関係を持つデータベースは(索引をサポートしているとして)
索引の設定を同じにしておくべきです。たとえ一部のデータベースにしか
該当する属性が無いとしてもです。一般に、上下関係を持つデータベースの
すべては、できるだけ同じ設定を持つようにして、単一のディレクトリに見え
るようにしてください。
この subordinate 機能は内部的に
glue オーバレイを用いて実装しています。
したがって、その振舞は他に利用するオーバレイに影響してきます。
デフォルトで glue オーバレイは自動的に上位のバックエンドの最後の
オーバレイとして設定されます。その位置を変えたい場合には、
明示的に overlay glue ディレクティブで設定します。
syncprov オーバレイを使うときなどには、下位のデータベース
のすべてに syncprov の機能が及ぶように、glue オーバレイの明示的な
設定が必要です。たとえば次のように指定します。
-
database bdb
suffix dc=example,dc=com
...
overlay glue
overlay syncprov
-
syncrepl rid=<replica ID>
provider=ldap[s]://<hostname>[:port]
[type=refreshOnly|refreshAndPersist]
[interval=dd:hh:mm:ss]
[retry=[<retry interval> <# of retries>]+]
[searchbase=<base DN>]
[filter=<filter str>]
[scope=sub|one|base]
[attrs=<attr list>]
[attrsonly]
[sizelimit=<limit>]
[timelimit=<limit>]
[schemachecking=on|off]
[starttls=yes|critical]
[bindmethod=simple|sasl]
[binddn=<dn>]
[saslmech=<mech>]
[authcid=<identity>]
[authzid=<identity>]
[credentials=<passwd>]
[realm=<realm>]
[secprops=<properties>]
[logbase=<base DN>]
[logfilter=<filter str>]
[syncdata=default|accesslog|changelog]
-
現在のデータベースがマスタの内容の複製であることを指定します。
つまり現在の
slapd(8)
で
syncrepl
複製エンジンを動かして複製コンシューマとなります。
複製データベースは LDAP Content Synchronization protocol を用いて
マスタの最新の内容と同じになるように維持されます。
syncrepl
複製エンジンを用いて複製する
slapd
ディレクトリの設定について詳しくは
「OpenLDAP 管理者ガイド」を参照してください。
パラメータ
rid
は、複製コンシューマサーバの設定の中の現在の
syncrepl
ディレクティブの識別子として利用されます。
このパラメータには0以上で3桁以内の整数値を指定してください。
パラメータ
provider
にはマスタ内容を持つ複製プロバイダサイトをURI で指定します。
ポートの指定 <port> を省略した場合には標準 LDAP ポート番号(389 または
- 636)が使われます。
syncrepl
の複製対象は、検索指定を使って定義します。
コンシューマ
slapd
は検索指定にしたがってプロバイダ
slapd
に検索要求を送ります。
検索指定は、通常の検索指定と同様に
searchbase, scope, filter, attrs, attrsonly, sizelimit,
timelimit
パラメータを持ちます。
syncrepl の検索指定は
ldapsearch(1)
クライアント検索ツールのパラメータと同じ値の形式と同じデフォルト値を持ちます。
LDAP Content Synchronization プロトコルには2種類の操作があります。
refreshOnly
操作では定期的に同期検索操作を行います。
それぞれの同期検索操作が終わった後に、次の同期検索操作を
再スケジューリングします。この時間隔は
interval
パラメータに指定します。
時間隔のデフォルトは1日に設定されています。
refreshAndPersist
操作では、同期検索がプロバイダ slapd で
継続されます。プロバイダ slapd に更新があると、
継続している同期検索のレスポンスとしてコンシューマ slapd に
searchResultEntry
を返します。
複製中にエラーが発生した場合、コンシューマは
retry
パラメータにしたがって再接続を試みます。
retry
パラメータは <retry interval> と <# of retries> の組合せのリストです。
たとえば retry="60 10 300 3" と指定したとすると、最初の10回は60秒おき、
続く3回は300秒おきに再接続を試み、それでも接続できない場合には再接続を
停止します。<# of retries> に `+' を指定すると、再接続に成功するまで
試行を繰り返します。
LDAP Sync のコンシューマ側でスキーマ検査を行わせるかは
schemachecking
パラメータで切替えます。デフォルトは off です。
パラメータ
starttls
は、プロバイダに bind する前に TLS セッションを確立するために
StartTLS 拡張操作を使うことを指定します。
引数に
critical
を与えると、
StartTLS 要求が失敗した場合にセッションを中断します。
引数に
yes
を与えると、StartTLS 要求が失敗しても TLS 無しでセッションを継続します。
簡易認証
(simple)
での
bindmethod
は、
binddn
と
credentials
のオプション指定を必要とします。
また、適切なセキュリティサービス(たとえば TLS や IPSEC など)が
用意されている場合にのみ利用するように勧めます。
SASL 認証
(sasl)
での
bindmethod
は、認証機構
saslmech
の指定を必要とします。
また、指定する認証機構に依存して、
authcid
に認証 ID を指定したり、
credentials
にパスワードを指定するといったことができます。
パラメータ
authzid
は認可 ID を指定するのに使います。
SASL bind についてのセキュリティパラメータ(上記の
sasl-secprops
に相当するもの)は、
secprops
オプションに指定できます。
SASL レルムは
realm
オプションに指定できます。SASL レルムにデフォルトはありません。
エントリ全体を複製するのではなく、コンシューマはデータ更新のログを問い
合わせることができます。この操作モードは「デルタ syncrepl」と
呼びます。上記のパラメータに加えて、利用するログについて
logbase
と
logfilter
パラメータを適切に設定する必要があります。
syncdata
パラメータは "accesslog" か "changelog" にする必要があります。
"accesslog" はログとして
slapo-accesslog(5)
の形式を使い、"changelog" はログとして
古い仕様の changelog の形式を使います。
syncdata
パラメータが省略されるか、"default" を設定した場合には、
ログに関するパラメータが無視されます。
- updatedn <dn>
-
このオプションは、スレーブの
slapd
にのみ適用できます。
これには更新が許される DN を指定します(通常これは複製を更新するときに
slurpd(8)
がバインドする DN です)。
一般に、この DN はマスタで利用している
rootdn
と同じに
すべきではありません。
- updateref <url>
-
slapd(8)
が複製されたローカルデータベースの更新を要求されたときに
クライアントに戻す紹介先(referral)を指定します。
このディレクティブはいくつも指定でき、各 url が戻されます。
データベース固有のオプション
各データベースには固有の設定オプションがあります。
そのようなオプションの説明は
バックエンドのマニュアルページに分けて載せています。
バックエンド
以下のバックエンドを slapd に組み込めます。
これらのバックエンドについての文書は
slapd-<backend>(5)
マニュアルページにあります。
- bdb
-
通常利用する slapd データベースとして推奨します。
しかし、正しく設定するには LDBM バックエンドよりも注意が必要です。
これはデータを格納するために Sleepycat Berkely DB (BDB)
パッケージを使います。
- config
-
slapd 実行時の設定を管理するためのバックエンドです。
- dnssrv
-
実験用のバックエンドです。
DNS (Domain Name System)に保持された SRV リソースレコードを基にした
紹介(referral)サービスを行います。
- hdb
-
BDB バックエンドの変種であり、階層的なデータベース配置を利用
することによりサブツリー改名をサポートします。
- ldap
-
受け付けた要求を他の LDAP サーバにフォワードする代理サーバとして動作します。
- ldbm
-
最も設定の容易なデータベースバックエンドです。
しかし、このバックエンドは BDB バックエンドのデータ耐久性機能を持って
いません。
これはデータを格納するために Berkeley DB あるいは GDBM を使います。
- ldif
-
データベースのツリー構造の実現にファイルシステムを使い、
データの格納にはプレーンの ASCII ファイルを使うデータベースです。
利用は、性能が要求されないような、
非常にシンプルなデータベースに制限すべきです。
- meta
-
このバックエンドは、リモート LDAP サーバの1セットについて基本的な
LDAP 代理サーバとして動作します。これは ldap バックエンドの拡張です。
- monitor
-
このバックエンドは slapd デーモンの動作状態についての情報を提供します。
- null
-
このバックエンドに対する操作は成功しますが何も処理しません。
- passwd
-
このバックエンドはデモンストレーションの目的にのみ用意されています。
これは、システムの
passwd(5)
ファイルにあるユーザアカウント情報を提供します。
- perl
-
このバックエンドは slapd に
perl(1)
インタプリタを組み込みます。
これは、LDAP 操作を処理するのに Perl サブルーチンを実行します。
- relay
-
実験用のバックエンドです。
LDAP 操作を要求の naming context を基に同じサーバの別の
データベースにリダイレクトします。
このバックエンドを利用する場合には、要求の naming context の書き換えに
rwm
オーバレイ(
slapo-rwm(5)
を参照)が必要となります。
これは主に、実際にデータを格納しているデータベースの仮想ビューを
実現することを意図しています。
-
-
このバックエンドは、LDAP 操作を処理するのに外部プログラムを実行します。
このバックエンドは主にプロトタイプで利用するように意図しています。
- sql
-
実験用のバックエンドです。
これは LDAP 要求を SQL データベースを使って処理します。
オーバレイ
以下のバックエンドを slapd に組み込めます。
これらのバックエンドについての文書は
slapo-<overlay>(5)
マニュアルページにあります。
- accesslog
-
アクセスログ。
このオーバレイは、指定したバックエンドデータベースへのアクセスを
別のデータベースに記録します。
- auditlog
-
監査ログ。
このオーバレイは、指定したバックエンドデータベースの変更を LDIF
のログファイルに記録します。
デフォルトでは組み込まれません。
- chain
-
連鎖。
このオーバレイは、紹介が返される場合の自動的な紹介キャッシュを可能とします。
- denyop
-
制限操作。
このオーバレイは、指定した操作の制限を可能とします。
これは restrict ディレクティブと同様の機能です。
- dyngroup
-
動的グループ。
これはデモ用のオーバレイで、
動的グループのメンバを検出するために比較操作を拡張します。
他の操作には影響しません。
- dynlist
-
動的リスト
このオーバレイは動的グループなどを拡張します。
- lastmod
-
最終更新。
このオーバレイは、データベースに対して実行した
最終書込み操作の DN、更新種別、modifiersName、modifyTimestampを、
データベース中のサービスエントリに持つよう管理します。
- pcache
-
代理キャッシュ。
このオーバレイは、ローカルデータベース中の LDAP
検索要求のキャッシュを可能にします。
これはほとんどの場合 ldap または meta バックエンドとともに利用します。
- ppolicy
-
パスワードポリシ。
このオーバレイは様々なパスワード制御機構を提供します。
たとえばパスワード有効期限、パスワード再利用と重複の制御、
パスワードリセットの委任などです。
- refint
-
参照制約。
このオーバレイは、
slapd-bdb(5)
などのデータベースで、参照属性を利用するスキーマの結合度を管理します。
- retcode
-
返却コード。
このオーバレイは、サーバで起きたエラーや異常の応答がある場合の
クライアントの振舞をテストするために有用です。
- rwm
-
書き換え/マッピング。
このオーバレイは実験用です。
これは DN/データの簡単な書き換えや、
オブジェクトクラス/属性型のマッピングを行います。
- syncprov
-
syncrepl プロバイダ。
このオーバレイは
syncrepl
複製のプロバイダ側の機能および永続検索機能をサポートする実装です。
- translucent
-
透過性代理。
このオーバレイは
slapd-bdb(5)
などのデータベースで「透過性代理」を作成します。
リモート LDAP サーバから取得したエントリの内様を、このデータベースで
部分的に上書きできるようにします。
- unique
-
属性一意性。
このオーバレイは
slapd-bdb(5)
などのデータベースで、
サブツリー内の一部あるいはすべての属性の一意性を強制します。
設定例
次に設定ファイルの簡単な例を示します。
-
include /usr/local/etc/openldap/schema/core.schema
pidfile /usr/local/var/slapd.pid
# Subtypes of "name" (e.g. "cn" and "ou") with the
# option ";x-hidden" can be searched for/compared,
# but are not shown. See slapd.access(5).
attributeoptions x-hidden lang-
access to attr=name;x-hidden by * =cs
# Protect passwords. See slapd.access(5).
access to attrs=userPassword by * auth
# Read access to other attributes and entries.
access to * by * read
database bdb
suffix "dc=our-domain,dc=com"
# The database directory MUST exist prior to
# running slapd AND should only be accessible
# by the slapd/tools. Mode 0700 recommended.
directory /usr/local/var/openldap-data
# Indices to maintain
index objectClass eq
index cn,sn,mail pres,eq,approx,sub
# We serve small clients that do not handle referrals,
# so handle remote lookups on their behalf.
database ldap
suffix ""
uri ldap://ldap.some-server.com/
lastmod off
"OpenLDAP 管理者ガイド" にはより長い設定ファイルの例が
注解つきで載っています。
別の例としてはオリジナルの /usr/local/etc/openldap/slapd.conf があります。
関連ファイル
- /usr/local/etc/openldap/slapd.conf
-
デフォルトの slapd 設定ファイル
関連項目
ldap(3),
slapd-bdb(5),
slapd-dnssrv(5),
slapd-hdb(5),
slapd-ldap(5),
slapd-ldbm(5),
slapd-ldif(5),
slapd-meta(5),
slapd-monitor(5),
slapd-null(5),
slapd-passwd(5),
slapd-perl(5),
slapd-relay(5),
slapd-shell(5),
slapd-sql(5),
slapd.access(5),
slapd.plugin(5),
slapd.replog(5),
slapd(8),
slapacl(8),
slapadd(8),
slapauth(8),
slapcat(8),
slapdn(8),
slapindex(8),
slappasswd(8),
slaptest(8),
slurpd(8).
以下のオーバレイが文書化されています。
slapo-accesslog(5),
slapo-auditlog(5),
slapo-chain(5),
slapo-dynlist(5),
slapo-lastmod(5),
slapo-pcache(5),
slapo-ppolicy(5),
slapo-refint(5),
slapo-retcode(5),
slapo-rwm(5),
slapo-syncprov(5),
slapo-translucent(5),
slapo-unique(5).
OpenLDAP 管理者ガイド (http://www.OpenLDAP.org/doc/admin/)
謝辞
OpenLDAP
は OpenLDAP プロジェクト (http://www.openldap.org/ )が開発/管理しています。
OpenLDAP
はミシガン大学の LDAP 3.3 リリースより派生しました。
和訳
稲地 稔 <inachi@kkd.biglobe.ne.jp>
Index
- 名前
-
- 所在
-
- 説明
-
- グローバル設定オプション
-
- TLS オプション
-
- 一般バックエンドオプション
-
- 一般データベースオプション
-
- データベース固有のオプション
-
- バックエンド
-
- オーバレイ
-
- 設定例
-
- 関連ファイル
-
- 関連項目
-
- 謝辞
-
- 和訳
-