АВТОРИЗАЦИЯ НА САЙТЕ ЧЕРЕЗ ГОСУСЛУГИ КАК СДЕЛАТЬ

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

Содержание
  1. Принципы работы пользовательской идентификации
  2. Как авторизоваться на площадке
  3. Вход в личный кабинет для частных лиц
  4. Вход с использованием номера телефона
  5. Авторизация через СНИЛС
  6. С использованием ЭЦП
  7. Какие функциональные возможности дает идентификация
  8. Какие существуют виды учетной записи
  9. Восстановление пароля
  10. Какие возможности приобретают зарегистрированные пользователи
  11. В чем преимущества подтвержденной учетной записи
  12. Зачем нам ЕСИА?
  13. Стек и схема интеграции
  14. Формирование подписи
  15. Создание ссылки для редиректа на страницу ЕСИА
  16. Получение авторизационного токена ЕСИА
  17. Запрос токена идентификации
  18. Получение данных о пользователе
  19. Полезные материалы по теме
  20. Принципы работы пользовательской идентификации
  21. Как авторизоваться на площадке
  22. Вход в личный кабинет для частных лиц
  23. Вход с использованием номера телефона
  24. Авторизация через СНИЛС
  25. С использованием ЭЦП
  26. Какие функциональные возможности дает идентификация
  27. Какие существуют виды учетной записи
  28. Восстановление пароля
  29. Какие возможности приобретают зарегистрированные пользователи
  30. В чем преимущества подтвержденной учетной записи
  31. Что такое ЕСИА

Принципы работы пользовательской идентификации

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

Первоначально предполагалось, что ЕСИА будет использоваться исключительно для идентификации и авторизации на портале Госуслуги. Система появилась в 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,
   }
 }

}  
  

Надеюсь, статья оказалась для вас полезной. Желаю, чтобы у вас все получилось без особых проблем! 

Полезные материалы по теме

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

Принципы работы пользовательской идентификации

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

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

Как авторизоваться на площадке

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

• перейти на официальный сайт
Госуслуг и нажать на кнопку «регистрация»;

• в стандартной форме необходимо указать данные: ФИО, номер телефона, адрес электронной почты, адрес; далее подтвердить ввод данных;

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

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

Вход в личный кабинет
для частных лиц

После прохождения регистрации пользователю становится доступно посещение государственных и частных учреждений: налоговой инспекции, ПФР, ГИС, ЖКХ.

Вход с использованием номера телефона

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

Авторизация через СНИЛС

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

• при регистрации была допущена ошибка в номере;

• СНИЛС не действителен;

• если была смена фамилии, а СНИЛС не был изменен.

Если данные аспекты отсутствуют, то СНИЛС возможно использовать для авторизации.

С использованием ЭЦП

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

Чтобы авторизоваться в системе этим методом, рекомендуется выполнить следующие действия:

• среди имеющегося списка выбрать ЭЦП;

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

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

Какие функциональные возможности дает идентификация

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

• подписывать документы в электронном формате, иметь доступ к конфиденциальным и медицинским данным;

• заполнять анкеты и заявления с автоматическим проставлением персональных данных: ФИО, сведения из паспорта, ИНН, информация о детях. При этом нет необходимости каждый раз проверять достоверность указанных данных;

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

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

Какие существуют виды учетной записи

Когда пользователь регистрируется на портале Госуслуг, появляется личный кабинет, где можно оплачивать судебные задолженности и штрафы, получать справки в электронном формате, что позволяет избежать очередей в МФЦ. Уровень учетной записи зависит от того, какое количество информации будет указано в анкете. Чем подробнее будет заполнена анкета, тем больше функциональных возможностей будет предоставлено:

• при прохождении формальной регистрации, где необходимо указать ФИО, мобильный номер телефона и адрес электронной почты, учетной записи будет присвоен статус Упрощенной;

• стандартная учетная запись присваивается при указании в личном кабинете паспортных данных и СНИЛС;

• подтвержденная запись имеет наиболее высокий статус. Для этого идентификацию можно пройти через онлайн-банк Сбербанка, ТКС, Альфа-Банка или ВТБ, либо лично посетить отделение МФЦ.

Восстановление пароля

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

После того, как информация будет указана, пользователю, зарегистрированному в системе, будет направлено смс сообщение с одноразовым паролем для входа. Далее нужно перейти в настройки и задать новую комбинацию для входа. В среднем, процедура занимает 15-20 минут и не предполагает каких-либо сложностей.

Какие возможности приобретают зарегистрированные пользователи

Сервис Госуслуги дает широкие функциональные возможности:

• поставить бронь на роспись в ЗАГСе, запросить копию свидетельства о рождении;

• отправить заявку на оформление нового загранпаспорта;

• поставить транспортное средство на учет;

• получить справку о несудимости;

• поставить ребенка на очередь в детский сад;

• оплачивать услуги ЖКХ;

• запрашивать выписки из налоговой, ПФР.

Большинство услуг возможно получить в дистанционном режиме, не выходя из дома.

В чем преимущества подтвержденной учетной записи

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

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

Авторизация на сайте через Госуслуги

Время на прочтение

Интеграция с ЕСИА

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

Что такое ЕСИА

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

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

Сценарий авторизации выглядит примерно так:

  • Пользователь на сайте, на котором внедряется ЕСИА, в личном кабинете нажимает на кнопку «Войти через ГосУслуги»
  • Система переадресует на сайт ЕСИА
  • Пользователь вводит свои логин и пароль на сайте ЕСИА
  • При успешной авторизации ЕСИА возвращает пользователя обратно на сайт и по защищенному протоколу передает его личные данные

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

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

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

Для авторизации через ЕСИА (госуслуги) используется протокол SAML. Стандартом для PHP в решении этого вопроса стала библиотека SimpleSAML
.

При интеграции пытаюсь следовать этой
инструкции. Но очень многие моменты в ней опущены. Например: что делать с файлом метаданных? Куда его класть? Как-то нужно в конфигах указать для него путь?

В настоящий момент делаю так:

1. В simplesaml/metadata/saml20-idp-remote.php пишу данные для подключения:

   $metadata['https://esia-portal1.test.gosuslugi.ru/idp/shibboleth'] = array(
    'name' => array(
        'ru' => 'Авторизация ЕСИА'
    ),
    'privatekey' => 'private.key', //путь к файлу закрытого ключа
    'certificate' => 'open.crt', //путь к сертификату открытого ключа
    'SingleSignOnService' => 'https://esia-portal1.test.gosuslugi.ru',
);  
  

Оцените статью
ЭЦП64