Вход через Госуслуги (ЕСИА) на сайте: как подключить и кому это нужно

«Войти через Госуслуги» даёт подтверждённые данные клиента, но требует ГОСТ-криптографии и согласований. Когда это оправдано и как устроена интеграция.

«Войти через Госуслуги» — это авторизация поверх ЕСИА (Единой системы идентификации и аутентификации). Для пользователя это один клик, для бизнеса — способ получить подтверждённые государством данные клиента: ФИО, СНИЛС, ИНН, дату рождения. Разбираем, кому это реально нужно, как подключается и где подводные камни на стороне сайта.

Схема входа через Госуслуги: сайт, ЕСИА и обмен токенами по OAuth 2.0
Поток входа через ЕСИА: redirect на Госуслуги → согласие пользователя → код → обмен на токен → запрос данных.

Кому это нужно

Вход через Госуслуги оправдан там, где важны проверенные данные и юридически значимая идентификация:

  • финтех, МФО, страхование — KYC и проверка личности
  • медицина, образование, запись на услуги
  • каршеринг, аренда, прокат — нужно подтверждённое ФИО и возраст
  • сервисы, интегрированные с госуслугами или льготами

Если вам достаточно email или телефона для регистрации — ЕСИА избыточна. Подключение нетривиальное, и ради «ещё одной кнопки входа» городить ГОСТ-криптографию смысла нет.

Уровни учётной записи

В ЕСИА три уровня: упрощённая, стандартная и подтверждённая. Полный набор персональных данных (СНИЛС, паспорт) отдаётся только для подтверждённой учётной записи. Это нужно учитывать в продукте: часть пользователей войдёт, но согласия на нужные данные дать не сможет.

Как подключить — по шагам

  1. Регистрация ИС. Организация регистрирует свою информационную систему в техническом портале ЕСИА (esia.gosuslugi.ru/console/tech) и получает мнемонику системы — аналог client_id.
  2. Сертификат. Нужен сертификат по ГОСТ Р 34.10-2012: запросы к ЕСИА подписываются криптоподписью. На сервере ставится КриптоПро CSP (или совместимый провайдер) с ГОСТ-движком.
  3. Заявка и согласование. Подаётся заявка на доступ к нужным scope (какие данные запрашиваете). Согласование занимает время — закладывайте 2–4 недели.
  4. Тестовая среда. Сначала всё отлаживается на тестовом контуре (esia-portal1.test.gosuslugi.ru), потом переключается на прод.

Технический поток (OAuth 2.0 + ГОСТ)

Под капотом — authorization code flow, но с национальной криптографией:

  1. Формируете запрос на /aas/oauth2/ac с параметрами (scope, client_id, redirect, timestamp, state) и подписываете его ГОСТ-подписью. Это ключевое отличие от обычного OAuth — без валидной подписи ЕСИА отклонит запрос.
  2. Пользователь видит экран Госуслуг, логинится и даёт согласие на передачу данных.
  3. ЕСИА редиректит обратно с code.
  4. Меняете code на access_token на /aas/oauth2/te (тоже с подписью).
  5. С токеном запрашиваете данные через REST: /rs/prns/{oid}/... — ФИО, контакты, документы по выданным scope.

На PHP подпись делают через КриптоПро CSP (вызов cryptcp/PKCS#7) либо через openssl с ГОСТ-engine. Это самая хрупкая часть интеграции — на ней спотыкаются чаще всего.

Какие данные можно запросить

Через scope запрашиваются: ФИО, дата рождения, пол, email, мобильный, СНИЛС, ИНН, паспортные данные, адрес. Пользователь видит список и явно подтверждает согласие на каждый блок — лишнего без спроса не отдадут.

Подводные камни

  • Сроки. Это не «прикрутить за вечер». Заявка, согласование scope, ГОСТ-крипта на сервере — реалистично 2–4 недели до прода.
  • Серверное окружение. Нужен сервер, где можно поставить КриптоПро и хранить ключи. На дешёвом shared-хостинге не выйдет.
  • 152-ФЗ. Полученные данные — персональные. Все обязанности оператора ПД остаются: согласие, политика, защита, хранение.
  • Не замена своей авторизации. ЕСИА — дополнительный способ входа, а не единственный. Оставляйте классический вход тоже.

Вывод: ЕСИА — мощный инструмент там, где нужна подтверждённая личность, но это полноценная интеграция с криптографией и согласованиями, а не косметическая кнопка. Если задача — просто упростить регистрацию, дешевле вход по телефону или через VK ID.