Госуслуги (ЕСИА). Авторизация пользователя, которая необходима для финансового сектора.
Срок реализации – 4 дня.
Задачи
- Реализовать связь: Веб-приложение <=> ESIA-Bridge <=> ЕСИА;
- Разработать авторизацию пользователя через Госуслуги;
- Получать пользовательские данные для автоматического заполнения форм;
- Подтверждать данные пользователем через SMS-подпись.
Стэк
Symfony 4
Решение
Взаимодействие с ЕСИА.
Веб-приложение "общается" с ЕСИА только через ESIA-Bridge – сервис, который контролирует:
- связь между веб-приложением и ЕСИА;
- задает уровни доступа к информации о пользователе;
- создает дополнительную защиту данных пользователя в ЕСИА.
Веб-приложение обращается к ЕСИА-бридж, чтобы запросить данные пользователя. Сервис-прослойка отправляет запрос к ЕСИА со своей подписью, получает информацию и перенаправляет обратно для дальнейшей работы.
Автозаполнение полей
После того как пользователь авторизовался через госуслуги и дал разрешение на передачу данных, мы автоматически заполняем пользовательскими данными поля, чтобы получить услугу компании в которую он обратился. Автоматически заполнить поля не удастся, если:
- низкий уровень доступа ЕСИА бридж, что ограничивает количество получаемых данных;
- поля профиля пользователя на стороне ЕСИА заполнены частично;
- при авторизации через госуслуги, пользователь не разрешил использование личных данных.
Хранение данных о пользователе
Полученные данные пользователя используются только на этапе заполнения полей. Далее эти данные нигде не используются. Данные, которые пользователь ввел вручную, не передаются и обратно в ЕСИА, работа с ЕСИА идет только в режиме чтения и только в одну сторону.
Завершение регистрации и SMS-подпись
После прохождения этапов заполнения анкеты, пользователю предлагается подписать документы через СМС. Он дает согласие на использование данных и завершает процедуру регистрации.
Подключая сервис авторизации пользователя через ЕСИА, мы экономим время и клиентов и бизнеса: клиент тратит минимум времени на этапе авторизации и приобретения услуги, а бизнес получает подтвержденные данные о клиенте, которые не нужно дополнительно проверять и валидировать.
Андрей, backend developer