8.3. Интеграция с LDAP

Интеграция CUBA-приложения c LDAP позволяет решить две задачи:

  1. Хранить пароли пользователей и управлять ими централизованно в базе данных LDAP.

  2. Для пользователей компьютеров, входящих в домен Windows, выполнять логин в приложение без ввода имени и пароля (то есть организовывать Single Sign-On).

В режиме интеграции с LDAP пользователи по прежнему должны иметь учетную запись в приложении. Все разрешения и параметры пользователя (кроме пароля) хранятся в БД приложения, LDAP используется только для аутентификации, т.е. проверки имени и пароля. Когда пользователь входит в приложение, сначала производится попытка аутентифицировать его через LDAP, а если она не удалась, то обычным способом через хранимый в базе данных приложения хэш пароля. Поэтому если для некоторого пользователя пароль в приложении задан, он сможет войти в систему с этим паролем, даже если в LDAP такого пользователя нет или у него там другой пароль. Пароль в приложении рекомендуется не задавать вообще, тогда пользователь сможет войти в систему только с паролем из LDAP (поле пароля в экране редактирования пользователя не является обязательным к заполнению если свойство cuba.web.externalAuthentication установлено в true).

Взаимодействие CUBA-приложения с LDAP осуществляется через интерфейс CubaAuthProvider. Платформа содержит единственную реализацию данного интерфейса - LdapAuthProvider, предназначенную для решения первой задачи.

Для расширенной интеграции с Active Directory и обеспечения Single Sign-On для пользователей домена Windows можно использовать библиотеку Jespa и соответствующую имплементацию CubaAuthProvider, которая описана в Интеграция с Active Directory с использованием Jespa.

При необходимости можно также создать собственный класс имплементации CubaAuthProvider и использовать его, установив следующие свойства приложения:

cuba.web.externalAuthentication = true
cuba.web.externalAuthenticationProviderClass = com.company.sample.web.MyAuthProvider