memberOf vs. groupMembership в LDAP (Liferay)

В чем заключается различие между b/n атрибутом memberOf и атрибутом groupMembership при использовании в настройках аутентификации LDAP в Liferay?

Пользователи успешно импортированы. Группы также успешно импортированы.

Но пользователи не назначаются в группы автоматически. И когда я изменил групповую переменную с 'groupMembership' на 'memberOf', несколько пользователей не смогли войти в Liferay.

Что именно являются переменными memberOf и groupMembership?

Настройки LDAP Liferay

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.

Другие вопросы по тегам