Commit bda2fbf5 authored by Valentin Skripnikov's avatar Valentin Skripnikov

-

parent 0f3c99e4
......@@ -342,7 +342,7 @@ ARTA Synergy генерирует событие в случае,
----------------------------------
REST API ARTA Synergy доступно только авторизованным пользователям.
Тип авторизации `BASIC HTTP`.
Тип авторизации ``BASIC HTTP``.
Методы API выполняются от имени того пользователя,
который авторизован. Имеются следующие типы авторизации:
......@@ -447,39 +447,41 @@ REST API ARTA Synergy доступно только авторизованным
~~~~~~~~~~~~~~~~~~~~~~
Сессионная авторизации используется для встроенных WEB-модулей.
При cессионной авторизации также используется тип `BASIC HTTP`,
При cессионной авторизации также используется тип ``BASIC HTTP``,
но в качестве логина пользователя необходимо использовать
значение `$session` и в качестве пароля
полученное значение `sso_hash`.
значение ``$session`` и в качестве пароля
полученное значение ``sso_hash``.
Таким образом заголовок `Authorization` должен иметь значение:
Таким образом заголовок ``Authorization`` должен иметь значение:
`Basic ` + Base64(`$session:` + `sso_hash`)
``"Basic " + Base64("$session" + ":" + "sso_hash")``
Например:
+---------------------+------------------------------------------------------+
| Значение `sso_hash` | `D3RONfC52dtJO5XgDyn5qUMv` |
+---------------------+------------------------------------------------------+
| Значение заголовка | `Basic JHNlc3Npb246RDNST05mQzUyZHRKTzVYZ0R5bjVxVU12` |
+---------------------+------------------------------------------------------+
+-----------------------+--------------------------------------------------------+
| Значение ``sso_hash`` | ``D3RONfC52dtJO5XgDyn5qUMv`` |
+-----------------------+--------------------------------------------------------+
| Значение заголовка | ``Basic JHNlc3Npb246RDNST05mQzUyZHRKTzVYZ0R5bjVxVU12`` |
+-----------------------+--------------------------------------------------------+
Кроме того, получить параметры авторизации можно с помощью переменной
окружения основного WEB-приложения Synergy:
* `$CURRENT_USER` - представляет собой JSON-объект следующего вида:
* ``$CURRENT_USER`` - представляет собой JSON-объект следующего вида:
```xml
{
.. code-block:: json
{
"id": "Идентификатор текущего пользователя",
"sso_hash": "hash-сумма для идентификации пользователя",
"surname": "Фамилия текущего пользователя",
"name": "Имя текущего пользователя",
"patronymic": "Отчество текущего пользователя"
}
```
}
### Авторизация по ключам {#integration.auth.keys}
Авторизация по ключам
~~~~~~~~~~~~~~~~~~~~~
Модуль, который хочет авторизоваться от имени какого-либо пользователя таким способом,
должен сгенерировать для него ключевую пару,
......@@ -487,19 +489,19 @@ REST API ARTA Synergy доступно только авторизованным
Затем модуль сохраняет получивший открытый ключ для пользователя в Synergy,
используя следующий вызов 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 лет
```
> Интервал устаревания ключа указывается в минутах. Значение по умолчанию `0`, то есть если ранее для
данного пользователя был сгенерирован другой ключ, то предыдущий автоматически становится недействительным.
.. note:: Интервал устаревания ключа указывается в минутах. Значение по умолчанию ``0``, то есть если ранее для
данного пользователя был сгенерирован другой ключ, то предыдущий автоматически становится недействительным.
Создать ключ можно только для существующего WEB-модуля,
так как для этого требуется идентификатор приложения.
......@@ -509,18 +511,18 @@ REST API ARTA Synergy доступно только авторизованным
в административном приложении SynergyAdmin для всех элементов оргструктуры.
Использование этого ключа для авторизации аналогично использованию сессионного ключа.
Тип авторизации `Basic HTTP`,
в качестве логина пользователя надо использовать строку «`$key`»,
Тип авторизации ``Basic HTTP``,
в качестве логина пользователя надо использовать строку «``$key``»,
в качестве пароля полученный с помощью API ключ.
Таким образом заголовок `Authorization` должен иметь значение:
Таким образом заголовок ``Authorization`` должен иметь значение:
`Basic ` + Base64(`$key:` + `значение_ключа`)
``"Basic " + Base64("$key" + ":" + "значение_ключа")``
Например:
+---------------------+----------------------------------------------------------------------------------------------------------------------+
| Значение ключа | `MS03Y2Q0ZGU3YS0zYjRkLTQ2NjgtYWIyOC0zZDI1YzgxZGNmOGZfMjAxMy0xMC0zMSAxNzo0Mg==` |
+---------------------+----------------------------------------------------------------------------------------------------------------------+
| Значение заголовка | `Basic JGtleTpNUzAzWTJRMFpHVTNZUzB6WWpSa0xUUTJOamd0WVdJeU9DMHpaREkxWXpneFpHTm1PR1pmTWpBeE15MHhNQzB6TVNBeE56bzBNZz09` |
+---------------------+----------------------------------------------------------------------------------------------------------------------+
+---------------------+------------------------------------------------------------------------------------------------------------------------+
| Значение ключа | ``MS03Y2Q0ZGU3YS0zYjRkLTQ2NjgtYWIyOC0zZDI1YzgxZGNmOGZfMjAxMy0xMC0zMSAxNzo0Mg==`` |
+---------------------+------------------------------------------------------------------------------------------------------------------------+
| Значение заголовка | ``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