8.1.7. Интеграция с LDAP
Интеграция CUBA-приложения c LDAP позволяет решить две задачи:
-
Хранить пароли пользователей и управлять ими централизованно в базе данных LDAP.
-
Для пользователей компьютеров, входящих в домен Windows, выполнять логин в приложение без ввода имени и пароля (то есть организовывать Single Sign-On).
Для входа в систему пользователь должен быть заведен в приложении с нужными свойствами и правами. Пароль рекомендуется не указывать, тогда пользователь сможет войти в систему только с паролем из LDAP. Сначала производится попытка аутентифицировать пользователя через LDAP, а если она не удалась, то обычным способом через хранимый в базе данных приложения хэш пароля. Поэтому если для некоторого пользователя пароль в приложении задан, он сможет войти в систему с этим паролем, даже если в LDAP такого пользователя нет или у него там другой пароль.
Взаимодействие CUBA-приложения с LDAP осуществляется через интерфейс CubaAuthProvider
. Платформа содержит единственную реализацию данного интерфейса - LdapAuthProvider
, предназначенную для решения первой задачи. Для расширенной интеграции с Active Directory и обеспечения Single Sign-On можно использовать библиотеку Jespa и соответствующую имплементацию CubaAuthProvider
, которая описана в Настройка аутентификации с использованием Jespa. При необходимости можно также создать собственный класс имплементации CubaAuthProvider
и использовать его, установив следующие свойства приложения:
cuba.web.externalAuthentication = true
cuba.web.externalAuthenticationProviderClass = com.company.sample.web.MyAuthProvider