API ARTA Synergy доступно только авторизованным пользователям. Тип
авторизации — BASIC HTTP
. Методы API
выполняются от имени того пользователя, который авторизован.
Имеются следующие типы авторизации:
Авторизация пользователя по его логину и паролю приемлема в тех случаях, когда приложение может знать текущий логин и пароль пользователя, например:
Приложение предоставляет альтернативный интерфейс к некоторым модулям Synergy (мобильное приложение, десктопный клиент для хранилища)
Приложение представляет собой server-side
утилиту для синхронизации, для которого создан выделенный
пользователь, и его логин и пароль хранятся в
конфигурационном файле на сервере.
Для реализации данного типа авторизации надо передать в запросе
заголовок Authorization
со значением
Basic
+ Base64(login
+
:
+ password
)
Например:
Логин |
|
Пароль |
|
Значение заголовка |
|
Сессионная авторизации используется для встроенных WEB-модулей.
При cессионной авторизации также используется тип —
BASIC HTTP
, но в качестве логина пользователя
необходимо использовать значение $session
и в
качестве пароля — полученное значение
sso_hash
.
Таким образом заголовок Authorization
должен
иметь значение:
Basic
+ Base64($session:
+
sso_hash
)
Например:
Значение |
|
Значение заголовка |
|
Кроме того, получить параметры авторизации можно с помощью переменной окружения основного WEB-приложения Synergy:
$CURRENT_USER
- представляет собой
JSON-объект следующего вида:
{ "id": "Идентификатор текущего пользователя", "sso_hash": "hash-сумма для идентификации пользователя", "surname": "Фамилия текущего пользователя", "name": "Имя текущего пользователя", "patronymic": "Отчество текущего пользователя" }
Модуль, который хочет авторизоваться от имени какого-либо пользователя таким способом, должен сгенерировать для него ключевую пару, обеспечив сохранность закрытого ключа. Затем модуль сохраняет получивший открытый ключ для пользователя в Synergy, используя следующий вызов API:
kz.arta.synergy.server.api.rest.person.PersonService#generateUserAuthKey
Этот вызов назначает ключ тому пользователю, от имени которого выполняется.
Параметр user_token_expire_interval
регулирует интервал устаревания ключей авторизации. Пример
настройки интервала:
insert into options (id, value) values ('user_token_expire_interval', '5256000'); -- 10 лет
Интервал устаревания ключа указывается в минутах. Значение по умолчанию
0
, то есть если ранее для данного пользователя был сгенерирован другой ключ, то предыдущий автоматически становится недействительным. Создать ключ можно только для существующего WEB-модуля, так как для этого требуется идентификатор приложения. Если у вас нет необходимости разрабатывать WEB модуль, но есть необходимость в использовании авторизации по ключам, можно создать такой модуль на уровне БД и отключить его использование в административном приложении SynergyAdmin для всех элементов оргструктуры.
Использование этого ключа для авторизации аналогично
использованию сессионного ключа. Тип авторизации
Basic HTTP
, в качестве логина пользователя
надо использовать строку «$key
», в качестве
пароля — полученный с помощью API ключ.
Таким образом заголовок Authorization
должен
иметь значение:
Basic
+ Base64($key:
+
значение_ключа
)
Например:
Значение ключа |
|
Значение заголовка |
|