Миграция устаревших систем верификации личности с помощью Strangler Fig и Didit (RU)
Модернизация устаревших систем проверки личности может быть сложной. В этой статье рассматривается, как использовать паттерн Strangler Fig в Java/Spring Boot для постепенной миграции на передовой API Didit, минимизируя риски и.

Стратегия инкрементальной миграции. Паттерн Strangler Fig позволяет осуществлять пошаговую миграцию, когда новая функциональность создается параллельно со старой системой, постепенно заменяя устаревшие компоненты без разрушительных «больших взрывов».
Минимизация рисков и простоя. Изолируя новые функции и выборочно маршрутизируя трафик, организации могут снизить риск сбоев системы и поддерживать непрерывную доступность услуг во время перехода.
Использование современных API. Интеграция с API Didit обеспечивает доступ к возможностям проверки личности на основе ИИ, предлагая превосходное обнаружение мошенничества, соответствие требованиям и улучшенный пользовательский опыт по сравнению с устаревшими системами.
Модульный и ориентированный на разработчиков подход Didit. Платформа Didit предоставляет модульную, управляемую API архитектуру с бесплатным базовым KYC, что делает ее идеальной для постепенного внедрения и бесшовной интеграции в существующие приложения Spring Boot.
Проблема устаревших систем верификации личности
Многие организации полагаются на устаревшие системы верификации личности (IDV), которые трудно поддерживать, дорого масштабировать и которые часто не обладают расширенными возможностями обнаружения мошенничества, присущими современным решениям. Мысль о полной перестройке может парализовать, приводя к стагнации и увеличению рисков. Эти старые системы могут с трудом справляться с новыми требованиями соответствия, предлагать низкое качество обслуживания пользователей или быть неспособными обнаруживать изощренные дипфейки и мошенничество с синтетической идентификацией. Традиционная миграция «большим взрывом», когда вся система заменяется сразу, чревата риском, потенциальными простоями и значительными затратами на разработку. Именно здесь стратегический, инкрементальный подход становится бесценным.
Внедрение паттерна Strangler Fig для миграции IDV
Паттерн Strangler Fig, метко названный Мартином Фаулером, предлагает элегантное решение для постепенной миграции устаревшей системы путем создания новой функциональности по ее периферии, в конечном итоге «душа» старую систему, пока ее можно будет вывести из эксплуатации. Для верификации личности это означает замену конкретных функций IDV вызовами к современному API, такому как Didit, в то время как остальная часть устаревшего приложения первоначально остается нетронутой. Этот паттерн особенно хорошо подходит для приложений Java/Spring Boot, позволяя разработчикам постепенно внедрять новые сервисы и вызовы API.
Основная идея заключается в размещении фасада или API-шлюза перед устаревшей системой. Новые запросы маршрутизируются через этот шлюз, который решает, обрабатывать ли их с помощью новой системы (Didit) или передавать их устаревшей системе. Со временем все больше и больше функциональности переносится в новую систему, а устаревшие компоненты постепенно выводятся из эксплуатации. Этот подход минимизирует риски, обеспечивает непрерывную доставку и немедленную ценность от возможностей новой системы.
Реализация Strangler Fig с Spring Boot и Didit
Рассмотрим практический сценарий в приложении Spring Boot. Представьте, что у вас есть устаревший сервис, отвечающий за обработку документов ID и проверки живости. Вы хотите заменить его расширенными функциями Didit для проверки ID и пассивной/активной проверки живости. Вы можете ввести новый сервис Spring Boot или компонент в существующем сервисе, который будет действовать как «душитель».
Шаг 1: Создание уровня прокси/фасада
Разработайте новый компонент Spring, который перехватывает вызовы, предназначенные для верификации личности. Этот компонент будет содержать логику для принятия решения о том, использовать ли устаревшую систему или Didit. Например, если вы мигрируете только регистрации новых пользователей, вы можете направить их в Didit, в то время как повторные верификации существующих пользователей могут по-прежнему проходить через устаревшую систему изначально.
@Service
public class IdentityVerificationGateway {
private final DiditApiClient diditApiClient;
private final LegacyIdvService legacyIdvService;
public IdentityVerificationGateway(DiditApiClient diditApiClient, LegacyIdvService legacyIdvService) {
this.diditApiClient = diditApiClient;
this.legacyIdvService = legacyIdvService;
}
public VerificationResult verifyIdentity(User user) {
// Логика для принятия решения об использовании Didit или устаревшей системы
if (user.isNewUser() || featureFlags.isDiditEnabledFor(user.getRegion())) {
// Вызов Didit API для проверки ID и живости
return diditApiClient.performVerification(user);
} else {
// Возврат к устаревшей системе
return legacyIdvService.performVerification(user);
}
}
}
Шаг 2: Интеграция API Didit
В вашем DiditApiClient вы будете выполнять вызовы к надежным конечным точкам API Didit. Модульная архитектура Didit означает, что вы можете выбирать именно те примитивы идентификации, которые вам нужны. Например, для выполнения проверки ID и живости вы обычно инициируете сеанс, а затем обрабатываете результаты. API Didit действительно ориентирован на разработчиков, предлагая чистые API и мгновенную песочницу для быстрой интеграции.
@Service
public class DiditApiClient {
private final RestTemplate restTemplate;
private final String diditApiKey;
private final String diditApiUrl;
public DiditApiClient(@Value("${didit.api.key}") String diditApiKey,
@Value("${didit.api.url}") String diditApiUrl) {
this.restTemplate = new RestTemplate();
this.diditApiKey = diditApiKey;
this.diditApiUrl = diditApiUrl;
}
public VerificationResult performVerification(User user) {
HttpHeaders headers = new HttpHeaders();
headers.set("x-api-key", diditApiKey);
headers.setContentType(MediaType.APPLICATION_JSON);
// Пример: Создание сеанса для проверки ID и живости
// workflow_id будет настроен в Didit's Business Console
// для вашей желаемой последовательности проверок.
String workflowId = "your-didit-workflow-id";
Map<String, String> requestBody = Map.of("workflow_id", workflowId, "vendor_data", user.getUserId());
HttpEntity<Map<String, String>> request = new HttpEntity<>(requestBody, headers);
ResponseEntity<DiditSessionResponse> response = restTemplate.postForEntity(
diditApiUrl + "/v3/session/", request, DiditSessionResponse.class);
// Обработка URL сеанса, перенаправление пользователя и обработка вебхуков для результатов
// Этот упрощенный пример предполагает синхронные результаты для краткости.
return new VerificationResult(response.getBody().getSessionId(), "PENDING");
}
}
Помните, что Didit также предлагает бизнес-консоль без кода для разработки сложных оркестрированных рабочих процессов, объединяющих такие элементы, как проверка ID, пассивная и активная проверка живости, сопоставление лиц 1:1, AML-скрининг и подтверждение адреса. Это позволяет вам определить свой путь верификации один раз, а затем запускать его с помощью простого вызова API, упрощая интеграцию с Spring Boot.
Шаг 3: Постепенное переключение трафика и мониторинг
После того, как интеграция Didit будет выполнена, вы можете постепенно переключать трафик. Начните с небольшого процента пользователей, проведите A/B-тестирование или включите его для определенных когорт. Внимательно отслеживайте производительность, пользовательский опыт и точность верификации. Комплексная аналитика и возможности вебхуков Didit делают этот процесс мониторинга эффективным, предоставляя обновления в реальном времени по мере прохождения пользователями верификации. По мере роста уверенности вы можете увеличивать трафик, направляемый в Didit, в конечном итоге полностью выводя из эксплуатации устаревшие компоненты.
Как помогает Didit
Didit уникально позиционируется для облегчения бесшовных миграций с использованием паттерна Strangler Fig. Наша AI-нативная, ориентированная на разработчиков платформа идентификации предлагает модульную архитектуру, которая упрощает интеграцию расширенных возможностей верификации личности. С Didit вы получаете доступ к набору мощных инструментов:
- Проверка ID (OCR, MRZ, штрих-коды): Точное извлечение данных из документов, удостоверяющих личность, по всему миру.
- Пассивная и активная проверка живости: Борьба с дипфейками и атаками с использованием презентаций с помощью передовой биометрической проверки живости.
- Сопоставление лиц 1:1: Убедитесь, что человек, предъявляющий ID, является его законным владельцем.
- AML-скрининг и мониторинг: Соблюдайте глобальные правила, проверяя списки санкций и PEP.
- Подтверждение адреса: Эффективная проверка адресов проживания.
- Оценка возраста (с сохранением конфиденциальности): Для соблюдения требований в отраслях с возрастными ограничениями без ущерба для конфиденциальности.
- Проверка телефона и электронной почты: Повышение безопасности учетных записей и предотвращение мошенничества.
Преимущества Didit очевидны: мы предлагаем бесплатный базовый KYC, чтобы вы могли начать, по-настоящему модульную архитектуру, которая позволяет интегрировать только то, что вам нужно, и AI-нативный подход, обеспечивающий превосходную точность и предотвращение мошенничества. Наша платформа не имеет платы за установку, а наш подход, ориентированный на разработчиков, обеспечивает чистые API и обширную документацию для быстрой интеграции, идеально согласуясь с инкрементальным характером паттерна Strangler Fig.
Готовы начать?
Готовы увидеть Didit в действии? Получите бесплатную демонстрацию сегодня.
Начните бесплатно верифицировать личности с бесплатным тарифом Didit.