在Liferay的LDAP身份验证设置中使用b / n memberOf属性和groupMembership属性有什么区别?
用户已成功导入。
这些组也已成功导入。
但是不会自动将用户分配给组。当我将组变量从“ groupMembership”更改为“ memberOf”时,几个用户无法登录Liferay。
什么是memberOf和groupMembership变量?
最佳答案
memberOf
不是一个“变量”,它是一个属性,或更准确地说,它是一个虚拟属性,或者是某些目录服务器(并非全部)动态生成的动态属性。有些使用memberOf
在搜索过滤器或搜索请求的属性列表中使用,有些使用isMemberOf
出于相同的目的,某些使用这两种或两种都不支持,并且可能还有其他我不知道的习惯用法。
通常,要确定组成员身份,请向目录服务器发出搜索请求,并在属性列表中指定要返回的memberOf
或isMemberOf
。这是使用现代ldapsearch
命令行工具的示例:
ldapsearch --port 1389 --baseDn 'ou=people,dc=example,dc=com' \
--sizeLimit 3 --searchScope one --bindDn 'cn=directory manager' \
--bindPasswordFile ~/.pwdFile '(uid=user.0)' isMemberOf
dn: uid=user.0,ou=people,dc=example,dc=com
isMemberOf: cn=Dynamic Home Directories,ou=groups,dc=example,dc=com
isMemberOf: cn=bellevue,ou=groups,dc=example,dc=com
isMemberOf: cn=shadow entries,ou=groups,dc=example,dc=com
isMemberOf: cn=persons,ou=groups,dc=example,dc=com
此搜索响应表明
user.0
是列出的组的成员。要反转查询的含义,即确定哪些条目是组的成员,请在搜索请求中使用的过滤器中将
isMemberOf
或memberOf
与断言一起使用:ldapsearch --port 1389 --baseDn 'ou=people,dc=example,dc=com' \
--sizeLimit 3 --searchScope one --bindDn 'cn=directory manager' \
--bindPasswordFile ~/.pwdFile \
'(isMemberOf=cn=persons,ou=groups,dc=example,dc=com)' 1.1
dn: uid=terrygardner,ou=people,dc=example,dc=com
dn: uid=user.0,ou=people,dc=example,dc=com
dn: uid=user.1,ou=People,dc=example,dc=com
dn: uid=user.10,ou=People,dc=example,dc=com
此搜索响应表明该组中有几个成员的专有名称为
cn=persons,ou=groups,dc=example,dc=com
。虽然不是特定于LifeRay,但以上是从LDAP角度对处理组成员身份的一种方式以及反向组成员身份的一般说明。