Passwork - настройка LDAP аутентификации
Планируемая схема интеграции следующая:
Схема во многом схожа с решением по интеграции с Gitea, про которую мы говорили в предыдущей публикации. У нас есть группа в Active Directory. Группа называется PassworkAccess. Все, кто входит в эту группу могут полчать доступа к системе Passwork. Соответственно, те пользователи, кто не входит в эту группу не могут получить доступ к системе Passwork.
Перейдем непосредственно к настройке. Что нужно сделать:
1. В настройках перейти в раздел конфигурирования LDAP.
2. Нажимаем кнопку "Добавить сервер".
3. Заполняем название и адрес для подключения к контроллеру домена:
4. В секции "Авторизация" указываем "Через сервисную учетную запись" и указываем distinguishedName и пароль учетной записи, от имени которой Passwork будет общаться с Active Directory. Также в соответствующем поле указываем значение "samaccountname" - это имя аттрибута, значение которого будет использоваться в качестве логина пользователя.
5. После завершения настроек параметров подключения к серверу нажмите кнопку "Сохранить".
6. Сразу же после сохранения откроется диалоговое окно с настройками фильтрации учетных записей пользователей и групп. Сначала укажем ограничения для групп:
т.е. здесь мы указываем корневую иерархию Active Directory, от которой будет выполняться поиск, а также условия фильтрации. В нашем случае это следующее выражение:
((objectCategory=group)(objectClass=group)(cn=PassworkAccess))
objectCategory=group и objectClass=group - говорит о том, что нужно выбирать только группы.
cn=PassworkAccess - собственное имя группы (common name).
При таких условия фильтрации будет выбрана только одна группа - PassworkAccess
7. Результат работы правила выборки групп выглядит следующим образом:
Включаем ограничение авторизации и включаем ограничение на группа PassworkAccess, как показано на скринщоте выше.
8. Теперь настроим условия фильтрации для пользователей.
аналогично условиям фильтрации для групп мы указываем корневую иерархию Active Directory, от которой будет выполняться поиск, а также условия фильтрации для учетных записей. В нашем случае это следующее выражение:
(&(objectCategory=person)(objectClass=user)(memberOf=CN=PassworkAccess,OU=Security,OU=ORG,DC=domain,DC=local))
objectCategory=person и objectClass=user - условия говорят о том, что идет выборка только пользователей.
memberOf=CN=PassworkAccess,OU=Security,OU=ORG,DC=plex,DC=local - выбираем только тех пользователей, которые входят в группу PassworkAccess.
9. В случае корректного заполения всех необходимых аттрибутов мы должны увидеть пользователей, которые добавлены в группу PassworkAccess (если такие есть):
10. Но этого не достаточно. Чтобы пользователь мог аутентифицироваться в системе Passwork под доменно УЗ необходимо его предварительно импортировать. Для этого отмечаем нужных пользователей и нажимаем кнопку "Добавить выбранных".
11. Есть нюанс - после включения LDAP аутентификации выши локальные пользователи (если такие есть) могут не аутентифицироваться в системе. Ошибка будет примерно следующая:
Ошибка возникает из-за того, что при проверки локальной УЗ Passwork пытается проверить её в домене AD. Чтобы такой ошибки у локальных пользователей не было нужно в настройках таких пользователей явно запретить проверку УЗ на LDAP сервере:
12. Вот теперь можно глобально включить LDAP аутентификацию.
13. Заключительным шагом проверим аутентификацию под доменной УЗ. Указываем имя пользователя в формате samaccountname (без префикса "domain\" или суффикса "@domain.local"):
14. В случае успешной аутентификации мы должны увидеть главный экран приложения:
Настройка ингерации с Microsoft Active Directory завершена. Теперь система Passwork поддерживает не только локальную аутентификацию, но и аутентификацию через учетную запись LDAP (Active Directory).