Authenticate

Authenticate v1

Имя ресурса: /Authenticate

HTTP метод: POST

Параметры строки запроса:

  • login: имя учетной записи пользователя при авторизации по логину/паролю (может отсутствовать);
  • password: пароль учетной записи пользователя при авторизации по логину/паролю (обязателен при наличии параметра login);
  • key: ключ, полученный доверенным сервисом (может отсутствовать);
  • id: идентификатор пользователя доверенного сервиса (обязателен при наличии параметра key);

Тело запроса:

  • в случае авторизации по сертификату должно содержать X.509 сертификат пользователя, сериализованный в DER.
  • в остальных случаях должно быть пустым

HTTP-заголовки:

  • Authorization с параметром ddauth_api_client_id (обязательный, см. раздел Авторизация).

Для аутентификации по ключу, полученному доверенным сервисом, нужно передать этот ключ в параметре key (не поддерживается при аутентификации по сертификату).

В случае успешного выполнения запроса:

  • если авторизация производится по логину/паролю или по ключу, полученному доверенным сервисом, тело ответа следует интерпретировать как строку в кодировке UTF-8, содержащую авторизационный токен;
  • если авторизация производится по сертификату, то выдаваемый токен будет зашифрован в адрес пользовательского сертификата. В этом случае тело ответа следует интерпретировать как структуру CMS EnvelopedData в DER-кодировке;

В случае авторизации по логину/паролю с указанием ключа, полученного доверенным сервисом, привязка пользователя доверенного сервиса сохраняется автоматически (см. описание привязки в методе AuthenticateConfirm).

Возможные HTTP-коды возврата:

  • 200 (OK) - операция успешно завершена;
  • 400 (Bad Request) - данные в запросе имеют неверный формат или отсутствуют обязательные параметры;
  • 401 (Unauthorized) - в запросе отсутствует HTTP-заголовок Authorization, или в этом заголовке отсутствует параметр ddauth_api_client_id, или переданный в нем ключ разработчика не зарегистрирован в Диадоке;
  • 405 (Method not allowed) - используется неподходящий HTTP-метод;
  • 500 (Internal server error) - при обработке запроса возникла непредвиденная ошибка.

Authenticate v2

Имя ресурса: /V2/Authenticate

HTTP метод: POST

Параметры строки запроса:

  • login: имя учетной записи пользователя при авторизации по логину/паролю (может отсутствовать);
  • password: пароль учетной записи пользователя при авторизации по логину/паролю (обязателен при наличии параметра login);
  • key: ключ, полученный доверенным сервисом (может отсутствовать);
  • id: идентификатор пользователя доверенного сервиса (обязателен при наличии параметра key);

Тело запроса:

  • в случае авторизации по сертификату должно содержать X.509 сертификат пользователя, сериализованный в DER.
  • в остальных случаях тело запроса должно быть пустым

HTTP-заголовки:

  • Authorization с параметром ddauth_api_client_id (обязательный, см. раздел Авторизация).

Для аутентификации по ключу, полученному доверенным сервисом, нужно передать этот ключ в параметре key (не поддерживается при аутентификации по сертификату).

В случае успешного выполнения запроса:

  • если авторизация производится по логину/паролю или по ключу, полученному доверенным сервисом, тело ответа следует интерпретировать как строку в кодировке UTF-8, содержащую авторизационный токен;
  • авторизация по сертификату является двухфазной. В этом случае ответ следует интерпретировать как зашифрованную строку. Для получения авторизационного токена необходимо расшифровать ее сертификатом с закрытым ключом и подтвердить расшифровку с помощью запроса AuthenticateConfirm;

В случае авторизации по логину/паролю с указанием ключа, полученного доверенным сервисом, привязка пользователя доверенного сервиса сохраняется автоматически (см. описание привязки в методе AuthenticateConfirm).

Возможные HTTP-коды возврата:

  • 200 (OK) - операция успешно завершена;
  • 400 (Bad Request) - данные в запросе имеют неверный формат или отсутствуют обязательные параметры;
  • 401 (Unauthorized) - в запросе отсутствует HTTP-заголовок Authorization, или в этом заголовке отсутствует параметр ddauth_api_client_id, или переданный в нем ключ разработчика не зарегистрирован в Диадоке;
  • 405 (Method not allowed) - используется неподходящий HTTP-метод;
  • 500 (Internal server error) - при обработке запроса возникла непредвиденная ошибка.