- PR -

LDAPのアクセスコントロールについて

1
投稿者投稿内容
左京
会議室デビュー日: 2004/10/13
投稿数: 1
投稿日時: 2004-10-13 13:02
LDAPにてアドレス帳サーバの構築を考えていますが、
思い通りにアクセス制御できません

各スキーマは簡単に書くと

ルート:dcObject
共有アドレス帳:groupOfNames
個人アドレス帳(ユーザ):organizationalUnit
アドレス:inetOrgPerson

dc=root(dcObject)
 cn=book1(groupOfNames)
  cn=address1(inetOrgPerson)
 cn=address2(inetOrgPerson)
  ou=user1(organizationalUnit)
   cn=address3(inetOrgPerson)
   cn=address4(inetOrgPerson)
  ou=user2(organizationalUnit)
   cn=address5(inetOrgPerson)
   cn=address6(inetOrgPerson)

のようなツリーを構成しています。

book1はこの場合member属性を2つ持っています
member: ou=user1,dc=root
member: ou=user2,dc=root

user1,user2はuserPassword属性を持っています

なお、共有アドレス帳とユーザは同じルールで無数に増加します


このような環境で、rootを全件検索すると
user1でバインドしている場合はaddress1-4、
user2でバインドしている場合はaddress1-2,5-6という結果が返ってきてほしいのですが、
どのようにaccess制御ルールを書けばいいのかわかりません。

どなたかご教授いただけないでしょうか?

私が作成した下記の設定ではBINDしたディレクトリだけで
そこにぶら下がるディレクトリが見えません。

slapd.confのアクセス制御部分

access to attrs=userPassword
by anonymous auth
by self read
by * none

access to dn.regex="^cn=([^,]+),dc=addroot,dc=exapmle,dc=com$"
attrs=entry,children,inetOrgPerson
by group/groupOfNames/member.regex="cn=$1,dc=addroot,dc=exapmle,dc=com" read
by * none

access to dn.regex="^ou=([^,]+),dc=addroot,dc=exapmle,dc=com$"
attrs=entry,children,inetOrgPerson
by dn.exact,expand="ou=$1,dc=addroot,dc=exapmle,dc=com" read
by * none

どのように修正すれば、思い通りの結果を得ることができるでしょうか?

#例として提示したスキーマやaccessルールは構想中のもので、
#こうした方が良いなどの例をいただけるとなお助かります。
1

スキルアップ/キャリアアップ(JOB@IT)