Как мне импортировать пользователей Active Directory в JIRA только из определенных групп?

#active-directory #ldap #jira

#active-directory #ldap #jira

Вопрос:

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

Я пытаюсь интегрировать мою блестящую новую установку JIRA с моим существующим Active Directory. Что я хочу сделать, это настроить некоторые конкретные группы JIRA (например, в London Security Groups JIRA *), а затем JIRA импортирует только пользователей, которые являются членами этих групп. Однако на странице настройки каталога в JIRA я не понимаю, как это сделать. Кажется, это указывает на то, что я могу импортировать пользователей и группы, но не пользователей из групп.

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

Обновить

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

LondonUsers

LondonSecurity GroupsJIRA

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

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

(все с префиксом amp;(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

(с префиксом просто amp;(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 = "(amp;(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 вам нужно изменить порядок и удалить подстановочный знак. Рабочий запрос в конце :

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

Комментарии:

1. Попробуйте удалить часть (sAMAccountName=*). Это не нужно, и я только что где-то прочитал, что подстановочные знаки не разрешены в этом типе запросов.

2. Я полагаю, что MS AD поставляется со своего рода инструментом LDAP inspector, с помощью которого вы можете перейти к этой группе безопасности и узнать ее точный DN. Это может помочь определить, верен ли ваш запрос. Вам также следует убедиться, что используемая вами учетная запись привязки имеет соответствующие разрешения, если вы еще этого не сделали.

3. Учитывая, что лучшим результатом Google для «LDAP inspector» является этот пост, я не уверен, где искать такую вещь.

4. С помощью (sAMAccountName=*), но без запроса memberof, я получаю 132 результата. Без того и другого я ничего не получу.

Ответ №1:

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

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

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

Комментарии:

1. Похоже, что пользователи фильтруются как минимум до нуля … что является некоторым прогрессом. Хотя я не уверен, какими должны быть параметры. В настоящее время у меня есть (memberof= CN=jira-users,ou= London,ou= Security Groups,ou = JIRA, dc = company, dc = com), но он ничего не возвращает. Путь подразделения (как бы он ни назывался) группы — London Security Groups JIRA, но все пользователи находятся в разделе LondonUsers. Я пробовал и то, и другое, но, похоже, ни то, ни другое не работает. Я неправильно понял что-то фундаментальное?

2. В моем примере предполагалась группа безопасности под названием jira-users. Может быть, попробовать (memberOf= cn=JIRA,ou= London, dc = mydomain, dc = com) и, конечно, заменить mydomain и com своим собственным доменом, верно?

3. Выполнено. Группа безопасности называется jira-users. Однако запрос по-прежнему не работает.

4. Основываясь на том, что вы мне рассказываете, я думаю, что ваш первый вариант, приведенный выше, должен сработать. (memberof= CN= jira-пользователи, ou= Лондон,ou = Группы безопасности, ou = JIRA, dc = моя компания, dc= локальная). Однако, чтобы внести ясность, пожалуйста, скажите мне, что вы заменяете строки «mydomain» и «local» значениями для вашего домена.

5. Боже, параметры подразделения были неверными. Что это, обратная полировка? 🙂