Faq по теме интеграции с есиа / хабр

С чего всё начиналось

Среди наших заказчиков — органы государственной власти. Один из крупных проектов — это сайт администрации города Смоленска. В 2022 году в WebCanape обратились их представители с просьбой разработать сервис на сайте для приема обращений граждан. Он нужен для того, чтобы все горожане получили возможность подать заявку, жалобу, предложение по благоустройству города или решить вопросы по работе коммунальных служб. Также жители города смогут отследить статус запроса — этапы обработки и исполнение.

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

Что же может получить коммерческая организация из есиа?

Перечень доступных к получению сведений зависит от:

  1. Категории организации, подключающейся к ЕСИА
  2. Использованного способа подключения к ЕСИА

Минкомсвязь ограничивает перечень данных, доступных коммерческим организациям. Обычно разрешают получать только сведения о ФИО, реквизитах паспорта (серия и номер, кем и когда выдан), гражданстве, а также признака «подтвержденности» аккаунта и идентификатора аккаунта в ЕСИА.

Государственные организации могут получать из ЕСИА полный набор данных о пользователе и его организациях. Это следующие сведения:

  1. личные данные (ФИО, пол, дата и место рождения, гражданство)
  2. данные идентификационных документов (СНИЛС, ИНН, общегражданский и заграничный паспорт, свидетельство о рождении, водительское удостоверение, военный билет, полис ОМС)
  3. контактная информация (email, мобильный и домашний телефон, адреса регистрации и проживания)
  4. сведения о детях (личные данные и документы)
  5. сведения о транспортных средствах (номер и свидетельство о регистрации)
  6. сведения об организациях и ИП (наименование, ОГРН, ИНН/КПП, организационно-правовая форма, юридический адрес, контакты, филиалы, списки сотрудников, полномочия сотрудников, транспортные средства организации)
  7. данные учетной записи (идентификатор аккаунта в ЕСИА, признак «подтвержденности» аккаунта)
Похожее:  Почему не приходят смс сообщения с кодом подтверждения Госуслуги

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

2 ответа 2

Везде идет речь о сертификате (1 файл), о закрытом ключе (1 файл) и пароле к закрытому ключу (строка)

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

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

Файлы от заказчика содержат один файл с расширением cer

Скорей всего – это публичный сертификат. Можете попробовать его открыть. В windows должно открыться стандартное окно с информацией о сертификате.

и папку с несколькими файлами с расширением key (header.key, masks.key, primary.key и тд)

А вот тут сказать сложно. Похоже, что клиент сгенерировал ключ на флешке средствами крипто-про или наподобие, а потом просто скопировал каталог. Вот тут он не прав. Надо выяснять конкретные требования заказчика по интеграции

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

Сначала создать закрытый ключ и запрос на сертификат

в процессе генерации будет запрос на воод пароля к закрытому ключу.

Потом выпустить публичный сертификат для него

у вас будет два файла domain.key (закрытый ключ) и domain.crt (сертификат). Сертификат потом надо будет выгрузить в кабинет ЕСИА.

Как мне эти данные использовать?

Кстати, если посмотрите тесты на гитхабе, то найдете там мнемонику для тестовой организации и готовые ключи для нее. Можно будет протестировать.

Аутентификация пользователя в системе


Рекомендуемый сценарий аутентификации пользователя при интеграции по OpenID Connect 1.0 в его базовом виде происходит по следующему сценарию:

  1. Пользователь нажимает на веб-странице системы-клиента кнопку «Войти через ЕСИА».
  2. Система-клиент формирует и отправляет в ЕСИА запрос на аутентификацию и перенаправляет браузер пользователя на специальную страницу предоставления доступа.
  3. ЕСИА осуществляет аутентификацию пользователя одним из доступных способов. Если пользователь ещё не зарегистрирован в ЕСИА, то он может перейти к процессу регистрации.
  4. Когда пользователь аутентифицирован, ЕСИА сообщает пользователю, что система-клиент запрашивает данные о нем в целях проведения идентификации и аутентификации, предоставляя перечень запрашиваемых системой-клиентом сведений.
  5. Если пользователь дает разрешение на проведение аутентификации системой-клиентом, то ЕСИА выдает системе-клиенту специальный авторизационный код.
  6. Система-клиент формирует в адрес ЕСИА запрос на получение маркера идентификации, включая в запрос полученный ранее авторизационный код.
  7. ЕСИА проверяет корректность запроса (например, что система-клиент зарегистрирована в ЕСИА) и авторизационного кода и передает системе-клиенту маркер идентификации.
  8. Система-клиент извлекает идентификатор пользователя из маркера идентификации. Если идентификатор получен, а маркер проверен, то система-клиент считает пользователя аутентифицированным. После получения маркера идентификации система-клиент использует REST-сервисы ЕСИА для получения дополнительных данных о пользователе, предварительно получив соответствующий маркер доступа.

