Skip to content

rbkmoney/three-ds-server-compose

Repository files navigation

three-ds-server-compose

Репозиторий с макросервисом RBK.money 3D Secure Server для запуска внутри Docker

Сокращения

Directory Server = DS
3D Secure Server = 3DSS

Использование

docker-compose up -d

Demo2
Запуск макросервиса полностью автоматизирован и производится внутри докера, образ скачивается напрямую из репозитория rbkmoney на Docker Hub
Обращаем внимание, для корректного демо RBK.money 3D Secure Server порядок запуска:

  1. docker-compose.yml three-ds-server macroservice (сам макросервис 3DSS)
  2. docker-compose.yml ds-simple-mock (пример сервиса, который может быть использован в качестве заглушки для обработки PReq && AReq запросов в DS от макросервиса 3DSS)
  3. docker-compose.yml pseudo-schedulator (пример сервиса, который может быть использован в качестве заглушки для инциализации PReq/PRes flow в макросервис 3DSS)

Если запуск будет произведен корректно, то по задумке автора в качестве финального результата в логах должны быть записи об успешной записи карточных диапазонов в хранилище
alt text

Описание

Макросервис 3DSS имплементирует требование по спецификации EMVCo к 3D Secure взаимодействию, поддерживает только аутентификацию из вебсайта (Browser-based)
Подробнее — ЗДЕСЬ

Конфигурация

Макросервис 3DSS является клиентом для DS, и использует DS при выполенении запросов, обозначенных спецификацей EMVCo (ссылка ниже), поэтому для корректной работы 3DSS необходима настройка обоих доменов (сервисов)

Настройка домена совместимости (домен DS)

При запуске макросервиса 3DSS должен выполнить запрос на обновление карточных диапазонов PReq/PRes flow, поэтому перед запуском макросервиса 3DSS необходимо убедиться, что есть доступ к активному DS, который готов принимать HTTP запросы
В этом репозитории находится ds-simple-mock, который может быть использован в качестве заглушки для обработки PReq && AReq запросов в DS от макросервиса 3DSS)
Подробнее — ЗДЕСЬ

Настройка планировщика расписания

При запуске 3DSS кто то должен выполнить запрос на обновление карточных диапазонов PReq/PRes flow, поэтому перед запуском макросервиса 3DSS необходимо убедиться, что подобный сервис имплементирован и готов выполнять запросы по инициализации PReq/PRes flow в соотвествии с требованиями спецификации EMVCo (то есть минимальный интервал между запросами — 1 час, максимальный — 24 часа)
Более детальное описание процесса — ЗДЕСЬ -> 5.6 PReq/PRes Message Handling Requirements (page 119)
В этом репозитории находится pseudo-schedulator, который может быть использован в качестве заглушки для инциализации PReq/PRes flow в макросервис 3DSS
Подробнее — ЗДЕСЬ

Настройка домена эквайера (домен 3DSS)

На данный момент сервис поддерживает обработку 3 провайдеров {providerId}visa, mastercard, mir

  1. Указать в директории cert ключи mir.p12, visa.p12, mastercard.p12, которые используются 3DSS для соединения с DS (для примера в директории нахадится тестовый сертификат)

Ключи будут использоваться параметром:

client.ds.ssl.{providerId}.trust-store: file:/opt/three-ds-server/cert/test.p12

Указать пароли для ключей:

client.ds.ssl.{providerId}.trust-store-password: {{password}}

Изменить (при необходимости) volume

volumes:
  - ./three-ds-server/cert:/opt/three-ds-server/cert/:ro
  1. Указать адрес DS для каждого {providerId}
environment.{providerId}.ds-url: http://ds:8081/{providerId}/DS2/authenticate
  1. Настройка расписания для обновления карточных диапазонов 3DS Preparation Flow

В этом репозитории находится pseudo-schedulator, который может быть использован в качестве заглушки для инциализации PReq/PRes flow в макросервис 3DSS
Подробнее — ЗДЕСЬ

Лучше пишите собственную импементацию
Cтандартная имплементация через rbkmoney-schedulator выключена (параметр rbkmoney-preparation-flow.scheduler.enabled: "false") (данный сервис тянет за собой каскад других rbkmoney сервисов, поэтому это выходит за рамки данной демонстрации)

Тестирование 3DS Authentification Flow

Для теста в 3DSS посылаются 2 запроса, у одного "acctNumber": "2201010000000000", у второго "acctNumber": "4012000000001001"
В данном тесте в качестве сервиса DS используется собственный мок-сервис ds-simple-mock
3DSS (с помощью мок-сервиса DS) настроен так, что "acctNumber": "2201010000000000" ассоциирует с mastercard , "acctNumber": "4012000000001001" ассоциирует с visa, и отправляет запрос в соотвествующий DS (mir также поддерживается для запросов)
Demo3

About

docker-compose for RBK Money 3D Secure Server Macroservice

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published