1

次の構造で LDAP サーバーを実行しています。

dc=example,dc=ldap
   dc=organisations
      o=orga1 (objectClasses top/organisation/dcObject)
         cn=ADMINS (objectClasses top/groupOfNames)
         cn=USER
      o=orga2 
         cn=ADMIN
         cn=USER
      cn=users (objectClasses top/organisation/dcObject)
         cn=user1 (objectClasses top/person)
         cn=user2

ここで、組織グループのユーザーのみが組織を表示できるというルールをいくつか追加したいと思います。

ハードコードされたアプローチは、実装が非常に簡単でした。

olcAccess: {1}to dn.subtree="o=orga1,dc=organizations,dc=example,dc=ldap"
  by group.exact="cn=ADMINS,o=orga1,dc=organizations,dc=example,dc=ldap" write
  by group.exact="cn=USER,o=orga1,dc=organizations,dc=example,dc=ldap" read
  by * none

('by' の前に 2 つのスペースを書くことが重要です [それは私にとって長い間問題でした])

しかし、私はすべての新しい組織にこれらのルールを実装したくないので、いくつかの正規表現 magig を使用してルールを実装しようとしました。しかし、私は惨めに失敗しました:

olcAccess: {1}to dn.regex="^o(.+),dc=organizations,dc=example,dc=ldap$"
  attrs=children
  by group.exact="cn=ADMINS,o=[$1],dc=organizations,dc=example,dc=ldap$" write
  by group.exact="cn=USER,o=[$1],dc=organizations,dc=example,dc=ldap$" read
  by * none

このルールは何も影響しません。それで、誰かが私の問題を解決するためのアイデアを持っていますか?

または、私のようにメンバーをグループ化することはできませんか?

再度、感謝します

4

1 に答える 1