Как выглядит аутентификация через ЕСИА: организационные и технические аспекты интеграции с порталом Госуслуг. Нормативные правила и UML-диаграмма последовательности интеграционного взаимодействия с Единой системой идентификации и аутентификации.
Организационные аспекты интеграции с ЕСИА
Сегодня на многих сайтах есть возможность войти в систему, используя регистрационные данные (логин и пароль) с внешнего сайта. Например, войти через Github, Google, ВК и пр. Такая аутентификация через стороннего провайдера – отличное архитектурное решение для смягчения рисков нарушения требований ФЗ-152 и GDPR. Ведь, если вы не храните персональные данные своих пользователей, они не утекут)). Одним их популярных провайдеров технологии единого входа (SSO, Single Sign-On) в России является Единая система идентификации и аутентификации (ЕСИА), которую часто называют Госуслугами.
Однако, это не совсем корректно. ЕПГУ (Единый портал государственных и муниципальных услуг) – это федеральная государственная информационная система, которая обеспечивает гражданам, предпринимателям и юрлицам доступ к сведениям о государственных и муниципальных учреждениях и услугах, оказываемых ими в электронном виде. А вход в эту систему, как и на многие другие сайты государственных, муниципальных и даже коммерческих организаций, доступен в т.ч. через ЕСИА.
Как я уже отметила выше, такой способ аутентификации становится все более популярным. Например, с 1 апреля 2021 года по 1 июля 2022 года Правительство РФ даже запустило эксперимент по подключению к ЕСИА крупных соцсетей и сайтов по продаже автомобилей, товаров, услуг, аренде имущества, поиску работы и пр. (Постановление Правительства Российской Федерации от 27.03.2021 № 453). Например, сегодня вход через Госуслуги с использованием ЕСИА работает на сайте довольно известной страховой компании, маркетплейсе объявлений по продаже недвижимости и на веб-ресурсах многих других коммерческих компаний.
Вероятно, эксперимент прошел успешно, поскольку весной 2003 года вышло Постановление Правительства Российской Федерации от 28.04.2023 № 672, которое определяет перечень случаев и порядок интеграции и взаимодействия сервисов размещения объявлений с ЕСИА и ЕПГУ. В этом документе описаны условия интеграции и взаимодействия с ЕСИА. Этих условий довольно много: регистрация сайта в реестре сервисов СМИ, отсутствие фактов привлечения владельца ресурса по уголовным и административным статьям за последние несколько лет, и еще 5 различных условий.
Помимо этого, организационный этап интеграции с ЕСИА предполагает регистрацию сервиса в технологическом портале этой системы с занесением в реестр ИС, взаимодействующих с ЕСИА. Для этого нужна учетная запись юрлица на портале Госуслуг с квалифицированной электронной подписью.
После этого для своей системы надо сгенерировать закрытый ключ и сертификат открытого ключа, которые потребуются идентификации ИС при взаимодействии с ЕСИА. Этот сертификат ключа понадобится при подключении системы к тестовой среде ЕСИА. В тестовой среде тестируется работа ПО, которое как раз взаимодействует с Единой системой идентификации и аутентификации. Такое ПО можно купить или реализовать самостоятельно. После тестирования и отладки пишется заявка на доступ к промышленному контуру, чтобы предоставлять своим пользователям возможность входа на сайт через учетные данные государственного провайдера. Далее посмотрим на UML-диаграмме последовательности, как это выглядит с технической точки зрения.
DDD, ООП и UML для аналитика
Код курса
BUML
Ближайшая дата курса
31 марта, 2025
Продолжительность
22 ак.часов
Стоимость обучения
48 000 руб.
UML-диаграмма последовательности
Последовательность действий по аутентификации пользователя с учетными данными ЕСИА можно представить следующим образом:
- Пользователь выбирает вход в систему через Госуслуги;
- Система создает ссылку для перехода в ЕСИА;
- Система передает ссылку пользователю;
- Пользователь вводит свои учетные данные (логин и пароль) для входа в ЕСИА;
- ЕСИА ищет пользователя по введенному имени пользователя;
- Если пользователь найден, ЕСИА проверяет введенный пароль;
- Если пароль верный, ЕСИА создает токен аутентификации (AuthToken) и передает его пользователю;
- Пользователь передает токен аутентификации системе;
- Система запрашивает у ЕСИА идентификатор пользователя по токену аутентификации;
- ЕСИА ищет пользователя по токену аутентификации и передает идентификатор пользователя (UserID) системе;
- Система определяет пользователя по токену аутентификации и идентификатору пользователя;
- ЕСИА ищет пользователя по токену аутентификации и идентификатору пользователя и передает данные пользователя системе;
- Система сообщает пользователю об успешной авторизации;
- Если пароль неверный, ЕСИА сообщает пользователю об ошибке;
- Если пользователь не найден, ЕСИА сообщает пользователю об ошибке.
На UML-диаграмме sequence эта последовательность действий будет выглядеть так:
Эта диаграмма создана в PlantUML с помощью следующего скрипта:
@startuml title Аутентификация и авторизация через ЕСИА actor Пользователь participant Система participant ЕСИА autonumber Пользователь -> Система: войти через Госуслуги() activate Система Система -> Система: создать ссылку перехода в ЕСИА() Система --> Пользователь: ссылка перехода в ЕСИА Пользователь -> ЕСИА: login(username, password) activate ЕСИА ЕСИА -> ЕСИА: найти пользователя (username) alt пользователь найден ЕСИА -> ЕСИА: проверить пароль (password) alt пароль верный ЕСИА -> ЕСИА: сформировать токен аутентификации() ЕСИА --> Пользователь: AuthToken Пользователь -> Система: передать токен аутентификации() Система -> ЕСИА: запросить ID пользователя(AuthToken) ЕСИА -> ЕСИА: найти пользователя(AuthToken) ЕСИА --> Система: UserID Система -> ЕСИА: определить пользователя(AuthToken, UserID) ЕСИА -> ЕСИА: найти пользователя(AuthToken, UserID) ЕСИА --> Система: данные пользователя Система --> Пользователь: сообщение об успешной авторизации else ЕСИА --> Пользователь: сообщение о том, что пароль неверен end alt else ЕСИА --> Пользователь: сообщение о том, что такого пользователя нет end alt @enduml
Подобная аутентификация через ЕСИА может пригодиться банкам или страховым компаниям, например, чтобы получить какие-то сведения о клиентах с портала Госуслуг. Все технические аспекты реализации этой последовательности подробно описаны в Методических рекомендациях по использованию Единой системы идентификации и аутентификации. Разумеется, для практического использования эти Методические рекомендации Министерства цифрового развития, связи и массовых коммуникаций РФ придется прочитать очень внимательно (и не раз)). Документ довольно объемный (166 страниц) и включает типовые сценарии, примеры запросов и кода для поддерживаемых SSO-механизмов стандарта SAML 2.0 и модели OpenID Connect 1.0. SAML — это XML-протокол для реализации SSO, а OpenID Connect – это расширение протокола OAuth 2.0. Чем они отличаются, я расскажу в другой раз.
Основы архитектуры и интеграции информационных систем
Код курса
OAIS
Ближайшая дата курса
3 марта, 2025
Продолжительность
22 ак.часов
Стоимость обучения
48 000 руб.
Узнайте больше про UML-диаграммы и технологии интеграции информационных систем на моих курсах в Школе прикладного бизнес-анализа на базе нашего лицензированного учебного центра обучения и повышения квалификации системных и бизнес-аналитиков в Москве: