Как импортировать пользователей Active Directory в JIRA только из определенных групп? - PullRequest
4 голосов
/ 17 октября 2011

Предостережение для начала - я на самом деле не знаю, возможно ли то, что я хочу сделать, особенно потому, что я не очень хорошо разбираюсь в LDAP / Active Directory или JIRA.

Я пытаюсь интегрировать мою новую блестящую установку JIRA с моим существующим активным каталогом. То, что я хочу сделать, это настроить некоторые конкретные группы JIRA (например, в Лондоне \ Группы безопасности \ JIRA *), а затем заставить JIRA импортировать только пользователей, которые имеют членство в этих группах. Однако на странице настройки каталога в JIRA я не понимаю, как это сделать. Кажется, это означает, что я могу импортировать пользователей и групп, но не пользователей из групп.

Чего мне не хватает? (не считая экспертных знаний AD!)

Обновление

Под моим доменом у меня есть организационная структура, подобная этой:

London\Users</p> <p>London\Security Groups\JIRA

В последнем организационном подразделении у меня есть группа безопасности, которая называется «jira-users». Первый содержит всех пользователей.

Пока я пробовал следующие запросы, и ни один из них не работал:

(все с префиксом &(objectCategory=Person)(sAMAccountName=*)")

memberof=CN=jira-users,ou=London,ou=Security Groups,ou=JIRA,dc=mycompany,dc=local

memberof=CN=JIRA,ou=London,ou=Security Groups,dc=mycompany,dc=local

(с префиксом просто &(objectCategory=Person)")

memberof=CN=jira-users,ou=London,ou=Security Groups,ou=JIRA,dc=mycompany,dc=local

Завершена

Этот запрос работает так:

memberof=CN=jira-users,OU=JIRA,OU=Security Groups,OU=London,DC=mycompany,DC=local

Я не понял, что для логической структуры папок слева направо London \ Security Groups \ JIRA организационные единицы должны быть перечислены в обратном порядке.

Дальнейшее обновление

Это работает только при использовании класса DirectorySearcher по какой-то причине, например,

DirectoryEntry rootEntry = new DirectoryEntry("LDAP://dc=mycompany,dc=local");
DirectorySearcher srch = new DirectorySearcher(rootEntry);
srch.SearchScope = SearchScope.Subtree;
srch.Filter = "(&(objectCategory=Person)(sAMAccountName=*)(memberof=CN=jira-users,ou=London,ou=Security Groups,ou=JIRA,dc=mycompany,dc=local))";
SearchResultCollection results = srch.FindAll();

Это не работает в инструменте LDAP Explorer и, следовательно, не в самой JIRA.

Последнее обновление

Итак ... для JIRA вам нужно изменить порядок и удалить подстановочный знак. Рабочий запрос в конце концов:

(&(objectCategory=Person)(memberof=CN=jira-users,OU=JIRA,OU=Security Groups,OU=London,DC=mycomapny,DC=local))

1 Ответ

5 голосов
/ 17 октября 2011

Когда вы настраиваете каталог пользователя, смотрите в настройках схемы пользователя. Вы должны увидеть поле «Фильтр объектов пользователя». Там вы сможете добавить что-то вроде этого:

(memberOf=cn=jira-users,ou=London,dc=mydomain,dc=com)

Это позволит вам выполнять фильтрацию на основе определенной группы LDAP. Конечно, вам нужно будет отредактировать значения выше, чтобы отразить ваше собственное окружение.

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