FAQ по теме интеграции с ЕСИА / Хабр

Вход на дневник

На сайте возможно получить доступ к различной цифровой информации по оценкам, домашним заданиям, расписанию уроков, различным образовательным сервисам и услугам и т.п.

Имея учётную запись, пользователь может авторизоваться на сайте дневник.ру через Госуслуги, но на данный момент услуга доступна не во всех регионах Российской Федерации.

Для успешного входа необходимо соответствовать следующим условиям:

Если вам меньше 14 лет

  • Достаточно упрощённой учётной записи на госуслугах
  • Активная привязанный аккаунт на дневнике к вашей образовательной организации
  • Должна быть связка госуслуг и дневника

Если вы старше 14 лет

  • Необходимо наличие стандартной или подтверждённой учетной записи на госуслугах
  • Привязка к вашей образовательной организации и наличие аккаунта на дневнике
  • Чтобы было совпадение ФИО и СНИЛС госуслуг с дневником

Вот список откуда можно зайти:

Пробую сделать авторизацию через Госуслуги. Порядок подключения сайта понятен. Непонятно как работать с сертификатами.

Где авторизоваться

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

Государственные сайт на которых есть возможность зайти в личный кабинет при помощи учётной записи от Госуслуги.ру:

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

Зарегистрироваться и получить доступ к электронным услугам РФ могут физические и юридические лица, организации, компании, а также иностранные граждане.

Для чего это нужно

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

Запрос токена идентификации

После успешной аутентификации на странице ЕСИА пользователь возвращается на фронтенд приложения по указанному нами адресу. ЕСИА передаёт авторизационный токен в виде get-параметра code. Этот токен необходимо передать на бэкенд и запросить с его помощью идентификационный токен пользователя.

Зачем нам есиа?

Согласно Федеральному закону № 225-ФЗ от 28.06.2021 «О внесении изменений в часть первую Гражданского кодекса Российской Федерации», многие организаций в РФ получили право проводить официальные собрания и голосования по корпоративным вопросам дистанционно.

Ранее решения с юридической силой требовали очных собраний или голосований по почте. Голосования по почте не отличаются надежностью, а собрать много руководителей со всей России в одном месте — это кошмар с точки зрения затрат.

Чтобы проводить мероприятия принятия решения дистанционно в соответствии с новым федеральным законом, необходимо предоставить возможность достоверного установления личности участников. В России это возможно через проверку доступа к верифицированному аккаунту на Госуслугах.

Как подключиться?

Чтобы подключить сайт своей организации, нужно пройти несколько довольно несложных процедур.

В общих чертах для подключения к ЕСИА нужно:

  1. Убедиться, что вашей организации можно подключать свои системы к ЕСИА.
  2. Директору организации с помощью веб-приложения «Профиль ЕСИА» зарегистрировать организацию в ЕСИА.

    FAQ по теме интеграции с ЕСИА / Хабр

    FAQ по теме интеграции с ЕСИА / Хабр

  3. Ему также нужно прикрепить к учетной записи организации ответственного сотрудника и назначить ему право доступа в специальное приложение — Технологический портал ЕСИА. Если директор не планирует делегировать дальнейшие операции своему сотруднику, то тогда он все равно должен явно предоставить доступ себе к Технологическому порталу ЕСИА.

    Назначенному ответственному сотруднику организации нужно с помощью веб-приложения «Технологический портал ЕСИА»:

  4. Зарегистрировать учетную запись системы в ЕСИА. Мнемонику для системы придумать, либо использовать существующую мнемонику точки подключения к СМЭВ, если подключаемая к ЕСИА система раньше уже была подключена к СМЭВ.
  5. Загрузить в карточку системы ее сертификат.

    Ответственному сотруднику организации нужно:

  6. Поочередно подать по электронной почте заполненные в соответствии с регламентом заявки на использование программных интерфейсов ЕСИА в тестовой и промышленной среде.

    FAQ по теме интеграции с ЕСИА / Хабр

    Разработчикам подключаемой системы:

  7. Доработать систему для подключения к ЕСИА, самостоятельно разработав код взаимодействия с ЕСИА в соответствии с действующим документом «Методические рекомендации по использованию ЕСИА» или использовать готовые решения, благо такие на рынке есть.
  8. Отладить взаимодействие в тестовой и промышленной среде ЕСИА.

