LDAP-сервер
Многие системы, такие как Nexus
, поддерживают аутентификацию LDAP. Casdoor также реализует простой LDAP-сервер, который поддерживает операции bind и search.
Этот документ описывает, как подключиться к LDAP-серверу в Casdoor и реализовать простую аутентификацию при входе.
Порт LDAP-сервера
По умолчанию LDAP-сервер слушает порт 389
. Вы можете изменить порт по умолчанию, изменив значение ldapServerPort
в conf/app.conf.
Как это работает
Подобно LDAP-клиенту в Casdoor, все пользователи на LDAP-сервере являются подклассами posixAccount
.
Когда сервер получает набор данных, переданных LDAP, он анализирует cn
и ou
, где cn
представляет имя пользователя, а ou
- название организации. Значение dc
не имеет значения.
Если это операция bind, сервер будет использовать Casdoor для проверки имени пользователя и пароля и предоставления пользователю разрешений в Casdoor.
Если это операция search, сервер проверит, является ли операция поиска законной, в соответствии с разрешениями, предоставленными клиенту операцией bind, и вернет ответ.
Мы поддерживаем только Простую аутентификацию.
Как выполнить Bind
На LDAP-сервере Casdoor мы узнаем только DN
, аналогичный этому формату: cn=admin,ou=built-in,dc=example,dc=com
.
Пожалуйста, установите DN
администратора в указанный выше формат. Затем вы можете использовать этот DN
для bind к LDAP-серверу с паролем пользователя для входа в Casdoor для проверки. Если проверка сервера прошла успешно, пользователю будет предоставлена власть в Casdoor.
Как выполнить Search
После успешного завершения операции bind вы можете выполнить операцию поиска. Существуют некоторые различия между операциями поиска и bind.
- Чтобы найти определенного пользователя, например
Alice
из организацииbuilt-in
, вы должны использоватьDN
вроде этого:ou=built-in,dc=example,dc=com
, и добавитьcn=Alice
в поле Filter. - Чтобы найти всех пользователей в определенной организации, например всех пользователей в
built-in
, вы должны использоватьDN
вроде этого:ou=built-in,dc=example,dc=com
, и добавитьcn=*
в поле Filter. - Чтобы найти всех пользователей во всех организациях (при условии, что у пользователя достаточно разрешений), вы должны использовать
DN
вроде этого:ou=*,dc=example,dc=com
, и добавитьcn=*
в поле Filter. - To search for all users in a specific group, you should use a filter query like this:
(memberOf=organization_name/group_name)
in the Filter field.