Авторизация¶
Схема авторизации Диадока¶
Чтобы работать с 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==
Проверка прав пользователя¶
Методы, работающие с определенным ящиком, контролируют доступ к нему по следующему алгоритму:
Сервер Диадока извлекает из HTTP-заголовка
Authorization
значение параметраddauth_token
. После его декодирования сервер получает идентификатор пользователя. Если какое-то действие не удалось выполнить, метод вернет код ошибки401 (Unauthorized)
. Это возможно в случаях, когда:
в запросе отсутствует HTTP-заголовок
Authorization
,нет параметра
ddauth_token
,токен поврежден или просрочен,
указан некорректный
ddauth_api_client_id
.
По идентификатору пользователя Диадок находит ящики, к которым у пользователя есть доступ. Список ящиков совпадает со списком, который вернет метод GetMyOrganizations.
Сервер извлекает идентификатор ящика из параметров запроса. Если идентификатор ящика не входит в список ящиков, доступных пользователю, метод вернет код ошибки
403 (Forbidden)
.
См. также
- Методы для аутентификации:
Authenticate — аутентифицирует пользователя в Диадоке
AuthenticateConfirm — возвращает авторизационный токен при аутентификации по сертификату