LDAPのアクセス制御(ACL)

LDAPに接続するユーザーのアクセス制御を行うには、slapd.confにアクセス制御の構文を追加します。
ACLは、最初に書かれているほうから優先されます。

例 access *
  by * read
【意味】  すべてのエントリに対してすべてのユーザーに読み取り権限を与える
エントリの指定
1行目のaccess * は、対象とするエントリを指定します。
この構文は、3つの構文があります。すべてを使う必要はありません。
1,ターゲットのDNを指定する
  dn.<ターゲット>=<パターン>
<ターゲット>には、以下が入ります。
base <パターン>で定義されているDNのみ
subtree <パターン>で定義されているDNを含むサブツリーすべて
one <パターン>で定義されているDNの直下のエントリのみを対象とする
children <パターン>をで定義されているDNを含まないサブツリーすべて
 なにも入れない場合は、subtreeが適用されます。
2,LDAP検索フィルタ
 filter=<フィルタ>
3,属性リスト
 attrs=<属性リスト>
ユーザーの指定
2行目のby * readは、対象とするユーザーと与える権限を指定します。
1番目の*には、以下を入れて、対象とするユーザーを指定します。
* すべてのユーザー
self 現在接続しているユーザー
anonymous 認証されていないユーザー
users 認証されているユーザー
正規表現 正規表現にマッチする特定のユーザー
権限の指定
2番目のreadには、与える権限を指定します。
高いレベルの権限は、それより低いレベルの権限を含みます。
下の表は、上に行くほど高いレベルの権限になります。
write 属性値を更新出来る
read LDAPディレクトリの情報を検索、閲覧出来る
search ある情報が、LDAPディレクトリに存在するかの確認が出来る
compare あるエントリの属性値が指定した属性値と一致するか比較出来る
auth その属性値を使って認証を受けることが出来る
none アクセス出来ない

ACL構文の例
access to attrs=userPassword
 by * auth
【意味】OSやアプリケーションの認証にuserPassword属性値を使用出来る
実際に、userPasswordの値を見たり、書き換えたりは出来ない

access to attrs=userPassword
 by self write
 by * auth
【意味】OSやアプリケーションの認証にuserPassword属性値を使用出来るのに加えて、自分のパスワードを変更出来る。
最終更新:2007年09月15日 10:36