Linuxシステムで、ログインしたユーザのアクセス権を制限できるように、OpenLDAPでも「slapd-config」のolcAccessディレクティブを用いて、バインドしたDN(ユーザ)に応じたアクセス権の設定を行う。
●olcAccessディレクティブの書式
olcAccess: to アクセス対象 by 要求者 アクセス権 ...
複数行にまたがって記述する場合は以下のように2行目以降の行頭にスペース。
途中にコメントを入れることは出来ない。
olcAccess: to アクセス対象
by 要求者 アクセス権
by 要求者 アクセス権
...
by以降に記述されている条件は順番に処理され、条件にマッチするとそれ以降の条件は処理されないので記述する順番には注意が必要。
●olcAccessディレクティブの主なパラメータ
■アクセス対照
・* 全てのエントリ
・dn=識別名 指定したエントリ
・attrs=属性名 指定した属性
・filter=検索フィルタ 検索フィルタにマッチするエントリ
■要求者
・* 全ての接続(全てのユーザ)
・anonymous 認識されていない接続(匿名ユーザ)
・users 認証された接続
・self エントリ自身の接続(接続済みのユーザ自身)
・dn=識別名 指定した識別名による接続
■アクセス権
・none アクセスできない
・auth 認証(バインド)が可能
・compare 比較が可能(+authの権限)
・search 検索が可能(+compareの権限)
・read 値の参照が可能(+searchの権限)
・write 値の更新が可能(+readの権限)
例)全てのエントリのデータはユーザ自身のみ変更可能で、他の認証済のユーザは参照のみを可能とする場合
olcAccess: to *
by self write
by users read
by anonymous auth
デフォルトでは全てのユーザがデータを参照できる。
olcAccessディレクティブでマッチする条件がない場合は、「olcAccess: to * by * none」が適用され、アクセス拒否。