= Общие положения
При передаче сообщения от внешней системы в шину происходит процесс аутентификации внешней системы в шине. Т.е. при передаче сообщения шине с помощью сервера _nginX_ по протоколу _basic_ аутентификации сверяет присвоенные сообщению логин и пароль системы, от которой передается сообщение с ее логином, зарегистрированным в шине. При совпадении логина и пароля сообщение проходит от внешней системы через шину к другой системе. Если же пара логин – пароль не совпадает, то система блокирует сообщение.
image::Authentication.png[Аутентификация с помощью nginx]
Обновление учетных записей на _nginx_ по данным от сервиса _basic-auth-management_ проходит каждую минуту.
Для компактной установки шины без _nginx_ модуль реализует интерцептор для basic аутентификации при обращении к сервисам. Включить встроенную аутентификацию можно в конфигурационном файле ru.entaxy.esb.system.basic_auth.cfg -> свойство internal.authentication.enabled.
Сервис _basic-auth-management_ служит для работы с учетными записями (аккаунтами) через протокол _SOAP_.
В сервисе существуют три вида запросов:
* Добавление аккаунтов;
* Обновление аккаунтов;
* Удаление неактуальных аккаунтов.
* Выдача прав аккаунту
* Удаление прав аккаунта
=== Добавление аккаунта
Метод для добавления учетных записей _(addAccount)_ разработан для добавления новых пользователей в систему.
Запрос на добавление аккаунта выглядит следующим образом:
[source,xml]
----
system1login
system1pass
system1uuid
----
В теле содержится список аккаунтов – это повторение элементов _account_ неограниченное число раз. Также в теле содержатся обязательные поля __ (логин) и __ (пароль). Поле __ (идентефикатор системы) является необязательным.
Пароль принимается в прямом виде и шифруется непосредственно перед сохранением, чтобы он не хранился в открытом виде.
=== Обновление аккаунта
Метод для обновления учетной записи _(updateAccount)_ разработан для обновления следующей информации:
* новый пароль системы;
* присвоение учетной записи к другой системе.
Запрос на обновление аккаунта выглядит следующим образом:
[source,xml]
----
system1login
system1pass
system1uuid
system2login
system2pass
----
В теле содержится список аккаунтов, который содержит информацию аналогичную из п.2.
=== Удаление аккаунта
Метод для удаления аккаунта _(removeAccount)_ служит для удаления аккаунта из системы.
Запрос на удаление аккаунта выглядит следующим образом:
[source,xml]
----
system1login
system2login
----
В теле содержится неограниченный список логинов _(loginList)_, которые будут удалены из системы.
=== Выдача прав аккаунту
Метод выдачи прав аккаунту _(addAccountPermission)_ служит для создания _permission_ связанных с переданным аккаунтом.
Запрос на создание права выглядит следующим образом:
[source,xml]
----
dog
topic-management
service
dog
system-management
service
----
Если параметр action пустой либо отсутствует в сервисе _permission_ по умолчанию подставляется _default_.
=== Удаление прав аккаунта
Метод удаления прав аккаунта _(removeAccountPermission)_ служит для удаления _permission_ связанных с переданным аккаунтом.
Запрос на создание права выглядит следующим образом:
[source,xml]
----
dog
topic-management
service
dog
system-management
service
----
Если параметр _action_ пустой либо отсутствует в сервисе permission по умолчанию подставляется _default_.