6.9. Ответ об ошибке аутентификации

Ответ об ошибке аутентификации возвращается непосредственно из конечной точки аутентификации в ответ на отправленный клиентом запрос аутентификации (раздел 13 [8]). Ответ об ошибке аутентификации передается в теле запроса HTTP в формате "application/json" со следующими параметрами:

- <error> (обязательный): ASCII код ошибки;

- <error_description> (опциональный): читаемый человеком текст ASCII [USASCII], предоставляющий дополнительную информацию разработчику клиента для понимания возникшей ошибки. Значения параметра <error_description> не должны включать символы вне набора: %x20-21 / %x23-5B / %x5D-7E;

- <error_uri> (опциональный): URI, идентифицирующий удобочитаемую веб-страницу с дополнительной информацией разработчику клиента для понимания возникшей ошибки. Значения параметра <error_uri> не должны включать символы вне набора: %x20-21 / %x23-5B / %x5D-7E.

Список ошибок аутентификации, связанных с ошибками HTTP:

- HTTP-ответ с кодом состояния 400 с заголовком "Bad Request":

1) "invalid_request": в запросе отсутствует обязательный параметр, он содержит недопустимое значение параметра, содержит параметр более одного раза, содержит более одного параметра с информацией о пользователе или имеет иные неправильные значения,

2) "invalid_scope": запрошенная область действия (scope) недействительна, не определена или имеет неправильный формат,

3) "expired_login_hint_token": указанный в запросе аутентификации <login_hint_token> недействителен, поскольку срок его действия истек,

4) "unknown_user_id": сервер авторизации не может определить, какого конечного пользователя клиент аутентифицирует с помощью указанной в запросе информации о пользователе (<login_hint_token>, <id_token_hint> или <login_hint>),

5) "unauthorized_client": клиент не авторизован для использования потока аутентификации,

6) "missing_user_code": код пользователя требуется, но отсутствует в запросе,

7) "invalid_user_code": неверный код пользователя,

8) "invalid_binding_message": связанное сообщение ошибочно или неприемлемо для использования в контексте данного запроса;

- HTTP-ответ с кодом состояния 401 с заголовком "Unauthorized":

1) "invalid_client": сбой аутентификации клиента (например, неверные учетные данные клиента, неизвестный клиент, аутентификация клиента не включена или неподдерживаемый метод аутентификации);

- HTTP-ответ с кодом состояния 403 с заголовком "Forbidden":

1) "access_denied": владелец ресурса или сервер авторизации отклонили запрос.

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

Ниже приведен пример ответа об ошибке аутентификации:

HTTP/1.1 400 Bad Request

Content-Type: application/json

{

"error": "unauthorized_client",

"error_description": "The client 'client.example.ru' is not allowed to use CIBA."

}