4.4.2. Аутентификация LDAP в REST API
Для настройки LDAP аутентификации в REST API используются следующие свойства приложения:
-
cuba.rest.ldap.enabled
- определяет включен ли вход по LDAP логину/паролю. -
cuba.rest.ldap.urls
- URL сервера LDAP. -
cuba.rest.ldap.base
- base DN поиска имен пользователей. -
cuba.rest.ldap.user
- distinguished name системного пользователя, имеющего право на чтение информации из LDAP. -
cuba.rest.ldap.password
- пароль системного пользователя, заданного свойствомcuba.rest.ldap.user
. -
cuba.rest.ldap.userLoginField
- название атрибута пользователя в LDAP, значение которого соответствует логину пользователя. По умолчаниюsAMAccountName
(подходит для Active Directory).
Пример содержимого файла local.app.properties:
cuba.rest.ldap.enabled = true
cuba.rest.ldap.urls = ldap://192.168.1.1:389
cuba.rest.ldap.base = ou=Employees,dc=mycompany,dc=com
cuba.rest.ldap.user = cn=System User,ou=Employees,dc=mycompany,dc=com
cuba.rest.ldap.password = system_user_password
Получить OAuth токен можно выполнив POST запрос по адресу:
http://localhost:8080/app/rest/v2/ldap/token
Доступ к данному URL защищен с помощью базовой аутентификации с использованием идентификатора и пароля клиента REST API. Обратите внимание, что это не логин и пароль пользователя приложения. Идентификатор и пароль клиента REST API заданы в свойствах приложения cuba.rest.client.id и cuba.rest.client.secret (значения по умолчанию для этих свойств: client
и secret
). Заголовок Authorization
запроса на получение токена должен содержать логин и пароль клиента, разделенные символом ":" и закодированные в base64.
Запрос должен содержать следующие параметры (соответствуют параметрам стандартной аутентификации):
-
grant_type
- всегда значениеpassword
. -
username
- логин пользователя приложения. -
password
- пароль пользователя приложения.
Тип запроса на получение токена должен быть application/x-www-form-urlencoded
, кодировка UTF-8
.
Стандартная аутентификация может быть отключена при помощи свойства cuba.rest.standardAuthenticationEnabled
:
cuba.rest.standardAuthenticationEnabled = false