Слияние, пользовательский фильтр ldap и memberOf - PullRequest
0 голосов
/ 25 октября 2018

Утро,

Я пытаюсь создать пользовательский фильтр для использования в слиянии Atlassian, и у меня возник вопрос о memberOf и regex.

(&(objectClass=Person)(memberOf=CN=Delivery Management Team,OU=EMEA,OU=Parks Lists,DC=emea,DC=company,DC=com))

Возвращает некоторых пользователей, которые являются членамиэтой группы.Однако

(&(objectClass=Person)(memberOf=CN=Delivery Management*))

завершается ошибкой.Просто кажется, что регулярное выражение не работает с memberOf, или в ldap есть метод синтаксиса для достижения этой цели, кроме использования звездочки (извините, обелиск)?

David

1 Ответ

0 голосов
/ 26 октября 2018

Я предполагаю, что вы используете Active Directory в этом случае, и в этом случае проблема заключается просто в том, что AD не поддерживает запросы LDAP для значений DN с подстановочными знаками (за исключением запросов типа memberOf = *, где вы ищете что-нибудьс установленным значением).

https://social.technet.microsoft.com/wiki/contents/articles/5392.active-directory-ldap-syntax-filters.aspx:

Подстановочный знак "*" разрешен, кроме случаев, когда атрибут DN.Примерами атрибутов DN являются отличимые имя, менеджер, directReports, member и memberOf.Если атрибут является DN, то разрешен только оператор равенства, и вы должны указать полное различающееся имя для значения (или символ "*" для всех объектов с любым значением для атрибута)

Подход, который я выбрал для достижения того, что вы хотите сделать, - это создать для приложения группу «все пользователи», то есть «Все пользователи слияния», а затем группы уровня доступа, такие как «Администраторы слияния», «Инженеры слияния», "Служба доставки Confluence".Процесс, который разделяет людей в группы, добавляет группу всех пользователей всякий раз, когда кто-то добавляется в одну из групп уровня доступа (немного ленивого кодирования, что; я не хочу проверять, являются ли они уже участником и могут легко игнорироватьошибка ldap 20-значение уже существует);учетные записи удаляются из группы всех пользователей, когда из их учетной записи удаляется группа уровня доступа last .

Как добавление, так и удаление отдельных лиц из группы всех участников может быть выполнено в пакетном режиме - и я, вероятно, сделал бы это, если бы группы были подготовлены вручную в моей среде.Любой подходящий "(& (! (MemberOf = {группа всех пользователей)) (| (memberOf = {appgroup1}) (memberOf = {appgroup2}) ... (memberOf = appgroupN)))" добавляется ко всем моим пользователямгруппа;(& ((memberOf = {группа всех пользователей)) (! (| (memberOf = {appgroup1}) (memberOf = {appgroup2}) ... (memberOf = appgroupN)))) удаляется из моей группы всех пользователей.

Мой пользовательский фильтр "(& (memberOf = {вся группа пользователей}))", в то время как кто на самом деле может получить доступ к тому, что контролируется другими членами группы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...