FAQ по теме интеграции с ЕСИА / Хабр

Здесь нужно заметить, что с 01.01.2022 г. взаимодействие по протоколу SAML 2.0 больше не будет разрешено (только для действующих систем). Для подключения к ЕСИА необходимо будет использовать протокол OAuth 2.0 / OpenID Connect (сейчас доступны оба варианта).

Как это работает

Регистрация организации в системе ЕСИА:

Как авторизоваться

Какие криптографические стандарты должны применяться для создания ключа


Единственные разрешенные стандарты – ГОСТ Р 34.10−2022 и ГОСТ Р 34.11−2022. Сертификаты допускаются только от сертифицированных удостоверяющих центров.

Как происходит авторизация пользователей с помощью «Госуслуг»

Установить модуль авторизации через «Госуслуги» можно тремя способами: подключив в качестве библиотеки, как готовый класс или, поставив через штатный инструмент CMS.

Когда пользователь зайдёт на сайт, выберет авторизацию через «Госуслуги» и введёт свои данные, сайт обратится к ранее созданному коннектору, который соединяет его с ЕСИА. Коннектор сформирует запрос к порталу ЕСИА, в ответ на который портал пришлёт ему пакет с зашифрованными личными данными пользователя. Расшифровка данных происходит при помощи созданного ранее криптографического ключа, а затем они передаются на сайт.

Используя авторизацию через «Госуслуги», сайт может получить:

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

Удобна ли интеграция с «Госуслугами» для пользователя


Да, это удобно не только для владельцев компаний, но и для самих пользователей. Ведь, пройдя авторизацию с помощью ЕСИА, пользователь может:

Резюме

Таким образом, интеграция сайта с «Госуслугами» удобна и для пользователей, и для владельцев компаний. Сейчас «Госуслугами» пользуется 103,2 млн. человек – то есть, более, чем каждый второй житель РФ – и это количество растёт каждый год. Да, для подключения сайта к ЕСИА требуется учесть несколько технических моментов и настроить коннекторы, но в будущем использование авторизации через портал «Госуслуг» сделает взаимодействие с вашим сайтом гораздо комфортнее для пользователей и для вас.

Какой протокол используется для подключения к есиа

Используется авторизация по OAuth 2.0 и аутентификация при помощи OpenID Connect. Но при создании сервиса ЕСИА разработчики создали собственный API для безопасного приёма электронных подписей, поэтому для стандартных библиотек OAuth 2.0 и OpenID Connect требуется доработка.

Немного о проекте

На сайте в личном кабинете будет храниться вся ваша личная информация: паспортные данные, заграничный паспорт, ИНН и другие сведения, которые вы захотите занести в базу, чтобы получать как можно больше электронных услуг. Вся информация о вас надежна защищена, и вход в систему осуществляется при помощи двойной аутентификации, а для того чтобы зарегистрироваться необходимо пройти тройное подтверждение, подробнее об этом читайте в нашей статье.

Госуслуги, это только один из сайтов, входящих в состав электронного правительства, но имея лишь одну учётную запись от портала, вы спокойно сможете авторизоваться в любом из доступных сервисов.

Плагин – авторизация с помощью госуслуг (есиа)

Описание

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

