Интеграция с информационной системой

Аутентификация (API)

Аутентификация (API)

Для получения доступа к данным личного кабинета нужно пройти аутентификацию. Для этого используется электронную подпись, привязанную сотруднику в личном кабинете. Аутентификация по логину и паролю тоже возможна, но это менее удобный и безопасный способ.

При успешной аутентификации пользователю возвращается строка с идентификатором сессии. Ее нужно передавать на сервер при выполнении каждой команды.

Порядок команд:

  • при аутентификации по сертификату:
  1. С помощью команды «СБИС.СписокСертификатовДляАутентификации» проверьте список сертификатов, которые допускают аутентификацию.
  2. Выполните аутентификацию по выбранному сертификату (команда «СБИС.АутентифицироватьПоСертификату». В ответе вернется идентификатор сессии, зашифрованный в адрес переданного сертификата.
  3. Расшифруйте идентификатор сессии.

    На заметку!

    Расшифровать сессию можно любым сертифицированным СКЗИ. Зашифрованная сессия передается в виде структуры «ContentInfo» со структурой «EnvelopedData» в качестве содержимого. Сессия использует алгоритм шифрования ГОСТ 28147-89 (см. описание контейнера ). Она шифруется в адрес открытого ключа сертификата, с помощью которого осуществляется аутентификация. Пример можно просмотреть на сайте КриптоПро.

  4. Перейдите к выполнению прочих команд API.
  • при аутентификации по логину/паролю:
  1. Выполните команду «СБИС.Аутентифицировать». В ней передайте логин/пароль от личного кабинета online.sbis.ru. В ответе вернется идентификатор сессии.
  2. Перейдите к выполнению прочих команд API.

При выполнении прочих HTTP-запросов (за исключением команд «СБИС.Аутентифицировать», «СБИС.АутентифицироватьПоСертификату», «СБИС.СписокСертификатовДляАутентификации») полученный при аутентификации идентификатор сессии нужно указывать как значение HTTP заголовка «X-SBISSessionID».

Пример заголовка HTTP запроса с указанием идентификатора сессии:

POST https://online.sbis.ru/service/?srv=1 HTTP/1.1
Content-Type: application/json-rpc;charset=utf-8
X-SBISSessionID: 0000ea78-0000ea79-00ba-d3b85272bc0c4842

Если запросы к серверу отсутствуют, идентификатор сессии принудительно аннулируется через 24 часа. Максимальное время «жизни» идентификатора — семь дней с момента аутентификации.

Для разрыва сессии и прекращения сеанса обмена вызовите функцию «СБИС.Выход».

Процедуру аутентификации нужно выполнить один раз. Полученный идентификатор можно использовать идентификатор. При получении в ответ на HTTP POST/GET-запрос — кода состояния 401 (Unauthorized ) повторно выполните аутентификацию и повторите запрос.

Внимание!

Если метод аутентификации выполняется чаще чем один раз в минуту, система может заблокировать доступ по IP-адресу на 20 минут.