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