memberOf vs. groupMembership в LDAP (Liferay)
В чем заключается различие между b/n атрибутом memberOf и атрибутом groupMembership при использовании в настройках аутентификации LDAP в Liferay?
Пользователи успешно импортированы. Группы также успешно импортированы.
Но пользователи не назначаются в группы автоматически. И когда я изменил групповую переменную с 'groupMembership' на 'memberOf', несколько пользователей не смогли войти в Liferay.
Что именно являются переменными memberOf и groupMembership?
1 ответ
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.