Авторизація через JWT

JWT — це спосіб для банку авторизувати операцію за допомогою зворотного виклику

JWT надсилається на кроці 3 через URL-адресу зворотного виклику. У разі невдачі відповіді операція відхиляється.

Система підтримує 2 способи створення JWT. Обидва підходи можна використовувати одночасно.

⬇️Опис
✅Перевага
🤔Недолік

DCM генерує JWT. Банк перевіряє його на відповідність публічному ключу DCM

Жодних зусиль для реалізації:

  • сховище для ключів

  • функція для створення JWT

DCM може вручну підтверджувати запити до Ідентифікатори.

Правила доступу для співробітників контролюються DCM.

  • Приватний ключ належить DCM

  • csrf_token має бути отримано з потоком логіна та пароля

ЗаголовокAuthorization має містити фактичний csrf_token.

JWK Банку

На кроці 2 Банк генерує JWT, який використовується на кроці 5 у заголовку CX-Authorization, коли працівник Банку виконує операцію (наприклад, створює нового клієнта). На кроці 6 DCM перевіряє JWT. Те саме робить Банк на кроці 8.

Кроки 3-4 є необов’язковими, і їх можна використовувати для перевірки дійсності JWT.

Реєстрація JWK в Банку

Щоб швидкого запуску процесу, використовується JWT by Bank, реєструється принаймні один ключ JWK в службі автентифікації для Контрагента.

Create jwk

post

Create jwk

Path parameters
counterparty_guidstringRequired

Counterparty GUID

Body
Responses
200
OK
application/json
post
POST /api/v1/counterparty/{counterparty_guid}/jwk HTTP/1.1
Host: your_host
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "data": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
{
  "guid": "text"
}
Request example
{"data": {
	"alg": "RS256",
	"e": "AQAB",
	"kid": "54321",
	"kty": "RSA",
	"n": "14FGZls6nrBLY2XH9Dn6UVoY24oynIXJX1PGz6c4wB2Q3DpBj-zPwouhXCQSAGyQB4Co0FN0_pML5g1xSOMY1SccBGZ_CxhdSvyskP01Fr0_rHidIdRIc69k-UPzhnk6Nx_F1uFp8105jUD2Tq_VYIS49rqtct4UQOL5PPzfTOUqBMAEBwvL65KqUAOciC1ae_LV6SHZQXdIqv3EZzA3PxZ4pTa6DvnjgVAbP2zNANUFSnuemvTmQbH05E0qTtGkXugwcc4jCfnOWS4gix2GWDoIhwCi8AbK4aAN-H3D770rF4z4Tb59DEw8-8hZQZtyoJeEi8FWNM1Y6Ki5FMxzpQ",
	"use": "sig"
}}

Отримання списку зареєстрованих ключів для JWT Банку

Коли JWK зареєстровано, можна перевірити, чи існує він у сховищі реєстру.

Get jwks

get

Get jwks

Path parameters
counterparty_guidstringRequired

Counterparty GUID

Responses
200
OK
application/json
get
GET /api/v1/counterparty/{counterparty_guid}/jwk HTTP/1.1
Host: your_host
Accept: */*
{
  "keys": [
    {
      "created_at": "text",
      "data": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "guid": "text",
      "updated_at": "text"
    }
  ]
}

Перевірка JWT Банку

Ця функція дозволяє перевіряти JWT у службі автентифікації без змін до будь-яких об’єктів і процесів.

Authenticate

post

Authenticate

Path parameters
counterparty_guidstringRequired

Counterparty GUID

Header parameters
CX-AuthorizationstringRequired

Counterparty JWT

Responses
200
OK
application/json
post
POST /api/v1/counterparty/{counterparty_guid}/jwk/authenticate HTTP/1.1
Host: your_host
CX-Authorization: text
Accept: */*
{
  "session_token": "text"
}

JWT від DCM

Схема за замовчуванням (коли JWT створюється DCM) дозволяє використовувати рольовий доступ до функцій системи.

DCM генерує маркер JWT на кроці 4. Банк перевіряє його на кроці 6.

Отримання списку зареєстрованих ключів для JWT DCM

Можена перевірити JWT DCM у службі аутентифікації Банку, використовуючи наш відкритий ключ його дочірнього.

get JWTS endpoint

get

get JWTS endpoint

Responses
200
OK
application/json
get
GET /api/v1/.well-known/jwks.json HTTP/1.1
Host: your_host
Accept: */*
{
  "keys": [
    {
      "alg": "text",
      "e": "text",
      "kid": "text",
      "kty": "text",
      "n": "text",
      "use": "text"
    }
  ]
}

Last updated