docker-compose for RBK Money 3D Secure Server Macroservice
Go to file
2021-04-01 19:41:30 +07:00
docs add README (#3) 2020-12-17 16:23:57 +03:00
ds-simple-mock Update README.md (#18) 2021-04-01 19:01:04 +07:00
pseudo-schedulator Update README.md (#18) 2021-04-01 19:01:04 +07:00
readme-resources part update README (#17) 2021-04-01 18:12:47 +07:00
samples add README (#3) 2020-12-17 16:23:57 +03:00
three-ds-server/cert actualize compose, add pseudo schedulator for init preparation flow (#15) 2021-03-30 15:28:59 +07:00
.gitignore actualize compose, add pseudo schedulator for init preparation flow (#15) 2021-03-30 15:28:59 +07:00
3DSS detailed Description.md Update README.md (#18) 2021-04-01 19:01:04 +07:00
docker-compose.yml create common network for all containers, use aliases for service access (#16) 2021-03-30 18:04:03 +07:00
LICENSE Initial commit 2020-12-16 12:16:54 +03:00
RBKMoneyAuthenticationRequest.md part update README (#17) 2021-04-01 18:12:47 +07:00
README.md Update README.md (#21) 2021-04-01 19:41:30 +07:00

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)

Описание

Макросервис 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

Лучше пишите собственную импементацию

андартная имплементация через 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