Перейти к основному содержимому

Авторизация в тестовом контуре

подсказка

Данная статья описывает основные особенности авторизации в Тестовом контуре. Пошаговая инструкция по авторизации и работе с этим контуром системы описана в руководстве по быстрому старту

Для авторизации запросов к API требуется торговый аккаунт, от имени которого будут выполняться операции. В Боевом контуре роль торгового аккаунта выполняет учётная запись клиента АЛОР Брокер с настоящими портфелями и позициями в них. Так как Тестовый контур работает с симуляционными данными, использование настоящего торгового аккаунта в нём невозможно.

Авторизация запросов к этому контуру системы выполняется с помощью тестового торгового аккаунта, предоставляемого пользователям по запросу, что создаёт различия в процессе авторизации в сравнении с Боевым контуром.

подсказка

Тестовый контур поддерживает авторизацию только с помощью механизма JWT. Сервис OAuth недоступен для этого контура.


Учётная запись разработчика

Создание учётной записи разработчика необходимо для авторизации запросов к API независимо от того, к какому контуру системы будут направлены запросы.

Процесс создания и возможности управления учётной записью разработчика описаны в посвящённой этому статье.


Получение торгового аккаунта

Чтобы получить тестовый торговый аккаунт или изменить список относящихся к нему портфелей, оставьте заявку на openapi@alor.ru или свяжитесь с нами в телеграме.

Тестовый аккаунт не привязывается к учётной записи разработчика, как это происходит с настоящим торговым аккаунтом. Сохраните логин и пароль от предоставленного аккаунта на всё время тестирования запросов.


Получение Refresh токена

Refresh токен используется для обновления Access токенов, авторизующих запросы к API.

Тестовый торговый аккаунт предназначен для проверки запросов, в связи с чем позволяет получить только один Refresh Токен одновременно без предоставления информации о дате создания и сроке действия.

Чтобы получить Refresh Токен, выписанный от имени тестового торгового аккаунта, выполните следующие действия:

  1. Перейдите на страницу Токены для доступа к API
  2. Нажмите на ссылку Токены для ведения торгов в тестовом контуре можно получить здесь. в разделе "Тестовый контур" внизу страницы
  3. На открывшейся странице нажмите на ссылку Begin OAuth authorization flow
  4. Введите логин и пароль тестового торгового аккаунта, полученного от технической поддержки, в соответствующие поля и нажмите Войти
  5. Ознакомьтесь с перечнем прав доступа, предоставляемых для тестового торгового аккаунта, и нажмите Разрешить
  6. Сохраните полученные Access и Refresh Токены в безопасное место
примечание

Refresh токен для Тестового контура имеет такой же срок действия, как и для Боевого — 1 год с момента создания. При этом выданный токен может быть принудительно отозван системой по независящим от пользователя причинам. Если это произошло, повторите описанную процедуру для получения нового токена.


Получение Access токена

Access токены используются для авторизации запросов к API от имени торгового аккаунта.

Для Тестового контура есть два способа получения токена:

  1. На странице получения Refresh токена
  2. В ответе на соответствующий HTTP-запрос

Независимо от способа получения, Access токен действителен в течение 30 минут с момента создания. В первом случае отсчёт начинается с момента перехода на страницу с токенами, во втором — с момента получения ответа от сервера авторизации.

При работе с системой рекомендуется пользоваться вторым способом, позволяющим автоматизировать обновление токена до истечения его срока действия. Для этого отправьте POST-запрос к серверу авторизации, доступному по адресу oauthdev.alor.ru.

Пример запроса:

https://oauthdev.alor.ru/refresh?token=12be28e4-2e15-44b8-983e-e6c119a1bcac

Где 12be28e4-2e15-44b8-983e-e6c119a1bcacRefresh Токен.

В ответ сервер авторизации вернёт JSON объект, содержащий Access Токен:

{
"AccessToken": "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImN0eSI6IkpXVCJ9.eyJzdWIiOiJMb2dpblNhbXBsZSIsImVudCI6ImNsaWVudCIsImVpbiI6IjAxMjM0IiwiY2xpZW50aWQiOiIwMTIzNDU2IiwiYXpwIjoiMDEyMzQ1Njc4OWFiY2RlZjAxMjMiLCJhZ3JlZW1lbnRzIjoiQWdyZWVtZW50U2FtcGxlMSBBZ3JlZW1lbnRTYW1wbGUyIEFncmVlbWVudFNhbXBsZTMiLCJwb3J0Zm9saW9zIjoiUG9ydGZvbGlvU2FtcGxlMSBQb3J0Zm9saW9TYW1wbGUyIFBvcnRmb2xpb1NhbXBsZTMiLCJzY29wZSI6Ik9yZGVyc1JlYWQgT3JkZXJzQ3JlYXRlIFRyYWRlcyBQZXJzb25hbCBTdGF0cyIsImV4cCI6Mjg3MTc2MzE5OSwiaWF0IjowLCJpc3MiOiJBbG9yLklkZW50aXR5IiwiYXVkIjoiQ2xpZW50IFdBUlAgV2FycEFUQ29ubmVjdG9yIHN1YnNjcmlwdGlvbnNBcGkgQ29tbWFuZEFwaSBJbnN0cnVtZW50QXBpIFRyYWRpbmdWaWV3UGxhdGZvcm0ifQ.QOQVMIAoZ6SnF5urnIzJ0EvtQd9P5Sx355069kXoID207wHOTW0wkKNMcrIKXmENEQQ_0yDjqH_kjeqWLBJuqA"
}
Интерактивный запрос

Для запроса на обновление Access Токена доступно интерактивное описание на странице Обновление JWT токена.


Особенности и ограничения

  • Задача тестового аккаунта — проверка запросов к API и основанного на них кода приложений. Все операции и сделки, выполняемые от имени такого аккаунта, носят временный характер и обнуляются с перезапуском торговой сессии
  • Тестовый аккаунт нельзя привязать к учётной записи разработчика, как это происходит с настоящим торговым аккаунтом. Сохраните логин и пароль на всё время тестирования API
  • Тестовый аккаунт не персонализирован и может быть выдан нескольким пользователям API одновременно
  • При угрозе работоспособности Тестового контура системы, вызванной действиями пользователя (например, отправка десятков тысяч запросов в секунду), доступ к тестовому аккаунту может быть прекращён
  • Портфели и стартовые позиции аккаунта зависят от настроек, заданных в системе вручную. Если для тестирования API требуются определённые условия, обозначьте их при запросе доступа
  • Тестовый аккаунт поддерживает возможность одновременного создания только одного Refresh токена без возможности его отзыва
  • Токены Тестового контура имеют аналогичный Боевому контуру срок действия: 1 год для Refresh токена и 30 минут для Access токена. Тем не менее, по ряду причину Refresh токен может быть принудительно отозван со стороны системы до истечения срока действия. В таком случае новый токен может быть получен повторением описанной выше процедуры