Время на прочтение
При выполнении очередного госзаказа наша команда столкнулась с проблемой интеграции сайта с ЕСИА. Инструкции по решению этой задачи в сети нет, кроме информации в официальных документах МинКомСвязи (примерно 300 страниц в трех регламентах). Также есть компании, которые оказывают платные услуги по интеграции ЕСИА. Мы реализовали, описали процесс интеграции и решили поделиться с сообществом habrahabr.
- Что такое ЕСИА
- ИсторияПравить
- Расширенные функции при регистрацииПравить
- ЛитератураПравить
- История созданияПравить
- Технические подробностиПравить
- СсылкиПравить
- Сообщение направлено на исполнение в Госуслугах
- В чем преимущества
- Причины смс
- Предисловие
- Введение
- Базовая информация
- Перенаправление в ЕСИА и аутентификация
Что такое ЕСИА
Единая Система Идентификации и Аутентификации — российская информациия система, обеспечивающая доступ (регистрация, аутентификация) на сайты государтсвенных структур и некоторых коммерческих организаций. Подробнее на википедии
В процессе интеграции ЕСИА, система сможет отправлять запрос на ЕСИА и при успешной авторизации получать в качестве ответа данные пользователя
Сценарий авторизации выглядит примерно так:
- Система переадресует на сайт ЕСИА
- При успешной авторизации ЕСИА возвращает пользователя обратно на сайт и по защищенному протоколу передает его личные данные
ИсторияПравить
Помимо перечисленных выше разделов, здесь присутствуют дополнительные подразделы:
Расширенные функции при регистрацииПравить
Часть бюллетеня Роспатента (№ 22; 2021 г.)
ЛитератураПравить
К основным функциональным возможностям ЕСИА относятся:
- идентификация и аутентификация пользователей
- управление идентификационными данными
- авторизация уполномоченных лиц органов исполнительной власти при доступе к функциям ЕСИА
История созданияПравить
2013 — Постановлением Правительства Российской Федерации от 25 января 2013 года № 33 «Об использовании простой электронной подписи при оказании государственных и муниципальных услуг» предусмотрено создание в ЕСИА регистра органов и организаций, имеющих право создания (замены) и выдачи ключа простой электронной подписи в целях оказания государственных и муниципальных услуг. Однако информация о сроках исполнения данного постановления и появлении соответствующих функциональных возможностей в ЕСИА отсутствует.
Технические подробностиПравить
Например, сценарий идентификации и аутентификации выглядит следующим образом:
- Пользователь обращается к защищённому ресурсу информационной системы (например, ведомственному или региональному порталу государственных услуг).
- Информационная система направляет в ЕСИА запрос на аутентификацию.
- ЕСИА проверяет наличие у пользователя открытой сессии и, если активная сессия отсутствует, проводит его аутентификацию. Для этого ЕСИА направляет пользователя на веб-страницу аутентификации ЕСИА. Заявитель проходит идентификацию и аутентификацию, используя доступный ему метод аутентификации.
- Если пользователь успешно аутентифицирован, то ЕСИА передаёт в информационную систему набор утверждений, содержащих идентификационные данные пользователя, информацию о контексте аутентификации, в том числе данные об уровне достоверности идентификации.
Для осуществления аутентификации пользователей в ведомственной ИС посредством ЕСИА необходимо выполнить следующее:
- С помощью веб-интерфейса ЕСИА осуществляется регистрация учётной записи руководителя организации и учётной записи юридического лица (органа государственной власти).
- С помощью веб-интерфейса Технологического портала ЕСИА регистрируется учётная запись информационной системы.
- Генерируется закрытый ключ и сертификат открытого ключа (в одном из аккредитованных удостоверяющих центрах).
- С помощью веб-интерфейса Технологического портала ЕСИА загружается сертификат информационной системы.
- Направляется заявка на подключение ИС к тестовой среде ЕСИА;
- Производится отладка взаимодействия;
СсылкиПравить
Создать учётную запись органа государственной власти можно только из подтверждённой учётной записи физического лица – руководителя организации или представителя, имеющего право действовать от имени организации без доверенности.
Процедура регистрации ОГВ из подтверждённой учётной записи пользователя включает в себя три основных шага.
Шаг 2. Подключите к компьютеру квалифицированную электронную подпись (рисунок 2). Также должны быть предварительно выполнены следующие действия:
Для продолжения регистрации органа государственной власти следует нажать на кнопку «Продолжить».
После заполнения этих полей (а также данных, необходимых для регистрации любого юридического лица, т.е. не специфических для ОГВ) необходимо нажать на кнопку «Продолжить». После успешного ввода пин-кода для электронной подписи будет произведена стандартная проверка данных руководителя организации по ЕГРЮЛ.
После проверки данных по ЕГРЮЛ появится возможность перейти в профиль организации, однако специфические данные, характерные для ОГВ, не будут отображаться: до тех пор, пока уполномоченный сотрудник организации, подтверждающий статус ОГВ, не подтвердит заявку, данная учётная запись будет иметь статус обычного юридического лица. О факте рассмотрения соответствующей заявки сообщает соответствующий информационный блок в профиле зарегистрированной организации (см. рисунок 4). После принятия заявки учётная запись получит статус ОГВ, информационный блок пропадёт из профиля, а инициатору заявки на его служебный адрес электронной почты будет направлено письмо-уведомление. В случае отклонения заявки статус ОГВ присвоен не будет, но учётная запись юридического лица сохранится.
Сообщение направлено на исполнение в Госуслугах
В случае необходимости потребуется обратиться в уполномоченное ведомство, чтобы получить желаемый результат. Удаленный режим позволяет существенно экономить личное время каждого жителя Российской Федерации.
В чем преимущества
Официальный сайт Госуслуги обладает многочисленными преимуществами. К основным из них принято относить:
В качестве единственных недостатков принято выделять возможные технические сбои.
Причины смс
Если получение на мобильный телефон сообщение – «сообщение направление на исполнение в Госуслугах», следовательно, стоит с уверенностью говорить о передачи сформированной заявки ранее в обработку. Поэтому в скором времени стоит ожидать на получение конкретного результата.
Чтобы удостовериться в этом, пользователи могут зайти в зарегистрированный личный кабинет на сайте Госуслуги и перейти в раздел сформированных заявок. В результате будет представлена исчерпывающая информация по интересующему вопросу. Благодаря смс-информированию исключается вероятность банально упустить из виду требуемую услугу.
Предисловие
Введение
Стоит упомянуть, что есть компании, которые имеют готовые решения для интеграции с ЕСИА, например эта или вот эта — если вам лень во всем этом разбираться, можно воспользоваться их услугами. Сами не пользовались, советовать не можем.
- Регистрация ИС в регистре информационных систем ЕСИА
- Регистрация ИС в тестовой среде
- Выполнение доработки системы для взаимодействия с ЕСИА
В данной статье будет описан только 3 пункт, предыдущие 2 – бюрократия, оставим ее за рамками Хабра. В методичке предлагают реализовать интеграцию 2 способами: SAML или OpenID Connect. Говорят,
с 01.01.2018 г. взаимодействие по протоколу SAML 2.0 больше не будет разрешено (только для действующих систем). Для подключения к ЕСИА необходимо будет использовать протокол OAuth 2.0 / OpenID Connect (сейчас доступны оба варианта).
Поэтому мы выбрали красную таблетку второй вариант. Согласно методичке, базовый сценарий аутентификации представляет собой примерно следующие шаги:
- Система-клиент отправляет в ЕСИА запрос на аутентификацию
- После успешной аутентификации ЕСИА возвращает ответ системе с кодом аутентификации.
- Используя код аутентификации система получает доступ к данным пользователя
Базовая информация
Мы реализовали сервис интеграции с ЕСИА под Windows, используя КриптоПро CSP. В теории скорее всего можно это все аккуратно упаковать в docker и положить в Linux-образные системы, оставим это на откуп читателю. Для нас же актуальным стеком был следующий:
- КриптоПро CSP, КриптоПро .Net
- Сертификат с закрытым ключом, полученный при регистрации ИС в реестре ИС ЕСИА (на пункте 1 из Введения)
Каждый запрос в ЕСИА по соображениям безопасности дополняется полем client_secret, которое формируется как открепленная подпись 4 полей запроса в формате UTF-8:
- Scope (Скоуп запроса, перечень данных, которые нужно получить из ЕСИА). Например, «fullname gender email mobile usr_org»
- Timestamp (Текущие дата и время в формате «yyyy.MM.dd HH:mm:ss +0000»)
- ClientId (Идентификатор ИС, который выдается при регистрации системы в ЕСИА)
- State (Идентификатор текущего запроса, каждый раз генерируется как Guid.NewGuid().ToString(«D»))
Тут SignatureProvider – класс для реализации работы с сертификатами, он довольно просто реализуется. Для подписи использовался алгоритм ГОСТ – импортозамещение и все такое.
Перенаправление в ЕСИА и аутентификация
Начнем пошаговую реализацию с пунктов 1-4: нам нужно перенаправить пользователя на сервис аутентификации ЕСИА (EsiaAuthUrl). В зависимости от среды (тестовая или продуктив) различается базовый адрес url – для тестовой среды это https://esia-portal1.test.gosuslugi.ru/aas/oauth2/ac. Полный адрес получается таким:
где RedirectUri – адрес, на который будет направлен ответ от ЕСИА, а ClientSecret – результат выполнения функции GetClientSecret. Остальные параметры описаны ранее.