...

Интеграция с Госуслугами: UML-диаграмма последовательности аутентификации через ЕСИА

UML sequence пример аутентификации через госуслуги, интеграция с ЕСИА, вход через Госуслуги, UML-диаграмма последовательности аутентификации через ЕСИА, интеграция информационных систем, обучение системных и бизнес-аналитиков, курсы системного и бизнес-анализа, EDA-архитектура BPMN, Школа прикладного бизнес-анализа Учебный Центр Коммерсант

Как выглядит аутентификация через ЕСИА: организационные и технические аспекты интеграции с порталом Госуслуг. Нормативные правила и UML-диаграмма последовательности интеграционного взаимодействия с Единой системой идентификации и аутентификации.

Организационные аспекты интеграции с ЕСИА

Сегодня на многих сайтах есть возможность войти в систему, используя регистрационные данные (логин и пароль) с внешнего сайта. Например, войти через Github, Google, ВК и пр. Такая аутентификация через стороннего провайдера – отличное архитектурное решение для смягчения рисков нарушения требований ФЗ-152 и GDPR. Ведь, если вы не храните персональные данные своих пользователей, они не утекут)). Одним их популярных провайдеров технологии единого входа (SSO, Single Sign-On) в России является Единая система идентификации и аутентификации (ЕСИА), которую часто называют Госуслугами.

Однако, это не совсем корректно. ЕПГУ (Единый портал государственных и муниципальных услуг) – это федеральная государственная информационная система, которая обеспечивает гражданам, предпринимателям и юрлицам доступ к сведениям о государственных и муниципальных учреждениях и услугах, оказываемых ими в электронном виде. А вход в эту систему, как и на многие другие сайты государственных, муниципальных и даже коммерческих организаций, доступен в т.ч. через ЕСИА.

Как я уже отметила выше, такой способ аутентификации становится все более популярным. Например, с 1 апреля 2021 года по 1 июля 2022 года Правительство РФ даже запустило эксперимент по подключению к ЕСИА крупных соцсетей и сайтов по продаже автомобилей, товаров, услуг, аренде имущества, поиску работы и пр. (Постановление Правительства Российской Федерации от 27.03.2021 № 453). Например, сегодня вход через Госуслуги с использованием ЕСИА работает на сайте довольно известной страховой компании, маркетплейсе объявлений по продаже недвижимости и на веб-ресурсах многих других коммерческих компаний.

Вероятно, эксперимент прошел успешно, поскольку весной 2003 года вышло Постановление Правительства Российской Федерации от 28.04.2023 № 672, которое определяет перечень случаев и порядок интеграции и взаимодействия сервисов размещения объявлений с ЕСИА и ЕПГУ. В этом документе описаны условия интеграции и взаимодействия с ЕСИА. Этих условий довольно много: регистрация сайта в реестре сервисов СМИ, отсутствие фактов привлечения владельца ресурса по уголовным и административным статьям за последние несколько лет, и еще 5 различных условий.

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

После этого для своей системы надо сгенерировать закрытый ключ и сертификат открытого ключа, которые потребуются идентификации ИС при взаимодействии с ЕСИА. Этот сертификат ключа понадобится при подключении системы к тестовой среде ЕСИА. В тестовой среде тестируется работа ПО, которое как раз взаимодействует с Единой системой идентификации и аутентификации. Такое ПО можно купить или реализовать самостоятельно. После тестирования и отладки пишется заявка на доступ к промышленному контуру, чтобы предоставлять своим пользователям возможность входа на сайт через учетные данные государственного провайдера. Далее посмотрим на UML-диаграмме последовательности, как это выглядит с технической точки зрения.

UML для бизнес-аналитика: основы ООП и разработка моделей

Код курса
BUML
Ближайшая дата курса
6 июня, 2024
Продолжительность
8 ак.часов
Стоимость обучения
18 000 руб.

UML-диаграмма последовательности

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

  1. Пользователь выбирает вход в систему через Госуслуги;
  2. Система создает ссылку для перехода в ЕСИА;
  3. Система передает ссылку пользователю;
  4. Пользователь вводит свои учетные данные (логин и пароль) для входа в ЕСИА;
  5. ЕСИА ищет пользователя по введенному имени пользователя;
  6. Если пользователь найден, ЕСИА проверяет введенный пароль;
  7. Если пароль верный, ЕСИА создает токен аутентификации (AuthToken) и передает его пользователю;
  8. Пользователь передает токен аутентификации системе;
  9. Система запрашивает у ЕСИА идентификатор пользователя по токену аутентификации;
  10. ЕСИА ищет пользователя по токену аутентификации и передает идентификатор пользователя (UserID) системе;
  11. Система определяет пользователя по токену аутентификации и идентификатору пользователя;
  12. ЕСИА ищет пользователя по токену аутентификации и идентификатору пользователя и передает данные пользователя системе;
  13. Система сообщает пользователю об успешной авторизации;
  14. Если пароль неверный, ЕСИА сообщает пользователю об ошибке;
  15. Если пользователь не найден, ЕСИА сообщает пользователю об ошибке.

На UML-диаграмме sequence эта последовательность действий будет выглядеть так:

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

Эта диаграмма создана в 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
Ближайшая дата курса
20 мая, 2024
Продолжительность
12 ак.часов
Стоимость обучения
27 000 руб.

Узнайте больше про UML-диаграммы и технологии интеграции информационных систем на моих курсах в Школе прикладного бизнес-анализа на базе нашего лицензированного учебного центра обучения и повышения квалификации системных и бизнес-аналитиков в Москве:

 

Я даю свое согласие на обработку персональных данных и соглашаюсь с политикой конфиденциальности.

Добавить комментарий

Поиск по сайту

Напишите нам, мы онлайн!