При выполнении очередного госзаказа наша команда столкнулась с проблемой интеграции сайта с ЕСИА. Инструкции по решению этой задачи в сети нет, кроме информации в официальных документах МинКомСвязи (примерно 300 страниц в трех регламентах). Также есть компании, которые оказывают платные услуги по интеграции ЕСИА. Мы реализовали, описали процесс интеграции и решили поделиться с сообществом habrahabr.
- Что такое ЕСИА
- Что такое ЕСИА
- Принципы работы пользовательской идентификации
- Как авторизоваться на площадке
- Вход в личный кабинет для частных лиц
- Вход с использованием номера телефона
- Авторизация через СНИЛС
- С использованием ЭЦП
- Какие функциональные возможности дает идентификация
- Какие существуют виды учетной записи
- Какие возможности приобретают зарегистрированные пользователи
- В чем преимущества подтвержденной учетной записи
- Зачем нам ЕСИА?
- Стек и схема интеграции
- Формирование подписи
- Создание ссылки для редиректа на страницу ЕСИА
- Получение авторизационного токена ЕСИА
- Запрос токена идентификации
- Получение данных о пользователе
- Полезные материалы по теме
- Что же может получить коммерческая организация из ЕСИА?
- Как подключиться?
- Аутентификация пользователя в системе
- Подключаться или нет?
- Как информационная система работает с ЕСИА
- Какие возможности открывает такая идентификация
- Прохождение проверки при входе через ЕСИА
- Как организации подключиться к ЕСИА
- Как войти на сайт через ЕСИА?
- Учётная запись ЕСИА
- Регистрация на портале Госуслуг
- Инструкция по авторизации Пользователей через портал Госуслуг (ЕСИА)
- Возможные ошибки
- Завершение авторизованной сессии
Что такое ЕСИА
ЕСИА – система идентификации и аутентификации пользователей государственных услуг.
С момента создания портала государственных услуг жизнь российских граждан заметно облегчилась. Люди смогли обращаться в различные инстанции напрямую через интернет.
Для доступа к всероссийскому порталу Госуслуг была разработана единая система идентификации пользователей. Впоследствии её возможности расширились на региональные порталы, электронные приложения правительства РФ, сайты образовательных учреждений, системы поиска вакансий и т. д.
Что такое ЕСИА
Единая Система Идентификации и Аутентификации — российская информациия система, обеспечивающая доступ (регистрация, аутентификация) на сайты государтсвенных структур и некоторых коммерческих организаций. Подробнее на википедии
В процессе интеграции ЕСИА, система сможет отправлять запрос на ЕСИА и при успешной авторизации получать в качестве ответа данные пользователя
Сценарий авторизации выглядит примерно так:
- Пользователь на сайте, на котором внедряется ЕСИА, в личном кабинете нажимает на кнопку «Войти через ГосУслуги»
- Система переадресует на сайт ЕСИА
- Пользователь вводит свои логин и пароль на сайте ЕСИА
- При успешной авторизации ЕСИА возвращает пользователя обратно на сайт и по защищенному протоколу передает его личные данные
Единая система идентификации и авторизации (ЕСИА) – это единственный способ верифицировать личность пользователя. Если продукт работает с деньгами, решает юридические задачи или работает с медицинскими данными, без интеграции с ЕСИА не обойтись. Рассказываем, что нужно знать, чтобы работать с этой инфраструктурой.
ЕСИА появилась в 2010 году и изначально использовалась для авторизации на Портале госуслуг. За прошедшее время возможности системы постоянно развивались, и сегодня коммерческие организации используют её, чтобы связывать учётные записи пользователя с их оффлайн-личностью.
То есть если компании нужно удостовериться, что по ту сторону экрана действительно тот человек, которым представился пользователь, ЕСИА предоставляет такую возможность. И самое главное – эта идентификация имеет юридическую значимость.
Cetera выполняет интеграцию с ЕСИА только в составе комплексных проектов по созданию, поддержке и развитию личных кабинетов.
Принципы работы пользовательской идентификации
Чтобы получить доступ к полному пакету услуг после прохождения регистрации, нужно пройти идентификацию. Новые пользователи чаще всего не знают, что такое авторизация и как ее пройти через ЕСИА на сайте. ЕСИА – это единственный возможный способ повысить уровень созданной учетной записи. В ситуации, когда частное или юридическое лицо работает с важными документами, денежными оборотами, без использования ЕСИА обойтись невозможно. Чтобы пройти успешную интеграцию, важно выполнить несколько моментов.
Первоначально предполагалось, что ЕСИА будет использоваться исключительно для идентификации и авторизации на портале Госуслуги. Система появилась в 2010-ом году. Система постоянно развивалась, и ее стали использовать коммерческие организации, чтобы связать учетные записи с личностью в офлайн режиме.
Как авторизоваться на площадке
Новым пользователям нужно предварительно пройти регистрацию, выполняя несколько шагов:
• перейти на официальный сайт Госуслуг и нажать на кнопку «регистрация»;
• в стандартной форме необходимо указать данные: ФИО, номер телефона, адрес электронной почты, адрес; далее подтвердить ввод данных;
• указать в соответствующем поле код подтверждения, отправленный на номер мобильного.
Чтобы у начинающих пользователей не возникало вопросов, стоит подробно разобрать данный вопрос.
Вход в личный кабинет для частных лиц
После прохождения регистрации пользователю становится доступно посещение государственных и частных учреждений: налоговой инспекции, ПФР, ГИС, ЖКХ.
Вход с использованием номера телефона
Авторизоваться в системе можно через стандартный веб-ресурс или посредством мобильного приложения. Для этого необходимо в специальную форму для входа вписать номер телефона и созданный пароль.
Авторизация через СНИЛС
Альтернативный способ авторизации через Госуслуги. Номер СНИЛС состоит из 11 цифр. Пароль остается идентичным, как и в случае со входом по номеру телефона. При этом разницы, каким образом авторизоваться на портале, не существует. При использовании СНИЛС встречаются следующие трудности:
• при регистрации была допущена ошибка в номере;
• СНИЛС не действителен;
• если была смена фамилии, а СНИЛС не был изменен.
Если данные аспекты отсутствуют, то СНИЛС возможно использовать для авторизации.
С использованием ЭЦП
Является наиболее безопасным способом при авторизации. Данный вариант могут использовать не только физические, но и юридические лица. Подпись значительно упрощает процесс работы на портале Госуслуг. Но предварительно нужно создать электронную цифровую подпись и установить специальное программное обеспечение, чтобы распознавался ключ.
Чтобы авторизоваться в системе этим методом, рекомендуется выполнить следующие действия:
• среди имеющегося списка выбрать ЭЦП;
• система автоматически запросит диск, карту или флешку, либо другой носитель, на котором должна быть записана информация о ключе;
• как только идентификация пройдена, пользователю будут доступны функциональные возможности кабинета.
Какие функциональные возможности дает идентификация
Авторизация через Госуслуги дает возможность использования личного кабинета. В зависимости от того, была ли пройдена идентификация, предлагается набор функциональных возможностей. При прохождении полной процедуры пользователи могут:
• подписывать документы в электронном формате, иметь доступ к конфиденциальным и медицинским данным;
• заполнять анкеты и заявления с автоматическим проставлением персональных данных: ФИО, сведения из паспорта, ИНН, информация о детях. При этом нет необходимости каждый раз проверять достоверность указанных данных;
• будет полезен личный кабинет не только для частных пользователей, но и для юридических лиц;
• для частных пользователей идентификация является гарантом хранения данных в конфиденциальном порядке. Также не потребуется запоминать пароли.
Какие существуют виды учетной записи
Когда пользователь регистрируется на портале Госуслуг, появляется личный кабинет, где можно оплачивать судебные задолженности и штрафы, получать справки в электронном формате, что позволяет избежать очередей в МФЦ. Уровень учетной записи зависит от того, какое количество информации будет указано в анкете. Чем подробнее будет заполнена анкета, тем больше функциональных возможностей будет предоставлено:
• при прохождении формальной регистрации, где необходимо указать ФИО, мобильный номер телефона и адрес электронной почты, учетной записи будет присвоен статус Упрощенной;
• стандартная учетная запись присваивается при указании в личном кабинете паспортных данных и СНИЛС;
• подтвержденная запись имеет наиболее высокий статус. Для этого идентификацию можно пройти через онлайн-банк Сбербанка, ТКС, Альфа-Банка или ВТБ, либо лично посетить отделение МФЦ.
Нередко пользователь сталкивается с ситуацией, когда пароль от личного кабинета может быть утерян. Восстановление данных – это довольно простая процедура. Под формой входа на главной странице есть функция «забыли пароль». Системой автоматически будет предложено несколько вариантов: с использованием мобильного номера телефона, посредством ввода данных из паспорта, СНИЛС, ИНН.
После того, как информация будет указана, пользователю, зарегистрированному в системе, будет направлено смс сообщение с одноразовым паролем для входа. Далее нужно перейти в настройки и задать новую комбинацию для входа. В среднем, процедура занимает 15-20 минут и не предполагает каких-либо сложностей.
Какие возможности приобретают зарегистрированные пользователи
Сервис Госуслуги дает широкие функциональные возможности:
• поставить бронь на роспись в ЗАГСе, запросить копию свидетельства о рождении;
• отправить заявку на оформление нового загранпаспорта;
• поставить транспортное средство на учет;
• получить справку о несудимости;
• поставить ребенка на очередь в детский сад;
• оплачивать услуги ЖКХ;
• запрашивать выписки из налоговой, ПФР.
Большинство услуг возможно получить в дистанционном режиме, не выходя из дома.
В чем преимущества подтвержденной учетной записи
Если пользователь планирует использовать все функции, которые предоставляет портал Госуслуг, то прохождение идентификации является обязательным условием. Граждане с анонимной учетной записью не могут воспользоваться никакими функциями. Только при предоставлении полного пакета документов возможно прохождение идентификации.
За счет прохождения регистрации больше не нужно стоять в очередях, чтобы оплатить пошлину или штрафы. Еще одно важное преимущество – это получение привлекательных скидок при оплате через ресурс. Пенсионеры могут самостоятельно контролировать поступления, проверять начисления, а также узнавать о самых последних нововведениях, принятых в государственных проектах.
Привет, Хабр! В одном из постов блога мой коллега Иван писал о нашем блокчейн-сервисе для онлайн-голосований WE.Vote. Он подробно разобрал, как работает WE.Vote с точки зрения технологий. Но чтобы сервисы удаленного голосования можно было использовать для принятия официальных решений юрлиц, не хватает еще одного важного компонента — достоверной верификации участников. В России для этого можно провести интеграцию с ЕСИА (Единой Системой Идентификации и Аутентификации) — проще говоря, с Госуслугами. Интеграция эта заметно отличается от интеграции с другими OAuth2-сервисами, как, например, Google или VK. В этом посте мы постараемся помочь тем, кто захочет интегрировать ЕСИА в свой сервис через стек, подобный нашему, а также дадим несколько полезных ссылок по ЕСИА в принципе.
Зачем нам ЕСИА?
Согласно Федеральному закону № 225-ФЗ от 28.06.2021 «О внесении изменений в часть первую Гражданского кодекса Российской Федерации», многие организаций в РФ получили право проводить официальные собрания и голосования по корпоративным вопросам дистанционно.
Ранее решения с юридической силой требовали очных собраний или голосований по почте. Голосования по почте не отличаются надежностью, а собрать много руководителей со всей России в одном месте — это кошмар с точки зрения затрат.
Чтобы проводить мероприятия принятия решения дистанционно в соответствии с новым федеральным законом, необходимо предоставить возможность достоверного установления личности участников. В России это возможно через проверку доступа к верифицированному аккаунту на Госуслугах.
Стек и схема интеграции
Для интеграции мы используем:
Typescript, ReactJS, NestJS
КриптоПро CSP 4
Формирование подписи
Прежде чем разбирать все по порядку, кое о чем стоит подумать заранее. В отличие от других интеграций, запросы к ЕСИА должны сопровождаться подписью ГОСТ Р 34.10/11-2012, а не просто API key. Создать такую подпись можно с помощью утилиты КриптоПро CSP. Для нас основная задача здесь — правильно обернуть эту утилиту в Docker, чтобы с ней можно было работать как с отдельным сервисом в рамках нашей инфраструктуры. Получившийся сервис мы выложили в открытый доступ на гитхабе. Инструкция по запуску есть в README.md.
В процесс сборки Docker образа сервиса с утилитой КриптоПро мы встроили:
Установку утилиты КриптоПро СSP 4 из .deb пакета
Установку лицензии КриптоПро
Загрузку корневого сертификата тестовой или основной среды ЕСИА
Загрузку пользовательского сертификата с PIN кодом
REST-сервер с методом, позволяющим создавать подписи
Таким образом вся криптография собрана в отдельном самостоятельном компоненте, который можно использовать, когда необходимо что-нибудь подписать. Вот как это выглядит на бэкенде:
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, ''),
}
}
С созданием подписей разобрались, теперь последовательно разберем, как реализовать схему выше.
Создание ссылки для редиректа на страницу ЕСИА
Все начинается с того, что пользователь решает пройти авторизацию через ЕСИА. Создаем на бэкенде ссылку для перехода с использованием нашего инструмента формирования подписей.
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 необходимо указать адрес страницы, на которую ЕСИА перенаправит пользователя после успешной аутентификации. Созданную ссылку возвращаем на фронтенд и перенаправляем на нее пользователя.
Получение авторизационного токена ЕСИА
Запрос токена идентификации
После успешной аутентификации на странице ЕСИА пользователь возвращается на фронтенд приложения по указанному нами адресу. ЕСИА передаёт авторизационный токен в виде get-параметра code. Этот токен необходимо передать на бэкенд и запросить с его помощью идентификационный токен пользователя.
async getTokens(code: string) {
try {
const params = await this.signParams({
grant_type: 'authorization_code',
token_type: 'Bearer',
redirect_uri: 'no',
code,
})
const authURL = `${this.host}/aas/oauth2/te`
const authQuery = new URLSearchParams(params)
const { data: tokens } = await axios.post(`${authURL}?${authQuery}`)
return {
idToken: tokens.id_token,
accessToken: tokens.access_token,
refreshToken: tokens.refresh_token,
}
} catch (e) {
const status = e.response ? e.response.status : 500
const message = e.response ? e.response.data.error_description : e.message
throw new HttpException('Failed to get auth tokens: ' + message, status)
}
}
Получение данных о пользователе
Идентификационный токен пользователя необходимо проверить с помощью публичного RSA ключа от ЕСИА и получить из него id пользователя. С помощью этого id и accessToken, который мы получили в предыдущем шаге, мы уже наконец можем запросить персональные данные пользователя.
getUserIdFromToken(idToken: string) {
const decodedIdToken = verify(idToken, this.esiaPublicKey, {
algorithms: ['RS256'],
audience: 'WE_VOTE',
}) as EsiaParsedToken
return decodedIdToken['urn:esia:sbj']['urn:esia:sbj:oid']
}
async getUserInfo(tokens: EsiaTokens) {
const { idToken, accessToken } = tokens
const oId = this.getUserIdFromToken(idToken)
const [{ data: mainInfo }, { data: contactsInfo }] = await Promise.all([
axios.get(`${this.esiaHost}/rs/prns/${oId}`, {
headers: {
Authorization: `Bearer ${accessToken}`,
},
}),
axios.get(`${this.esiaHost}/rs/prns/${oId}/ctts?embed=(elements)`, {
headers: {
Authorization: `Bearer ${accessToken}`,
},
}),
])
const email = contactsInfo.elements.find(({ type }: { type: string }) => type === 'EML')
return {
id: oId,
firstName: mainInfo.firstName,
lastName: mainInfo.lastName,
surName: mainInfo.middleName,
trusted: mainInfo.trusted,
email: email ? {
value: email.value.toLowerCase(),
verified: email.vrfStu === 'VERIFIED',
} : null,
}
}
На этом шаге мы уже имеем все необходимые данные о пользователе. Остается только занести их в свою систему и закончить авторизацию.
Полный код интеграционного модуля на бэкенде
import { HttpException } from '@nestjs/common'
import * as moment from 'moment'
import { v4 as uuid } from 'uuid'
import { URLSearchParams } from 'url'
import axios from 'axios'
import { verify } from 'jsonwebtoken'
type EsiaTokens = {
idToken: string,
accessToken: string,
}
type EsiaParsedToken = {
'urn:esia:sbj': {
'urn:esia:sbj:oid': string,
},
}
export class EsiaApiService {
private readonly clientId = 'WE_VOTE'
private readonly scope = ['openid', 'email', 'fullname'].join(' ')
constructor(
private readonly esiaHost: string, // 'https://esia-portal1.test.gosuslugi.ru' или 'https://esia.gosuslugi.ru'
private readonly esiaPublicKey: string, // можно взять из http://esia.gosuslugi.ru/public/esia.zip
private readonly cryptoProServiceAddress: string, // адрес сервиса по созданию подписей e.g 'http://127.0.0.1:3037'
) {
}
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}`
}
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, ''),
}
}
async getTokens(code: string) {
try {
const params = await this.signParams({
grant_type: 'authorization_code',
token_type: 'Bearer',
redirect_uri: 'no',
code,
})
const authURL = `${this.esiaHost}/aas/oauth2/te`
const authQuery = new URLSearchParams(params)
const { data: tokens } = await axios.post(`${authURL}?${authQuery}`)
return {
idToken: tokens.id_token,
accessToken: tokens.access_token,
refreshToken: tokens.refresh_token,
}
} catch (e) {
const status = e.response ? e.response.status : 500
const message = e.response ? e.response.data.error_description : e.message
throw new HttpException('Failed to get auth tokens: ' + message, status)
}
}
getUserIdFromToken(idToken: string) {
const decodedIdToken = verify(idToken, this.esiaPublicKey, {
algorithms: ['RS256'],
audience: this.clientId,
}) as EsiaParsedToken
return decodedIdToken['urn:esia:sbj']['urn:esia:sbj:oid']
}
async getUserInfo(tokens: EsiaTokens) {
const { idToken, accessToken } = tokens
const oId = this.getUserIdFromToken(idToken)
const [{ data: mainInfo }, { data: contactsInfo }] = await Promise.all([
axios.get(`${this.esiaHost}/rs/prns/${oId}`, {
headers: {
Authorization: `Bearer ${accessToken}`,
},
}),
axios.get(`${this.esiaHost}/rs/prns/${oId}/ctts?embed=(elements)`, {
headers: {
Authorization: `Bearer ${accessToken}`,
},
}),
])
const email = contactsInfo.elements.find(({ type }: { type: string }) => type === 'EML')
return {
id: oId,
firstName: mainInfo.firstName,
lastName: mainInfo.lastName,
surName: mainInfo.middleName,
trusted: mainInfo.trusted,
email: email ? {
value: email.value.toLowerCase(),
verified: email.vrfStu === 'VERIFIED',
} : null,
}
}
}
Надеюсь, статья оказалась для вас полезной. Желаю, чтобы у вас все получилось без особых проблем!
Полезные материалы по теме
Изменения в законодательстве, начинающие действовать с начала 2018 года и включающие в себя самые разнообразные области нашей с вами жизнедеятельности (закон о мессенджерах, о телемедицине и т.д.) объединяет одно – все большее проникновение информационных сервисов в нашу жизнь. Естественным является факт, что как и в реальной жизни, для получения человеком какой-либо услуги ему требуется пройти идентификацию. В офф-лайновой жизни средством авторизации является паспорт гражданина, а в он-лайн сфере таковым средством правительство решило признать ЕСИА — единая система идентификации и аутентификации.
Вот о ней и хотелось бы поговорить. Это ознакомительная статья, можно сказать ликбез. Для знакомства людей, которые еще не знают, что при необходимости можно использовать ЕСИА у себя в проектах и идти в ногу со временем вместе с государством. И так, что же это за зверь и как его рассматривает правительство.
Минкомсвязь России в рамках инфраструктуры электронного правительства создала и развивает Единую систему идентификации и аутентификации (ФГИС ЕСИА), цель которой — упорядочить и централизовать процессы регистрации, идентификации, аутентификации и авторизации пользователей.
1. Предоставляет информационным системам решение по достоверной идентификации пользователей (физических и юридических лиц, органов государственной власти).
Достоверность достигается за счет того, что:
- регистрация лица в ЕСИА сопряжена с проверкой значимых для удостоверения личности критериев;
- ЕСИА обеспечивает защиту размещённой в ней информации в соответствии с законодательством Российской Федерации.
2. Является ориентированной на пользователя и предоставляет возможности:
- идентификации и аутентификации с использованием единой учетной записи и широкого спектра поддерживаемых методов аутентификации при доступе к различным информационным системам органов государственной власти;
- управления своими персональными данными, размещенными в ЕСИА, и контроля над их предоставлением в информационные системы органов государственной власти.
Основные функциональные возможности ЕСИА:
- идентификация и аутентификация пользователей, в том числе:
- однократная аутентификация, которая дает пользователям ЕСИА следующее преимущество: пройдя процедуру идентификации и аутентификации в ЕСИА, пользователь может в течение одного сеанса работы обращаться к любым информационным системам, использующим ЕСИА, при этом повторная идентификация и аутентификация не требуется;
- поддержка различных методов аутентификации: по паролю, по электронной подписи, а также двухфакторная аутентификация (по постоянному паролю и одноразовому паролю, высылаемому в виде sms-сообщения);
- поддержка уровней достоверности идентификации пользователя (упрощённая учетная запись, стандартная учетная запись, подтвержденная учетная запись).
- ведение идентификационных данных, а именно – ведение регистров физических, юридических лиц, органов и организаций, должностных лиц органов и организаций и информационных систем;
- авторизация уполномоченных лиц органов государственной власти при доступе к следующим функциям ЕСИА:
- ведение регистра должностных лиц органов власти в ЕСИА;
- ведение справочника полномочий в отношении информационной системы и предоставление пользователям ЕСИА (зарегистрированным в ЕСИА как должностные лица) полномочий по доступу к ресурсам систем, зарегистрированным в ЕСИА;
- делегирование вышеуказанных полномочий уполномоченным лицам нижестоящих органов государственной власти.
- ведение и предоставление информации о полномочиях пользователей в отношении информационных систем, зарегистрированных в ЕСИА.
В данный момент подключить систему к ЕСИА может любая государственная организация, а также отдельные виды коммерческих организаций: страховые компании, кредитные организации (банки), профессиональные участники рынка ценных бумаг, негосударственные пенсионные фонды, микрофинансовые и микрокредитные организации, а также операторы связи.
Законодательство со временем корректируется, и вместе с ним расширяется перечень организаций, которым разрешено подключиться к ЕСИА.
Люди, не знакомые с ситуацией, при слове «государственная» сразу представляют себе каналы связи, которые необходимо защитить при помощи отечественных криптоалгоритмов со всеми вытекающими затратами, лицензиями и оборудованием. Но, как бы смешно это не было (или печально), главная площадка для идентификации в стране – работает с иностранной криптографией (а куда деваться).
Поэтому, если вы хотите воспользоваться услугами данной платформы, то можете размещать свои ресурсы где у годно в нашей огромной стране, в том числе и в нашей инфраструктуре Cloud4Y.
Что же может получить коммерческая организация из ЕСИА?
Перечень доступных к получению сведений зависит от:
- Категории организации, подключающейся к ЕСИА
- Использованного способа подключения к ЕСИА
Минкомсвязь ограничивает перечень данных, доступных коммерческим организациям. Обычно разрешают получать только сведения о ФИО, реквизитах паспорта (серия и номер, кем и когда выдан), гражданстве, а также признака «подтвержденности» аккаунта и идентификатора аккаунта в ЕСИА.
Государственные организации могут получать из ЕСИА полный набор данных о пользователе и его организациях. Это следующие сведения:
- личные данные (ФИО, пол, дата и место рождения, гражданство)
- данные идентификационных документов (СНИЛС, ИНН, общегражданский и заграничный паспорт, свидетельство о рождении, водительское удостоверение, военный билет, полис ОМС)
- контактная информация (email, мобильный и домашний телефон, адреса регистрации и проживания)
- сведения о детях (личные данные и документы)
- сведения о транспортных средствах (номер и свидетельство о регистрации)
- сведения об организациях и ИП (наименование, ОГРН, ИНН/КПП, организационно-правовая форма, юридический адрес, контакты, филиалы, списки сотрудников, полномочия сотрудников, транспортные средства организации)
- данные учетной записи (идентификатор аккаунта в ЕСИА, признак «подтвержденности» аккаунта)
Сведения предоставляются в том объеме, в каком они заполнены пользователем в ЕСИА, а также при условии согласия пользователя на предоставления этих сведений.
Как подключиться?
Чтобы подключить сайт своей организации, нужно пройти несколько довольно несложных процедур.
В общих чертах для подключения к ЕСИА нужно:
- Убедиться, что вашей организации можно подключать свои системы к ЕСИА.
- Директору организации с помощью веб-приложения «Профиль ЕСИА» зарегистрировать организацию в ЕСИА.
- Ему также нужно прикрепить к учетной записи организации ответственного сотрудника и назначить ему право доступа в специальное приложение — Технологический портал ЕСИА. Если директор не планирует делегировать дальнейшие операции своему сотруднику, то тогда он все равно должен явно предоставить доступ себе к Технологическому порталу ЕСИА.
Назначенному ответственному сотруднику организации нужно с помощью веб-приложения «Технологический портал ЕСИА»:
- Зарегистрировать учетную запись системы в ЕСИА. Мнемонику для системы придумать, либо использовать существующую мнемонику точки подключения к СМЭВ, если подключаемая к ЕСИА система раньше уже была подключена к СМЭВ.
- Загрузить в карточку системы ее сертификат.
Ответственному сотруднику организации нужно:
- Поочередно подать по электронной почте заполненные в соответствии с регламентом заявки на использование программных интерфейсов ЕСИА в тестовой и промышленной среде.
Разработчикам подключаемой системы:
- Доработать систему для подключения к ЕСИА, самостоятельно разработав код взаимодействия с ЕСИА в соответствии с действующим документом «Методические рекомендации по использованию ЕСИА» или использовать готовые решения, благо такие на рынке есть.
- Отладить взаимодействие в тестовой и промышленной среде ЕСИА.
Здесь нужно заметить, что с 01.01.2018 г. взаимодействие по протоколу SAML 2.0 больше не будет разрешено (только для действующих систем). Для подключения к ЕСИА необходимо будет использовать протокол OAuth 2.0 / OpenID Connect (сейчас доступны оба варианта).
Аутентификация пользователя в системе
Рекомендуемый сценарий аутентификации пользователя при интеграции по OpenID Connect 1.0 в его базовом виде происходит по следующему сценарию:
- Пользователь нажимает на веб-странице системы-клиента кнопку «Войти через ЕСИА».
- Система-клиент формирует и отправляет в ЕСИА запрос на аутентификацию и перенаправляет браузер пользователя на специальную страницу предоставления доступа.
- ЕСИА осуществляет аутентификацию пользователя одним из доступных способов. Если пользователь ещё не зарегистрирован в ЕСИА, то он может перейти к процессу регистрации.
- Когда пользователь аутентифицирован, ЕСИА сообщает пользователю, что система-клиент запрашивает данные о нем в целях проведения идентификации и аутентификации, предоставляя перечень запрашиваемых системой-клиентом сведений.
- Если пользователь дает разрешение на проведение аутентификации системой-клиентом, то ЕСИА выдает системе-клиенту специальный авторизационный код.
- Система-клиент формирует в адрес ЕСИА запрос на получение маркера идентификации, включая в запрос полученный ранее авторизационный код.
- ЕСИА проверяет корректность запроса (например, что система-клиент зарегистрирована в ЕСИА) и авторизационного кода и передает системе-клиенту маркер идентификации.
- Система-клиент извлекает идентификатор пользователя из маркера идентификации. Если идентификатор получен, а маркер проверен, то система-клиент считает пользователя аутентифицированным. После получения маркера идентификации система-клиент использует REST-сервисы ЕСИА для получения дополнительных данных о пользователе, предварительно получив соответствующий маркер доступа.
Подключаться или нет?
За операторов, в связи со вступлением в действие закона о мессенджерах данный вопрос практически решен.
Напомним, в соответствии с Федеральным законом №245 «О внесении изменений в Федеральный закон «О связи» от 29 июля 2017 года, операторы связи обязаны проверять достоверность сведений об абоненте. В законе закреплен перечень способов проверки, одним из которых является использование Единого портала государственных и муниципальных услуг или информационных систем госорганов при наличии подключения к ним у операторов через СМЭВ.
Поправки в ФЗ «О связи» вступают в силу 1 июня 2018. До этого времени операторы связи смогут протестировать работу своих систем со СМЭВ и ЕСИА.
Становится ли чебурнет всё ближе? Официальных заявлений о планах сделать выход в Интернет возможным только через ЕСИА нами не найдено. На данный момент, по официальным данным, в ЕСИА зарегистрировано около 50 миллионов пользователей (физических лиц) и около 300 000 организаций.
Как информационная система работает с ЕСИА
ЕСИА является прослойкой между стандартным содержанием приложения и его защищёнными данными. Если пользователю не требуются услуги, которые требуют верификации личности, он может не проходить дополнительную авторизацию. Когда же он захочет попасть в этот раздел, приложение переадресует его на Портал госуслуг, а после успешной авторизации – вернёт обратно.
Технически процесс выглядит так:
1. Пользователь обращается к защищённому ресурсу информационной системы (например, при онлайн-покупке полиса ОСАГО).
2. Информационная система направляет в ЕСИА запрос на аутентификацию.
4. После успешной аутентификации ЕСИА передаёт в информационную систему пакет с идентификационными данными пользователя, информацию об уровне его учётной записи и контексте аутентификации.
5. На основании этой информации система открывает пользователю доступ.
Какие возможности открывает такая идентификация
1. Клиент может подписывать юридически значимые электронные документы, получать защищённый доступ к конфиденциальной информации, медицинским данным и т.д.
2. Появляется возможность автоматически заполнять в анкетах и заявках персональные данные клиента: ФИО, данные паспорта, ИНН, информация о детях и др. При этом компания может быть уверена, что эти данные абсолютно верны и правдивы.
3. Страховые компании и банки могут продавать через приложение свои продукты. И никаких расходов, которые связаны с традиционными, оффлайновыми каналами продаж – не нужно собирать документы, приглашать человека в офис, достаточно разработать скрипт для колл-центра.
4. Для пользователя верификация с ЕСИА повышает доверие к сервису и делает саму процедуру удобнее – не нужно помнить дополнительные пароли, просто нажимаешь знакомую кнопку и всё.
В наших проектах интеграция ЕСИА активно используется в продуктах страховых компаний. Это позволяет клиентам покупать полисы ОСАГО, отправлять извещения о ДТП при оформлении заявок на урегулирование убытков. Это критически важная функция для сценариев заявления о страховых случаях по ОСАГО, когда пользователь не является клиентом данной страховой компании.
Хотя сейчас к ЕСИА могут подключиться не все организации, можно ожидать, что такая авторизация скоро станет де-факто стандартом для пользовательских сервисов. Просто потому, что это надёжно и удобно для клиентов – вместо отдельной учётной записи для каждого ресурса можно использовать единый аккаунт «Госуслуг» и бесшовно пользоваться любыми нужными услугами. Поэтому задумываться об интеграции стоит всем компаниям.
Прохождение проверки при входе через ЕСИА
Если у вас подтвержденная учетная запись, никаких дополнительных проверок проходить не нужно. Всё, что вы должны сделать при авторизации – указать код, который поступит в СМС. Он нужен для проверки того, что доступ к сайту запрашивает именно его владелец.
Иногда проверка личных данных заканчивается безрезультатно. Распространенная причина этого явления – ошибки в написании или недостоверность сведений. Убедитесь, что они верны, если есть ошибки – исправьте их.
Как организации подключиться к ЕСИА
Процедура подключения занимает около месяца. Это время включает регистрацию необходимых аккаунтов, получение данных от Минцифры, работы по интеграции ИС.
1. Зарегистрируйте руководителя организации на Портале госуслуг. Регистрировать компании в ЕСИА могут только те их представители, которые вправе действовать без доверенности. Им понадобится подтверждённая учётная запись физического лица – т.е. нужно будет не только указать свои данные, но и обратиться в банк или МФЦ для верификации. В последнее время многие банки позволяют сделать это онлайн, через их приложения.
2. Зарегистрируйте вашу организацию.
a. Получите квалифицированную электронную подпись (КЭП) на руководителя организации.
b. Зарегистрируйте юридическое лицо в профиле ЕСИА.
c. Оформите КЭП для юридического лица.
Оформлением КЭП занимаются аккредитованные удостоверяющие центры. Подробная инструкция по этому процессу здесь.
3. Зарегистрируйте информационную систему в ЕСИА.
Регистрация системы происходит через технологический портал. Доступ к нему может получить один из сотрудников компании – действовать через аккаунт представителя уже не обязательно. Этот процесс подробно расписан в Руководстве пользователя технологического портала ЕСИА. В результате регистрации информационная система заносится в реестр ИС и получает мнемонический буквенно-цифровой код.
4. Доработайте систему для обмена данными с ЕСИА.
Аутентификация пользователей в ЕСИА происходит по OAuth 2.0 и OpenID Connect 1.0. Компании необходимо сгенерировать закрытый ключ и сертификат открытого ключа, зарегистрировать его на технологическом портале. Стоит отметить, что ЕСИА поддерживает только российские алгоритмы шифрования ГОСТ Р 34.10-2012 и ГОСТ Р 34.11-2012.
Стоит отдельно отметить, что если в компании уже используются средства верификации пользователей посредством Single Sign-On, то особых технических трудностей при подключении к ЕСИА не будет.
5. Подключитесь к тестовой среде ЕСИА
6. Подключитесь к промышленной среде ЕСИА
Как войти на сайт через ЕСИА?
- Загрузите главную страницу портала, выберите «Войти».
- Укажите пароль от учетной записи, который вы создали во время регистрации.
- Дождитесь поступления проверочного кода в СМС, введите его в открывшемся поле на сайте. Авторизация завершена.
Учётная запись ЕСИА
Учётная запись создаётся пользователем самостоятельно в момент регистрации на сайте Госуслуг.
Все данные, предоставляемые гражданином, должны быть достоверными, начиная от фамилии, имени и отчества, заканчивая номером телефона. Любая ошибка в написании или внесение заведомо ложных сведений приведет к отрицательному результату во время их проверки.
В ЕСИА существует 3 типа учетных записей:
- Упрощенная.
- Стандартная.
- Подтвержденная.
Упрощенная: для регистрации требуется имя и фамилия, а также номер телефона или адрес электронной почты. Перечень госуслуг – ограничен. Некоторые сайты отказывают в доступе к сведениям.
Стандартная: личные данные, переданные в систему, должны пройти проверку в ФМС и Пенсионном фонде Российской Федерации. Их нужно передать самостоятельно в личном кабинете. Перечень госуслуг – расширенный.
Подтвержденная: данные пользователя прошли проверку во всех инстанциях, личность – подтверждена. Перечень госуслуг – исчерпывающий.
Доступ в систему предоставляется всем категориям граждан – физическим и юридическим лицам, индивидуальным предпринимателям.
Регистрация на портале Госуслуг
Регистрация на портале ведет к созданию единой учетной записи. Процедура занимает 5-7 минут. С паролем от Госуслуг можно получать доступ к любому ресурсу, который использует авторизацию через ЕСИА:
- ПФ РФ.
- ФНС.
- Общероссийский сайт поиска вакансий – «Работа в России».
- Образовательные порталы (для школьников и студентов).
- Гис ЖКХ и т. д.
Для получения доступа к системе перейдите на сайт «Госуслуги», выберите «Регистрация». Отметьте способ регистрации: через банк/центр обслуживания/с помощью ФИО, номера телефона и e-mail.
Обратите внимание: регистрация через банк ускоренная и позволяет получить подтвержденную учетную запись автоматически. В других случаях это нужно делать самостоятельно на сайте Госуслуг.
- Выберите пункт «Другой способ регистрации».
- Введите фамилию, имя, номер мобильного телефона и адрес электронного ящика, на который придет проверочное письмо, кликните «Продолжить».
- Укажите проверочный код на следующей странице. Следом введите код, отправленный в СМС.
- Придумайте или сгенерируйте пароль (не менее 8 символов, цифры, большие и маленькие латинские буквы, спецсимволы).
Регистрация на портале прошла успешно. Теперь у вас есть учетная запись ЕСИА, которую вы можете использовать для авторизации на сайтах электронного правительства, образовательных порталах и т. д., но только после того, как она пройдет проверку.
Прочитайте напутственное письмо, нажмите «Продолжить». Обратите внимание на уведомление следующего содержания: «У вас упрощенная учетная запись. Доступ к Госуслугам ограничен». Это значит, что вы можете пользоваться порталом, но услуги вам недоступны.
Чтобы открыть полный доступ к порталу, завершите регистрацию онлайн через банк или с помощью электронной подписи. В первом случае выберите свой банк из списка, перейдите по ссылке и следуйте подсказкам. Во втором случае добавьте данные паспорта и СНИЛС в профиль. Как это сделать:
- Перейдите во вкладку «Документы», прокрутите страницу вниз, щелкните по слову «Добавьте» в предложении: «чтобы завершить регистрацию с помощью электронной подписи или заказного письма, добавьте паспорт и СНИЛС в профиль».
- Укажите номер СНИЛС.
- Заполните данные документа, удостоверяющего личность: добавьте отчество, дату и место рождения, серию и номер паспорта, код подразделения и т. д. Отправьте документы на проверку. Она длится от 15 минут до 5 дней.
Как только проверка завершится, статус учетной записи автоматически изменится на «Стандартный». Теперь вы можете заходить на сторонние сайты без регистрации и пользоваться ими без ограничений. Если хотите сэкономить время и у вас есть доступ в личный кабинет банка – завершите процедуру регистрации через него.
Инструкция по авторизации Пользователей через портал Госуслуг (ЕСИА)
Важно!
Подключение с мобильных и стационарных устройств осуществляется с обязательной идентификацией и аутентификацией Пользователей на базе учетных записей портала Госуслуг (ЕСИА).
Администрирование процесса привязки Пользователей в том числе и добавление новых Пользователей осуществляется силами руководителей или администраторов образовательных организаций.
- Осуществить привязку педагогических работников к образовательной организации по инструкции, размещенной на портале Госуслуг «Как присоединить к профилю компании сотрудников». (Ответственным за данный процесс является руководитель или администратор образовательной организации);
- Получить учетную запись «единой системы идентификации и аутентификации (ЕСИА) на портале Госуслуг (осуществляется Пользователями образовательной организации);
- Присоединиться к профилю образовательной организации при наличии подтвержденной учетной записи на портале Госуслуг (осуществляется Пользователями образовательной организации);
- Пройти авторизацию и идентификацию через портал Госуслуг для входа в интернет:
- При использовании мобильного устройства Пользователь на своем устройстве в списке сетей видит необходимый SSID «ESPD»;
- При использовании мобильного устройства Пользователь выбирает сеть и подключается к ней;
- Если на устройствах с ОС Android captive портал в автоматическом режиме не открывается, необходимо на своем устройстве открыть интернет браузер и в адресной строке ввести http://espd.rt.ru или http://edu.gov.ru;
- Для авторизации на ПК пользователь открывает интернет-браузер и в адресной строке браузера вводит http://espd.rt.ru/ или http://edu.gov.ru/
- При подключении по Wi-Fi на мобильном устройстве в браузере сайта по протоколу HTTP открывается страница Captive портала, что означает подключение к Wi-Fi сети (см. рис.1 «Приветственная страница Wi-Fi»)
- При подключении на ПК в браузере сайта по протоколу HTTP открывается страница Captive портала с кнопкой Авторизации.
Рисунок 1. Приветственная страница портала
- Пользователь нажимает на кнопку «Авторизоваться» и переходит на портал Госуслуг, где ему необходимо ввести свои данные учётной записи. Учётная запись должна быть верифицирована (должна быть подтверждена и привязана в ЕСИА к ОО через ОГРН ОО), в противном случае пользователь получит ошибку (Рис. 5).
Рисунок 2. Переход на страницу Госуслуг
- После нажатия на кнопку «Войти», потребуется согласиться с предоставлением прав доступа к данных пользователя (Рис. 3), в противном случае, пользователь будет перенаправлен обратно на портал с соответствующей ошибкой (Рис. 7).
Рисунок 3. Предоставление прав доступа
- Пользователя перенаправляет на стартовую страницу сети ЕСПД или главную страницу сайта Министерства просвещения. Доступ в интернет открыт (Рис. 4).
Доступ в интернет открыт:
Рисунок 4. Успешная авторизация. Переход на сайт edu.gov.ru
Возможные ошибки
Пользователь не ассоциирован с организацией: В случае отсутствии привязки Пользователя к образовательной организации будет возникать ошибка:
Рисунок 5. Пользователь не ассоциирован с организацией
Решение: Обратиться к руководителю образовательной организации или администратору для привязки к профилю компании (согласно п.1 данной инструкции).
Рисунок 6. Неуспешная авторизация
Рисунок 7. Пользователь не предоставил права доступа к данным
Завершение авторизованной сессии
Важно, чтобы использовался тот же браузер без режима инкогнито: сессия запоминается с помощью cookie длительностью действия на 10 часов. На портале находится кнопка для завершения сессии:
При нажатии происходит завершение текущей авторизованной сессии, портал выполняет редирект на себя, который может занять несколько секунд на время старта новой сессии без авторизации.
Во время редиректа в браузере может запуститься новая вкладка с редиректом на портал.
После возвращения на портал, Пользователь увидит страницу с сообщением и кнопкой начала новой сессии:
При нажатии на которую, выполняется редирект на портал с возможностью пройти авторизацию с другими учётными данными ЕСИА:
Для выхода в Интернет с использованием другой учётной записи Госуслуг, может потребоваться выполнить выход. Для этого перейдите на портал по адресу https://esia.gosuslugi.ru, если пользовательская сессия осталась активной, нажмите на ссылку для выхода из учетной записи.