Блог

Авторизация на сайте через Госуслуги

Госуслуги (ЕСИА). Авторизация пользователя, которая необходима для финансового сектора.

Срок реализации – 4 дня.

Задачи

  1. Реализовать связь: Веб-приложение <=> ESIA-Bridge <=> ЕСИА;
  2. Разработать авторизацию пользователя через Госуслуги;
  3. Получать пользовательские данные для автоматического заполнения форм;
  4. Подтверждать данные пользователем через SMS-подпись.

Стэк

Symfony 4

Решение

Взаимодействие с ЕСИА.

Веб-приложение "общается" с ЕСИА только через ESIA-Bridge – сервис, который контролирует:
  • связь между веб-приложением и ЕСИА;
  • задает уровни доступа к информации о пользователе;
  • создает дополнительную защиту данных пользователя в ЕСИА.
Веб-приложение обращается к ЕСИА-бридж, чтобы запросить данные пользователя. Сервис-прослойка отправляет запрос к ЕСИА со своей подписью, получает информацию и перенаправляет обратно для дальнейшей работы.

Автозаполнение полей

После того как пользователь авторизовался через госуслуги и дал разрешение на передачу данных, мы автоматически заполняем пользовательскими данными поля, чтобы получить услугу компании в которую он обратился. Автоматически заполнить поля не удастся, если:
  • низкий уровень доступа ЕСИА бридж, что ограничивает количество получаемых данных;
  • поля профиля пользователя на стороне ЕСИА заполнены частично;
  • при авторизации через госуслуги, пользователь не разрешил использование личных данных.

Хранение данных о пользователе

Полученные данные пользователя используются только на этапе заполнения полей. Далее эти данные нигде не используются. Данные, которые пользователь ввел вручную, не передаются и обратно в ЕСИА, работа с ЕСИА идет только в режиме чтения и только в одну сторону.

Завершение регистрации и SMS-подпись

После прохождения этапов заполнения анкеты, пользователю предлагается подписать документы через СМС. Он дает согласие на использование данных и завершает процедуру регистрации.
Подключая сервис авторизации пользователя через ЕСИА, мы экономим время и клиентов и бизнеса: клиент тратит минимум времени на этапе авторизации и приобретения услуги, а бизнес получает подтвержденные данные о клиенте, которые не нужно дополнительно проверять и валидировать.
Андрей, backend developer
Backend PHP Symfony FinTech