Commit bda2fbf5 authored by Valentin Skripnikov's avatar Valentin Skripnikov

-

parent 0f3c99e4
...@@ -342,7 +342,7 @@ ARTA Synergy генерирует событие в случае, ...@@ -342,7 +342,7 @@ ARTA Synergy генерирует событие в случае,
---------------------------------- ----------------------------------
REST API ARTA Synergy доступно только авторизованным пользователям. REST API ARTA Synergy доступно только авторизованным пользователям.
Тип авторизации `BASIC HTTP`. Тип авторизации ``BASIC HTTP``.
Методы API выполняются от имени того пользователя, Методы API выполняются от имени того пользователя,
который авторизован. Имеются следующие типы авторизации: который авторизован. Имеются следующие типы авторизации:
...@@ -447,39 +447,41 @@ REST API ARTA Synergy доступно только авторизованным ...@@ -447,39 +447,41 @@ REST API ARTA Synergy доступно только авторизованным
~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~
Сессионная авторизации используется для встроенных WEB-модулей. Сессионная авторизации используется для встроенных WEB-модулей.
При cессионной авторизации также используется тип `BASIC HTTP`, При cессионной авторизации также используется тип ``BASIC HTTP``,
но в качестве логина пользователя необходимо использовать но в качестве логина пользователя необходимо использовать
значение `$session` и в качестве пароля значение ``$session`` и в качестве пароля
полученное значение `sso_hash`. полученное значение ``sso_hash``.
Таким образом заголовок `Authorization` должен иметь значение: Таким образом заголовок ``Authorization`` должен иметь значение:
`Basic ` + Base64(`$session:` + `sso_hash`) ``"Basic " + Base64("$session" + ":" + "sso_hash")``
Например: Например:
+---------------------+------------------------------------------------------+ +-----------------------+--------------------------------------------------------+
| Значение `sso_hash` | `D3RONfC52dtJO5XgDyn5qUMv` | | Значение ``sso_hash`` | ``D3RONfC52dtJO5XgDyn5qUMv`` |
+---------------------+------------------------------------------------------+ +-----------------------+--------------------------------------------------------+
| Значение заголовка | `Basic JHNlc3Npb246RDNST05mQzUyZHRKTzVYZ0R5bjVxVU12` | | Значение заголовка | ``Basic JHNlc3Npb246RDNST05mQzUyZHRKTzVYZ0R5bjVxVU12`` |
+---------------------+------------------------------------------------------+ +-----------------------+--------------------------------------------------------+
Кроме того, получить параметры авторизации можно с помощью переменной Кроме того, получить параметры авторизации можно с помощью переменной
окружения основного WEB-приложения Synergy: окружения основного WEB-приложения Synergy:
* `$CURRENT_USER` - представляет собой JSON-объект следующего вида: * ``$CURRENT_USER`` - представляет собой JSON-объект следующего вида:
```xml .. code-block:: json
{
"id": "Идентификатор текущего пользователя", {
"sso_hash": "hash-сумма для идентификации пользователя", "id": "Идентификатор текущего пользователя",
"surname": "Фамилия текущего пользователя", "sso_hash": "hash-сумма для идентификации пользователя",
"name": "Имя текущего пользователя", "surname": "Фамилия текущего пользователя",
"patronymic": "Отчество текущего пользователя" "name": "Имя текущего пользователя",
} "patronymic": "Отчество текущего пользователя"
``` }
### Авторизация по ключам {#integration.auth.keys}
Авторизация по ключам
~~~~~~~~~~~~~~~~~~~~~
Модуль, который хочет авторизоваться от имени какого-либо пользователя таким способом, Модуль, который хочет авторизоваться от имени какого-либо пользователя таким способом,
должен сгенерировать для него ключевую пару, должен сгенерировать для него ключевую пару,
...@@ -487,19 +489,19 @@ REST API ARTA Synergy доступно только авторизованным ...@@ -487,19 +489,19 @@ REST API ARTA Synergy доступно только авторизованным
Затем модуль сохраняет получивший открытый ключ для пользователя в Synergy, Затем модуль сохраняет получивший открытый ключ для пользователя в Synergy,
используя следующий вызов API: используя следующий вызов API:
`kz.arta.synergy.server.api.rest.person.PersonService#generateUserAuthKey` ``rest/api/person/generate_auth_key``
Этот вызов назначает ключ тому пользователю, от имени которого выполняется. Этот вызов назначает ключ тому пользователю, от имени которого выполняется.
Параметр `user_token_expire_interval` регулирует интервал устаревания ключей авторизации. Параметр ``user_token_expire_interval`` регулирует интервал устаревания ключей авторизации.
Пример настройки интервала: Пример настройки интервала:
```sql .. code-block:: sql
insert into options (id, value) values ('user_token_expire_interval', '5256000'); -- 10 лет
``` insert into options (id, value) values ('user_token_expire_interval', '5256000'); -- 10 лет
> Интервал устаревания ключа указывается в минутах. Значение по умолчанию `0`, то есть если ранее для .. note:: Интервал устаревания ключа указывается в минутах. Значение по умолчанию ``0``, то есть если ранее для
данного пользователя был сгенерирован другой ключ, то предыдущий автоматически становится недействительным. данного пользователя был сгенерирован другой ключ, то предыдущий автоматически становится недействительным.
Создать ключ можно только для существующего WEB-модуля, Создать ключ можно только для существующего WEB-модуля,
так как для этого требуется идентификатор приложения. так как для этого требуется идентификатор приложения.
...@@ -509,18 +511,18 @@ REST API ARTA Synergy доступно только авторизованным ...@@ -509,18 +511,18 @@ REST API ARTA Synergy доступно только авторизованным
в административном приложении SynergyAdmin для всех элементов оргструктуры. в административном приложении SynergyAdmin для всех элементов оргструктуры.
Использование этого ключа для авторизации аналогично использованию сессионного ключа. Использование этого ключа для авторизации аналогично использованию сессионного ключа.
Тип авторизации `Basic HTTP`, Тип авторизации ``Basic HTTP``,
в качестве логина пользователя надо использовать строку «`$key`», в качестве логина пользователя надо использовать строку «``$key``»,
в качестве пароля полученный с помощью API ключ. в качестве пароля полученный с помощью API ключ.
Таким образом заголовок `Authorization` должен иметь значение: Таким образом заголовок ``Authorization`` должен иметь значение:
`Basic ` + Base64(`$key:` + `значение_ключа`) ``"Basic " + Base64("$key" + ":" + "значение_ключа")``
Например: Например:
+---------------------+----------------------------------------------------------------------------------------------------------------------+ +---------------------+------------------------------------------------------------------------------------------------------------------------+
| Значение ключа | `MS03Y2Q0ZGU3YS0zYjRkLTQ2NjgtYWIyOC0zZDI1YzgxZGNmOGZfMjAxMy0xMC0zMSAxNzo0Mg==` | | Значение ключа | ``MS03Y2Q0ZGU3YS0zYjRkLTQ2NjgtYWIyOC0zZDI1YzgxZGNmOGZfMjAxMy0xMC0zMSAxNzo0Mg==`` |
+---------------------+----------------------------------------------------------------------------------------------------------------------+ +---------------------+------------------------------------------------------------------------------------------------------------------------+
| Значение заголовка | `Basic JGtleTpNUzAzWTJRMFpHVTNZUzB6WWpSa0xUUTJOamd0WVdJeU9DMHpaREkxWXpneFpHTm1PR1pmTWpBeE15MHhNQzB6TVNBeE56bzBNZz09` | | Значение заголовка | ``Basic JGtleTpNUzAzWTJRMFpHVTNZUzB6WWpSa0xUUTJOamd0WVdJeU9DMHpaREkxWXpneFpHTm1PR1pmTWpBeE15MHhNQzB6TVNBeE56bzBNZz09`` |
+---------------------+----------------------------------------------------------------------------------------------------------------------+ +---------------------+------------------------------------------------------------------------------------------------------------------------+
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment