Перейти к основному содержанию

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.

После успешного завершения операции 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.