ym88659208ym87991671
Использование сертификата на сервере партнера | Документация для разработчиков

Использование сертификата на сервере партнера

Обновлено 1 марта 2024

Базовая схема взаимодействия при вызове API

Базовая схема взаимодействия при вызове API

Вызов API осуществляется согласно спецификации Oauth 2.0, который предполагает первичное получение токена, разрешающего выполнить непосредственный запрос API (access_token).

Ознакомиться с RFC Oauth 2.0 - https://tools.ietf.org/html/rfc6749

Sber API Registry обеспечивает защиту от несанкционированного доступа к API, и в случае успешных проверок самостоятельно маршрутизирует запрос API на сторону поставщика. В числе проверок:

  1. проверка наличия действующей подписки для вызывающего приложения
  2. проверка сертификата и срока его действия
  3. проверка сессии токена
  4. проверка запроса и ответа на соотвтетствие схемам API

Шаг 1. Добавление ClientId и ClientSecret

Как получить ClientID и Client Secret - см. в разделе Зарегистрировать приложение.

Шаг 2. Загрузка сертификата хранилище

На порталах oauth.sber, oauth-psi.sber, oauth-ift.sber используется сертификат, выпущенный УЦ The Ministry of Digital Development and Communications.

В связи с этим, необходимо в доверенные цепочки полученного сертификата на Шаге 1 добавить сертификат минцифры, скачать Сертификаты Минцифры РФ по ссылке.

Как получить контейнер с сертификатом - см. в разделе Зарегистрировать приложение.

При необходимости, контейнер можно распаковать для импорта клиентских и корневых сертификатов в Keystore и Truststore вашего хранилища.

Для этого можно воспользоваться командой:


openssl pkcs12 -in <имя вашего файла>.p12 -nodes -nocerts -out private.key
openssl pkcs12 -in <имя вашего файла>.p12 -clcerts -nokeys -out client_cert.crt
openssl pkcs12 -in <имя вашего файла>.p12 -cacerts -nokeys -chain -out cacerts.cer

После выполнения команды вы получите 3 файла, которые можно загружать в ваши хранилища:

  • Приватный ключ в файле private.key
  • Клиентский сертификат в файле client_cert.crt
  • Корневые сертификаты SberAPI CA и SberAPI Root CA, представленные в одном файле cacerts.cer.

Проверить информацию, содержащуюся в извлеченных сертификатах можно по команде:

openssl pkcs12 -in cacerts.cer -out log.txt

Внутри файла log.txt будет представлено содержание файла сертификата.

Пример

Bag Attributes: <Empty Attributes>
subject=C = RU, ST = Moscow, L = Moscow, O = Sberbank of Russia, OU = SberAPI, CN = SberAPI Root CA
issuer=C = RU, ST = Moscow, L = Moscow, O = Sberbank of Russia, OU = SberAPI, CN = SberAPI Root CA
-----BEGIN CERTIFICATE-----
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
01DQKYYc15s=
-----END CERTIFICATE-----

Шаг 3. Использование сертификата при вызове API

Как крепить сертификаты к запросу - ниже приведены примеры на curl:

Вариант 1

curl --cert-type P12 --cert cert.p12:password

Вариант 2

curl --cert-type P12 --cert certificate.p12 --pass "***"

Вариант 3

curl --cert cert.crt --key private.key

Шаг 4. Получение access_token при вызове API

Используйте OIDC-токен, если продукт API предполагает работу с данными клиента, в рамках установленных согласий клиентов см. описание.

Новый токен нужно получать для каждого нового запроса к API. Срок жизни токена составляет 60 сек

ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.