コンピュータクワガタ

かっぱのかっぱによるコンピュータ関連のサイトです

No. 3 access toを理解する。

manを見ると以下のような定義になっている。

$ man slapd.conf

access to [ by ]+

slapd.accessを見ろと書いてあるので見る。

$ man slapd.access

以下、ざっくりとまとめ。

what

whatはtoに許可するエントリーを記述。なんとなく読むと、以下の指定方法がある。

説明
dn DNや正規表現を記述
filter ldapのfilter
atters 属性

who

whoは割と簡単で、以下。

説明
* すべて
anonymous 匿名ユーザー
users 認証したユーザー
self 自身のdn

access

accessはちょっと複雑。
定義としては、

[self]{<level>|<priv>}

selfだけが特別。
levelは、none、auth、compare、search、read、write。この辺は大丈夫。
privは、{=|+|-}{w|r|s|c|x|0}+だそうだ。
privは、=wrsとか、+wとかいう設定ができて、levelの項目の先頭1文字だそうで、細かい設定ができると。xはauthとなる。

control

設定可能な値は以下。

  • stop
  • continue
  • break

ちょっと良くわからない。また違うエントリーで検証する。

以前の設定の解析

access to attrs=userPassword
  by anonymous auth
  by * none

userPasswordフィールドは、匿名ユーザーで、認証に使用できる。
その他のユーザー、用途にはアクセスできない。

access to *
  by self read

すべてのフィールドは、認証したユーザー自身のもののみ読み込める。
認証に使用した、dnのエントリーのみ読める。
ということになります。
上記の設定で、接続したユーザー以外は、パスワードフィールドを使用した認証ができ、認証したユーザーは認証に使用したdnのみ読み込めるという最低限のことができるようになる。

動作確認

selfの動作確認

selfの動作の確認。前回の設定のままで自身のdn以外にアクセスしようとしてみる。

# ldapsearch -x -LLL -D "uid=namakuwa,ou=user,dc=kuwalab,dc=net" -W -b "
uid=kuwagata,ou=user,dc=kuwalab,dc=net" "(objectClass=*)"
Enter LDAP Password:
#

ちゃんと、他のエントリは読めない。
簡単には、ここまで。続きは、プログラムからアクセスするようにしてからにする。
次は、値の変更とか削除とか。