initial public commit
This commit is contained in:
BIN
documentation/core/auth/Authentication.png
Normal file
BIN
documentation/core/auth/Authentication.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 80 KiB |
169
documentation/core/auth/Authorization.adoc
Normal file
169
documentation/core/auth/Authorization.adoc
Normal file
@ -0,0 +1,169 @@
|
||||
= Общие положения
|
||||
|
||||
При передаче сообщения от внешней системы в шину происходит процесс аутентификации внешней системы в шине. Т.е. при передаче сообщения шине с помощью сервера _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]
|
||||
----
|
||||
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:bas="http://www.entaxy.ru/basic-auth-service/">
|
||||
<soapenv:Header/>
|
||||
<soapenv:Body>
|
||||
<bas:accountList>
|
||||
<!--1 or more repetitions:-->
|
||||
<bas:account>
|
||||
<bas:login>system1login</bas:login>
|
||||
<bas:password>system1pass</bas:password>
|
||||
<!--Optional:-->
|
||||
<bas:systemUUID>system1uuid</bas:systemUUID>
|
||||
</bas:account>
|
||||
</bas:accountList>
|
||||
</soapenv:Body>
|
||||
</soapenv:Envelope>
|
||||
----
|
||||
|
||||
|
||||
В теле содержится список аккаунтов – это повторение элементов _account_ неограниченное число раз. Также в теле содержатся обязательные поля _<login>_ (логин) и _<password>_ (пароль). Поле _<systemUUID>_ (идентефикатор системы) является необязательным.
|
||||
|
||||
Пароль принимается в прямом виде и шифруется непосредственно перед сохранением, чтобы он не хранился в открытом виде.
|
||||
|
||||
=== Обновление аккаунта
|
||||
|
||||
Метод для обновления учетной записи _(updateAccount)_ разработан для обновления следующей информации:
|
||||
|
||||
* новый пароль системы;
|
||||
* присвоение учетной записи к другой системе.
|
||||
|
||||
Запрос на обновление аккаунта выглядит следующим образом:
|
||||
[source,xml]
|
||||
----
|
||||
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:bas="http://www.entaxy.ru/basic-auth-service/">
|
||||
<soapenv:Header/>
|
||||
<soapenv:Body>
|
||||
<bas:accountList>
|
||||
<!--1 or more repetitions:-->
|
||||
<bas:account>
|
||||
<bas:login>system1login</bas:login>
|
||||
<bas:password>system1pass</bas:password>
|
||||
<!--Optional:-->
|
||||
<bas:systemUUID>system1uuid</bas:systemUUID>
|
||||
</bas:account>
|
||||
<bas:account>
|
||||
<bas:login>system2login</bas:login>
|
||||
<bas:password>system2pass</bas:password>
|
||||
</bas:account>
|
||||
</bas:accountList>
|
||||
</soapenv:Body>
|
||||
</soapenv:Envelope>
|
||||
----
|
||||
|
||||
В теле содержится список аккаунтов, который содержит информацию аналогичную из п.2.
|
||||
|
||||
=== Удаление аккаунта
|
||||
|
||||
Метод для удаления аккаунта _(removeAccount)_ служит для удаления аккаунта из системы.
|
||||
|
||||
Запрос на удаление аккаунта выглядит следующим образом:
|
||||
[source,xml]
|
||||
----
|
||||
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:bas="http://www.entaxy.ru/basic-auth-service/">
|
||||
<soapenv:Header/>
|
||||
<soapenv:Body>
|
||||
<bas:loginList>
|
||||
<!--1 or more repetitions:-->
|
||||
<bas:login>system1login</bas:login>
|
||||
<bas:login>system2login</bas:login>
|
||||
</bas:loginList>
|
||||
</soapenv:Body>
|
||||
</soapenv:Envelope>
|
||||
----
|
||||
|
||||
В теле содержится неограниченный список логинов _(loginList)_, которые будут удалены из системы.
|
||||
|
||||
=== Выдача прав аккаунту
|
||||
|
||||
Метод выдачи прав аккаунту _(addAccountPermission)_ служит для создания _permission_ связанных с переданным аккаунтом.
|
||||
|
||||
Запрос на создание права выглядит следующим образом:
|
||||
[source,xml]
|
||||
----
|
||||
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:bas="http://www.entaxy.ru/basic-auth-service/">
|
||||
<soapenv:Header/>
|
||||
<soapenv:Body>
|
||||
<bas:permissionList>
|
||||
<!--1 or more repetitions:-->
|
||||
<bas:permission>
|
||||
<bas:login>dog</bas:login>
|
||||
<bas:subject>topic-management</bas:subject>
|
||||
<bas:subjectType>service</bas:subjectType>
|
||||
<!--Optional:-->
|
||||
<bas:action></bas:action>
|
||||
</bas:permission>
|
||||
<bas:permission>
|
||||
<bas:login>dog</bas:login>
|
||||
<bas:subject>system-management</bas:subject>
|
||||
<bas:subjectType>service</bas:subjectType>
|
||||
<!--Optional:-->
|
||||
<bas:action></bas:action>
|
||||
</bas:permission>
|
||||
</bas:permissionList>
|
||||
</soapenv:Body>
|
||||
</soapenv:Envelope>
|
||||
----
|
||||
|
||||
|
||||
Если параметр action пустой либо отсутствует в сервисе _permission_ по умолчанию подставляется _default_.
|
||||
|
||||
|
||||
=== Удаление прав аккаунта
|
||||
|
||||
Метод удаления прав аккаунта _(removeAccountPermission)_ служит для удаления _permission_ связанных с переданным аккаунтом.
|
||||
|
||||
Запрос на создание права выглядит следующим образом:
|
||||
[source,xml]
|
||||
----
|
||||
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:bas="http://www.entaxy.ru/basic-auth-service/">
|
||||
<soapenv:Header/>
|
||||
<soapenv:Body>
|
||||
<bas:permissionList>
|
||||
<!--1 or more repetitions:-->
|
||||
<bas:permission>
|
||||
<bas:login>dog</bas:login>
|
||||
<bas:subject>topic-management</bas:subject>
|
||||
<bas:subjectType>service</bas:subjectType>
|
||||
<!--Optional:-->
|
||||
<bas:action></bas:action>
|
||||
</bas:permission>
|
||||
<bas:permission>
|
||||
<bas:login>dog</bas:login>
|
||||
<bas:subject>system-management</bas:subject>
|
||||
<bas:subjectType>service</bas:subjectType>
|
||||
<!--Optional:-->
|
||||
<bas:action></bas:action>
|
||||
</bas:permission>
|
||||
</bas:permissionList>
|
||||
</soapenv:Body>
|
||||
</soapenv:Envelope>
|
||||
----
|
||||
|
||||
|
||||
Если параметр _action_ пустой либо отсутствует в сервисе permission по умолчанию подставляется _default_.
|
Reference in New Issue
Block a user