LDAP和组过滤器

时间:2012-07-11 16:26:25

标签: openldap

我正在尝试设置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属性,也不知道如何添加它。有人可以帮我这个吗?

2 个答案:

答案 0 :(得分:1)

我会使用organizationalRole或groupOfUniqueNames作为组类,并将roleOccupant或uniqueMember分别设置为组中用户的DN。然后,您只需在该属性中搜索具有用户DN的组的子树。 UID也可以工作,但它有参考完整性问题,如果你使用DN值属性和'refint'覆盖,你可以解决它,你真的必须这样做。

答案 1 :(得分:0)

反过来说吧。不要尝试将组分配给用户,而是创建作为用户列表的组。

如果您使用一系列uniqueMember属性创建groupOfUniqueNames,每个属性都是您的某个用户的DN,那么当您转移用户的属性时,您将看不到它。

但是一个简单的搜索:     “uniqueMember = DN-的用户” 将为您提供每个拥有该用户成员的组。