在Liferay的LDAP身份验证设置中使用b / n memberOf属性和groupMembership属性有什么区别?

用户已成功导入。
这些组也已成功导入。

但是不会自动将用户分配给组。当我将组变量从“ groupMembership”更改为“ memberOf”时,几个用户无法登录Liferay。

什么是memberOf和groupMembership变量?

最佳答案

memberOf不是一个“变量”,它是一个属性,或更准确地说,它是一个虚拟属性,或者是某些目录服务器(并非全部)动态生成的动态属性。有些使用memberOf在搜索过滤器或搜索请求的属性列表中使用,有些使用isMemberOf出于相同的目的,某些使用这两种或两种都不支持,并且可能还有其他我不知道的习惯用法。

通常,要确定组成员身份,请向目录服务器发出搜索请求,并在属性列表中指定要返回的memberOfisMemberOf。这是使用现代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是列出的组的成员。

要反转查询的含义,即确定哪些条目是组的成员,请在搜索请求中使用的过滤器中将isMemberOfmemberOf与断言一起使用:

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角度对处理组成员身份的一种方式以及反向组成员身份的一般说明。

08-28 21:26