= Общие положения При передаче сообщения от внешней системы в шину происходит процесс аутентификации внешней системы в шине. Т.е. при передаче сообщения шине с помощью сервера _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_.