Описание ошибок
Уведомление пользователя об ошибки
При возникновении ошибки входа по Сбер ID необходимо пользователю показать, что произошла ошибка и предложить войти еще раз по примеру ниже:
Ошибки при запросе кода авторизации (auth_code)
Описание ошибок c использованием JavaScript SDK
Если страница авторизации по Сбер ID была открыта в модальном окне и во время процесса авторизации произошла ошибка, то после редиректа по адресу, указанному в параметре oidc.redirect_uri, будет вызвана функция onErrorCallback принимающая в качестве аргумента объект, содержащий следующие значения:
- code
(String)
- код ошибки; - error
(String)
- значение, включенное в запрос, которое было передано на страницу авторизации по Сбер ID; - description
(String)
- текстовое описание ошибки.
Примечание: в зависимости от кода ошибки можно показать пользователю уведомление с возможной причиной ошибки
- invalid_request - В запросе отсутствуют обязательные атрибуты;
- unauthorized_client - АС - источник запроса не зарегистрирована или заблокирована в банке либо значение атрибута client_id не соответствует формату;
- unsupported_response_type - Значение атрибута response_type не равно« code»;
- invalid_scope - Значение атрибута scope не содержит параметр openid в начальной позиции либо запрошенный scope содержит значения, недоступные для АС источника запроса;
- access_denied - Клиент отказался от передачи согласий;
- invalid_state - Значение атрибута state не соответствует изначальному;
- window_closed - Клиент закрыл окно авторизации по Сбер ID;
- invalid_browser - oidc-страница была открыта в режиме инкогнито или во встроенном браузере.
Описание ошибок c использованием Android SDK
Если state сгенерированный вами и state возвращенный при авторизации по Сбер ID не совпадет, результат будет ошибочным, в SberIDResultModel.errorDescription вернется фраза "invalid_state". При других ошибках, так как падение приложения Сбербанк Онлайн, прерывание сценария и др. будет ошибка "internal_error"
Пример ответа с ошибкой
appScheme://appName/appPath?result=FAILURE&error_code=5
типы возвращаемых ошибок | описание ошибок |
---|---|
invalid_request | В запросе отсутствуют обязательные атрибуты. |
unauthorized_client | АС-источник запроса не зарегистрирована в банке. |
unauthorized_client | АС-источник запроса заблокирована в банке. |
unauthorized_client | Значение атрибута client_id не соответствует формату. |
unsupported_response_type | Значение атрибута response_type не равно «code». |
invalid_scope | Запрошенный scope содержит значения, недоступные для АС-источника запроса. |
invalid_request | Значение code_challenge_method не соответствуют допустимым значениям. |
- Для любого из перечисленных типов ошибок МП СБОЛ на платформе Android возвращает в приложение партнера код 5 в параметре error_code без указания типа ошибки.
- В случае отсутствия в запросе атрибута redirect_uri или в случае если значение redirect_uri не зарегистрировано для данного партнера, банк перенаправляет клиента на экран, информирующий клиента о недоступности сервиса.
Описание ошибок c использованием iOS SDK
Если state
сгенерированный вами и state
возвращенный при авторизации по Сбер ID не совпадет, результат будет ошибочным, в SberIDResultModel.errorDescription
вернется фраза "invalid_state". При возникновении других проблем, например, отказ приложения Сбербанк Онлайн или прерывание сценария, верется ошибка internal_error.
Пример ответа с ошибкой:
appScheme://redirect?status=fail&error=invalid_request
№ | типы возвращаемых ошибок | описание ошибки |
---|---|---|
1 | invalid_request | В запросе отсутствуют обязательные атрибуты. |
2 | unauthorized_client | АС-источник запроса не зарегистрирована в банке. |
3 | unauthorized_client | АС-источник запроса заблокирована в банке. |
4 | unauthorized_client | Значение атрибута client_id не соответствует формату. |
5 | unsupported_response_type | Значение атрибута response_type не равно «code». |
6 | invalid_scope | Запрошенный scope содержит значения, недоступные для АС-источника запроса. |
7 | invalid_request | Значение code_challenge_method не соответствуют допустимым значениям. |
Ошибки при получении access token и id token
Пример ответа в случае ошибки:
HTTP/1.1 400 Bad Request Content-Type: application/json Cache-Control: no-store Pragma: no-cache { "httpCode": "400",
"httpMessage": "Bad Request", "moreInformation": "invalid_grant" }
Типы возвращаемых ошибок
Код ошибки | Название ошибки | Описание ошибки | Причина ошибки |
---|---|---|---|
400 | Empty header: authorization | { "httpCode":"400", "httpMessage":"Bad Request", "moreInformation":"Empty header: authorization" } | В заголовке запроса параметр Authorization имеет пустое значение или отсутствует. |
400 | rquid header does not match pattern | { "httpCode":"400", "httpMessage":"Bad Request", "moreInformation":"rquid header does not match pattern: ^(([0-9][a-f] [A-F]){32})$" } | В заголовке запроса некорректно указан параметр RqUID. Корректный паттерн: "pattern": "^(([0-9][a-f][A-F]){32})$" |
400 | Empty header: rquid | { "httpCode":"400", "httpMessage":"Bad Request", "moreInformation":"Empty header: rquid" } | В заголовке запроса параметр RqUID имеет пустое значение или отсутствует. |
400 | invalid_scope | { "httpCode":"400", "httpMessage":"Bad Request", "moreInformation":"invalid_scope" } | В теле запроса ошибка в параметре scope: используется пустое либо некорректное значение параметра. Корректное значение параметра scope необходимо смотреть в документации к API. |
400 | Bad Request | { "httpCode":"400", "httpMessage":"Bad Request", "moreInformation":"Bad Request" } | В заголовке запроса указаны некорректные значения параметров accept или content-type. Корректные данные параметров для вызова токена можно посмотреть в Параметрах запроса |
400 | invalid_request | { "httpCode":"400", "httpMessage":"Bad Request", "moreInformation":"invalid_request" } | В теле запроса ошибка в параметрах grant_type, code или redirect_uri используется пустое либо указано некорректное значение параметра. Корректные данные параметров для вызова токена можно посмотреть в Параметрах запроса. |
400 | Invalid object: the property 'grant_type' is missing | { "httpCode":"400", "httpMessage":"Bad Request", "moreInformation":"local:///authgw/auth/1.0/xsd/Token2Rq.jsd:42: [JSV0002] Invalid object: the property 'grant_type' is missing." } | В теле запроса отсутствует параметр grant_type. Корректные данные параметров для вызова токена можно посмотреть в Параметрах запроса. |
400 | Invalid value type 'string' | { "httpCode":"400", "httpMessage":"Bad Request", "moreInformation":"local:///authgw/auth/1.0/xsd/Token2Rq.jsd:42: [JSV0001] Invalid value type 'string'." } | Следующие параметры тела запроса содержат спецсимволы #_!$@%^&_()\_+=-'" :
|
400 | unauthorized_client | { "httpCode":"400", "httpMessage":"Bad Request", "moreInformation":"unauthorized_client" } | Ошибка в значениях параметров client_id или client_secret, указанных в теле запроса. Проверить параметры своего приложения можно через личный кабинет на Портале разработчика, в разделе "Приложения". |
400 | invalid_grant | { "httpCode":"400", "httpMessage":"Bad Request", "moreInformation":"invalid_grant" } | Данная ошибка возникает из-за того, что в теле запроса некорректно заполнены следующие параметры:
|
401 | Mismatch client_id | { "httpCode":"401", "httpMessage":"Unauthorized", "moreInformation":"Client id not registered." } { "httpCode":"401", "httpMessage":"Unauthorized", "moreInformation":"Mismatch client_id" } | client_id приложения, указанный в заголовке "Authorization", не зарегистрирован на Портале разработчика: приложение может быть удалено, значение содержит синтаксическую ошибку либо является эмуляционным значением. Проверить параметры своего приложения можно через личный кабинет на Портале разработчика, в разделе "Приложения". |
401 | Scope not supported by 3rd party | { "httpCode":"401", "httpMessage":"Unauthorized", "moreInformation":"Scope not supported by 3rd party" } | Приложение не авторизовано получать токен по указанному scope. Причинами могут быть:
|
403 | Forbidden | { "httpCode":"403", "httpMessage":"Forbidden" } | Доступ запрещен. Для разбора данной ошибки необходимо обратиться в поддержку Банка. |
404 | No resources match requested URI | { "httpCode":"404", "httpMessage":"Not Found", "moreInformation":"No resources match requested URI" } | Вам необходимо скорректировать url вызова API в соответствии с указанным адресом вызова API. |
405 | The method is not allowed for the requested URL | { "httpCode":"405", "httpMessage":"Method Not Allowed", "moreInformation":"The method is not allowed for the requested URL" } | Используется некорректный метод вызова API. Вызов токена необходимо делать через POST-запрос. |
406 | Not Acceptable | { "httpCode":"406", "httpMessage":"Not Acceptable" } | API не может сформировать ответ, который поддерживается приложением. Это означает, что запрашивается информация, которая не может быть предоставлена в ответе. Например, ответ запрошен в json-формате, а возможен только в xml и т.д. |
429 | Rate Limit exceeded | { "httpCode":"429", "httpMessage":"Too Many Requests", "moreInformation":"Rate Limit exceeded" } | Лимит на количество вызовов API исчерпан. Необходимо скорректировать частоту вызова API в соответствии с настройками используемого тарифного плана в рамках подписки. Настройки тарифных планов можно посмотреть в карточке API в Каталоге сервисов. |
- | Bad handshake | Bad handshake | Некорректно прикреплен сертификат к запросу либо сертификат вовсе не прикреплен. Необходимо проверить, правильно ли прикреплен клиентский сертификат к запросу. Напоминаем, что для успешного вызова API необходимо использование клиентского сертификата в запросе, выпущенного для приложения на Портале разработчика. |
500 | 500 Internal Server Error | 500 Internal Server Error | Для разбора данной ошибки необходимо обратиться в поддержку Банка |
502 | 500 Internal Server Error | 502 BAD_GATEWAY | Для разбора данной ошибки необходимо обратиться в поддержку Банка |
504 | 500 Internal Server Error | 504 GATEWAY_TIMEOUT | Для разбора данной ошибки необходимо обратиться в поддержку Банка |
Другие ошибки
Описание ошибки
403 Forbidden
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<center><h1>403 Forbidden</h1></center>
<center>nginx/1.15.10</center>
</body>
</html>
Причина ошибки В запросе не передан клиентский сертификат либо передан сертификат с истекшим сроком действия. Необходимо скорректировать настройки вызова и убедиться, что используется валидный сертификат для приложения, которым осуществляется вызов API. Проверить срок жизни сертификата можно через личный кабинет на Портале разработчика, в разделе "Приложения".
Ошибки при получении данных пользователя
Пример ответа в случае ошибки:
HTTP/1.1 400 Bad Request Content-Type: application/json Cache-Control: no-store Pragma: no-cache { «error»:
«invalid_request» }
Если предъявленный Access Token не найден или уже использован, возвращается ответ с ошибкой типа HTTP 401 unauthorized.
Типы возвращаемых ошибок
№ п/п | Описание типа ошибки | Тип возвращаемой ошибки |
---|---|---|
1 | В заголовке Authorization отсутствует какое-либо значение или в запросе присутствуют дополнительные атрибуты. | invalid_request |
2 | Указан неверный тип токена. | invalid_request |
Cлужба поддержки
При возникновении вопросов по интеграции со Сбер ID напишите нам на почту support_sberid@sber.ru