Авторизация

Схема авторизации Диадока

Чтобы работать с API Диадока, нужно авторизоваться.

Для авторизации методам API нужна следующая информация:

  • Ключ разработчика — уникальный идентификатор интегратора. Чтобы получить ключ разработчика, оставьте заявку на странице интеграции. Не передавайте свой ключ третьим лицам.

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

Эту информацию нужно передавать в стандартном HTTP-заголовке Authorization в соответствии со схемой аутентификации Диадока DiadocAuth со следующими параметрами:

  • ddauth_api_client_id — определяет ключ разработчика,

  • ddauth_token — определяет авторизационный токен.

Значения параметров в заголовке отделяются от их имен символами «=», параметры разделяются символами «,». Например:

Authorization: DiadocAuth
ddauth_api_client_id=testClient-8ee1638deae84c86b8e2069955c2825a,
ddauth_token=3IU0iPhuhHPZ6lrlumGz4pICEedhQ1XmlMN1Pk8z0DJ51MXkcTi6Q3CODCC4xTMsjPFfhK6XM4kCJ4JJ42hlD499/Ui5WSq6lrPwcdp4IIKswVUwyE0ZiwhlpeOwRjNrvUX1yPrxr0dY8a0w8ePsc1DG8HAlZce8a0hZiWylMqu23d/vfzRFuA==

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

Подробная информация обо всех способах получения токена приведена на странице метода Authenticate.

При вызове метода Authenticate в параметре ddauth_api_client_id HTTP-заголовка Authorization передайте ключ разработчика.

Необязательно вызывать метод Authenticate перед каждым обращением к методам API Диадока — авторизационные токены можно кэшировать. Мы рекомендуем сохранить и использовать полученный токен в течение всего сеанса работы. Полученный токен остается действительным в течение 24 часов.

Авторизация при вызове методов API

Ключ разработчика и полученный авторизационный токен нужно передавать в каждый метод API. Для этого при вызове методов API нужно к каждому запросу к Диадоку добавлять HTTP-заголовок Authorization с параметрами ddauth_api_client_id и ddauth_token. Например, HTTP-запрос на получение списка доступных пользователю ящиков будет выглядеть так:

POST https://diadoc-api.kontur.ru/GetMyOrganizations HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: DiadocAuth ddauth_api_client_id=testClient-8ee1638deae84c86b8e2069955c2825a,ddauth_token=3IU0iPhuhHPZ6lrlumGz4pICEedhQ1XmlMN1Pk8z0DJ51MXkcTi6Q3CODCC4xTMsjPFfhK6XM4kCJ4JJ42hlD499/Ui5WSq6lrPwcdp4IIKswVUwyE0ZiwhlpeOwRjNrvUX1yPrxr0dY8a0w8ePsc1DG8HAlZce8a0hZiWylMqu23d/vfzRFuA==

Проверка прав пользователя

Методы, работающие с определенным ящиком, контролируют доступ к нему по следующему алгоритму:

  1. Сервер Диадока извлекает из HTTP-заголовка Authorization значение параметра ddauth_token. После его декодирования сервер получает идентификатор пользователя. Если какое-то действие не удалось выполнить, метод вернет код ошибки 401 (Unauthorized). Это возможно в случаях, когда:

  • в запросе отсутствует HTTP-заголовок Authorization,

  • нет параметра ddauth_token,

  • токен поврежден или просрочен,

  • указан некорректный ddauth_api_client_id.

  1. По идентификатору пользователя Диадок находит ящики, к которым у пользователя есть доступ. Список ящиков совпадает со списком, который вернет метод GetMyOrganizations.

  2. Сервер извлекает идентификатор ящика из параметров запроса. Если идентификатор ящика не входит в список ящиков, доступных пользователю, метод вернет код ошибки 403 (Forbidden).


См. также

Методы для аутентификации:
  • Authenticate — аутентифицирует пользователя в Диадоке

  • AuthenticateConfirm — возвращает авторизационный токен при аутентификации по сертификату