我正在尝试设置RhodeCode以及其他服务来使用LDAP(OpenLDAP v3),一切都很顺利,除了一件事,我的结构看起来像这样:
dc=domain,dc=com
ou=Groups | ou=People
hgusers | test1
sshusers | test2
others
这些是通过ldapsearch
的例子dn: cn=sshusers,ou=Group,dc=domain,dc=com
objectClass: top
objectClass: posixGroup
cn: sshusers
userPassword:: e2NyeXB0fXg=
gidNumber: 14567
memberUid: test1
dn: uid=test1,ou=People,dc=domain,dc=com
uid: test1
cn: Test User
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
shadowLastChange: 15472
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/sh
uidNumber: 10099
gidNumber: 10099
homeDirectory: /home/test1
gecos: test
userPassword:: e1NTSEF9WDUvSWpYeU9YQjlESGxYdy9ETWFTRFhaejFVN3VLSm8=
现在我正在尝试为RhodeCode和其他东西创建一个过滤器,所以它只允许来自hgusers组的人访问,但我不知道如何创建它。令我担心的是,我没有使用memberOf属性,也不知道如何添加它。有人可以帮我这个吗?
答案 0 :(得分:1)
我会使用organizationalRole或groupOfUniqueNames作为组类,并将roleOccupant或uniqueMember分别设置为组中用户的DN。然后,您只需在该属性中搜索具有用户DN的组的子树。 UID也可以工作,但它有参考完整性问题,如果你使用DN值属性和'refint'覆盖,你可以解决它,你真的必须这样做。
答案 1 :(得分:0)
反过来说吧。不要尝试将组分配给用户,而是创建作为用户列表的组。
如果您使用一系列uniqueMember属性创建groupOfUniqueNames,每个属性都是您的某个用户的DN,那么当您转移用户的属性时,您将看不到它。
但是一个简单的搜索: “uniqueMember = DN-的用户” 将为您提供每个拥有该用户成员的组。