В стоимость компонента включена всесторонняя методическая поддержка по интеграции c ЕСИА и полноценное сопровождение по процессу подключения к ЕСИА в целом:

  • консультируем по организационным вопросам бюрократического характера,
  • предоставляем бланки необходимых заявлений и помогаем их заполнить,
  • консультируем ваших технических специалистов при интеграции модуля.

Модуль разработан с учетом рекомендаций минкомсвязи. Подходит как для государсвенных органов власти, так и для коммерческих.

Учтены все актуальные требования методических рекомендаций.

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

Доверьтесь профессионалам! Компания RnD Soft является лидером в России по направлению интеграции с ЕСИА.

Перед приобретением данного решения обязательно проконсультируйтесь с нами по вопросам совместимости Модуля с вашей версией CMS и инфраструктурой!

8 499 110-99-73
[email protected]
Пароль на архив

Подготовка к разработке

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

Подключаться или нет?

За операторов, в связи со вступлением в действие закона о мессенджерах данный вопрос практически решен.

Напомним, в соответствии с Федеральным законом №245 «О внесении изменений в Федеральный закон «О связи» от 29 июля 2022 года, операторы связи обязаны проверять достоверность сведений об абоненте. В законе закреплен перечень способов проверки, одним из которых является использование Единого портала государственных и муниципальных услуг или информационных систем госорганов при наличии подключения к ним у операторов через СМЭВ.

Поправки в ФЗ «О связи» вступают в силу 1 июня 2022. До этого времени операторы связи смогут протестировать работу своих систем со СМЭВ и ЕСИА.
FAQ по теме интеграции с ЕСИА / Хабр

Становится ли чебурнет всё ближе? Официальных заявлений о планах сделать выход в Интернет возможным только через ЕСИА нами не найдено. На данный момент, по официальным данным, в ЕСИА зарегистрировано около 50 миллионов пользователей (физических лиц) и около 300 000 организаций.

Получение данных о пользователе

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

Создание ссылки для редиректа на страницу есиа

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

async getAuthLink(redirectLink: string) {
 const params = await this.signParams({
   redirect_uri: redirectLink,
   response_type: 'code',
   access_type: 'offline',
 })
 const authQuery = new URLSearchParams(params)
 const authURL = `${this.esiaHost}/aas/oauth2/ac`
 return `${authURL}?${authQuery}`
}

В redirectLink необходимо указать адрес страницы, на которую ЕСИА перенаправит пользователя после успешной аутентификации. Созданную ссылку возвращаем на фронтенд и перенаправляем на нее пользователя.

Стек и схема интеграции

Для интеграции мы используем:

Схема интеграции
Схема интеграции

Формирование подписи

Прежде чем разбирать все по порядку, кое о чем стоит подумать заранее. В отличие от других интеграций, запросы к ЕСИА должны сопровождаться подписью ГОСТ Р 34.10/11-2022, а не просто API key. Создать такую подпись можно с помощью утилиты КриптоПро CSP.

Для нас основная задача здесь — правильно обернуть эту утилиту в Docker, чтобы с ней можно было работать как с отдельным сервисом в рамках нашей инфраструктуры. Получившийся сервис мы выложили в открытый доступ на гитхабе. Инструкция по запуску есть в README.md.

В процесс сборки Docker образа сервиса с утилитой КриптоПро мы встроили:

Таким образом вся криптография собрана в отдельном самостоятельном компоненте, который можно использовать, когда необходимо что-нибудь подписать. Вот как это выглядит на бэкенде:

private async signParams(params: Record<string, string>) {
 const time = moment().format('YYYY.MM.DD HH:mm:ss ZZ')
 const state = uuid()
 const clientId = this.clientId
 const scope = this.scope

 const { data: { result: clientSecret } } = await axios.post<{ result: string }>(
   `${this.cryptoProServiceAddress}/cryptopro/sign`,
   { text: [scope, time, clientId, state].join('') },
 )

 return {
   ...params,
   timestamp: time,
   client_id: clientId,
   scope,
   state,
   client_secret: clientSecret.replace(/n/g, ''),
 }
}

С созданием подписей разобрались, теперь последовательно разберем, как реализовать схему выше.

Этапы реализации проекта

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

Если вы планируете заняться разработкой похожего проекта, то рекомендуем ОС Unix для web-сервера — это сэкономит ваше время и деньги заказчика.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *