Lemana Pro Logo

Схема интеграционного взаимодействия

Общая схема интеграционного взаимодействия приведена на диаграмме последовательности ниже. enter image description here

Основные элементы диаграммы:

  • Клиент B2B - Представитель или ответственные лица компании, которые инициируют интеграцию с Лемана ПРО;
  • Поддержка B2B - команда интеграторов/поддержки интеграции со стороны Лемана ПРО;
  • Приложение клиента B2B- Приложение клиента (Маркетплейс, внутренний ресурс и.т.д), для которого планируется интеграция;
  • Keycloak B2B - Сервис аутентификации B2B-клиентов в компании Лемана ПРО;
  • APIGateway - шлюз, где опубликованы доступные для B2B-клиента API-методы.

Описание процесса взаимодействия

  1. Клиент B2B обращается к интеграторам (SupportB2B), со стороны Лемана ПРО с заявкой на интеграцию. Шаблон заявки на интеграцию;
  2. Команда интеграторов предоставляет клиенту необходимые данные для интеграции: client_id, client_secret – для получения токена в Keycloak;
  3. Приложение клиента B2B обращается в Keycloak B2B для получения JWT-токена, используя полученные client_id и client_secret на шаге 2.
  4. Keycloak B2B возвращает JWT-токен (access_token) приложению клиента B2B. По истечению срока жизни токена, приложение клиента повторно отправляет запрос на получение токен. Время жизни токена можно увеличить, по запросу;
  5. Приложение клиента B2B обращается к API Gateway, передавая JWT-токен(access_token) в качестве авторизационных данных;
  6. API Gateway обрабатывает запрос и возвращает ответ приложению клиента B2B.

Получение JWT-токена авторизации

Перед отправкой запроса, к опубликованным методам контракта API, на APIGateway, для которых в принимаемых значениях указан access_token, необходимо получить токен авторизации с помощью POST запроса на следующий адрес:

В теле запроса заполняем client_id, client_secret и grant_type=client_credentials Пример запроса:

curl -X 'POST' \
  'https://customer.auth.lemanapro.ru/realms/b2b/protocol/openid-connect/token' \
  - H 'accept: application/json' \
  - H 'Content-Type: application/x-www-form-urlencoded' \
  - d 'grant_type=client_credentials&client_id="Полученный client_id"&client_secret="Полученный client_secret"'

Пример ответа:

{
    "access_token": "Зашифрованный JWT-токен",
    "expires_in": 300,
    "refresh_expires_in": 0 ,
    "token_type":"Bearer,
    "not-before-policy":0,
    "scope": "email profile"
}

По вопросам интеграции писать на почту: b2b_integration@lemanapro.ru