memberOf vs. groupMembership в LDAP (Liferay) - PullRequest
6 голосов
/ 25 августа 2011

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

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

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

Что такое переменные memberOf и groupMembership?

LDAP Liferay Settings

1 Ответ

16 голосов
/ 25 августа 2011

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.

...