Lemana Pro Logo Lemana Pro Logo

Интеграционный гид для B2B клиентов Лемана ПРО

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

Общая схема интеграционного взаимодействия приведена на диаграмме последовательности ниже. 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