0

d我正在尝试使用 openldap 作为中央身份验证系统,并根据用户类型存储一些数据。

我的ldap DIT结构如下

                      domain
Superuser             Users                data
              User1   user2   user3     Entry1  Entry2

对于每个用户条目,我都有固定的身份验证字符串,.. example-
for user1

authstring=Entry1-RW   #allowing entry1 to be readable and writable
authstring=Entry2.R    #allowing entry2 to be readable

同样对于 user2

authstring=*.RW       #allowing all entries to be readable and writable

如何定义我的 slapd.conf 而不对所有案例进行硬编码以实现此功能?
通常我们只能用dn来定义访问控制。
我可以使用 attrs 限制访问控制定义吗?

喜欢

access to dn.regex=uid=[^,]ou=data,dc=my-domain,dc=com
    by dn="uid=.*,ou=users,dc=my-domain,dc=com" filter=authstring=$1.RW
4

2 回答 2

0

我可以做以下事情:(uid是数据输入的属性,也可以是cn)

access to dn.regex="uid=[^,]+,ou=data,dc=my-domain,dc=com" 
    by set.expand="this/uid & user/authstring" write 

但问题仍然是我必须为每个 dataEntry 和每种类型的权限编写单独的 attr 示例:对于 user1:

authstringread:Entry1
authstringreadwrite:Entry2

并且访问控制设置将是

access to dn.regex=uid=[^,],ou=data,dc=my-domain,dc=com
    by set.expand="this/uid & user/authstringreadwrite" write
    by set.expand="this/uid & user/authstringread"      read
于 2013-10-28T10:32:16.517 回答
-3

您当然可以使用 attrs 来限制 ACL 方法:

对于用户 1:

aci: (targetattr=*)(targetfilter="(entryCategory=Entry1)")(version 3.0; acl "read-write"; allow (read, write)userdn ="ldap:///uid=user1,dc=example,dc=com";)
aci: (targetattr=*)(targetfilter="(entryCategory=Entry2)")(version 3.0; acl "read"; allow (read)userdn ="ldap:///uid=user1,dc=example,dc=com";)

对于用户 2:

aci: (targetattr=*)(targetfilter="(|(entryCategory=Entry1)(entryCategory=Entry2)")(version 3.0; acl "read-write"; allow (write)userdn ="ldap:///uid=user2, dc=example,dc=com";)

同样,您可以允许任何人拥有特定的读取或写入权限。

aci: (version 3.0; acl "anonymous-read-search";allow (read, write) userdn = "ldap:///anyone";)

或者

对于特定用户集:

userdn = "ldap:///uid=b*,c=example.com ||ldap:///cn=b*,dc=example,dc=com";

查看此链接以获取更多信息:

http://docs.oracle.com/cd/E22289_01/html/821-1277/bind-rule-syntax.html#defining-anonymous-access-anyone-keyword

希望这可以帮助。

谢谢,约翰

于 2013-08-06T17:07:57.030 回答