Астрал-отчет

Программный продукт Астрал – Отчет
предназначен для отправки электронной отчетности через интернет. Позволяет реализовывать юридически значимый защищенный электронный документооборот с контролирующими органами:
 
ФНС, ПФР, ФСС, РосСтат, РПН, ФСРАР.
 
Программный продукт Астрал-отчет имеет встроенный модуль документооборота, что позволяет реализовать юридически значимый электронный документооборот между организациями с использованием квалифицированной электронной подписи, выданной аккредитованным удостоверяющим центром ЗАО "Калуга-Астрал"

12.11.19 Обзор онлайн кассы Эвотор 7.2
12.11.19 Эвотор онлайн кассы
9.11.19 Обзор онлайн кассы Эвотор 5
1.11.19 Астрал.Подпись # Руководства пользователя

Методические рекомендации по использованию Единой системы идентификации и аутентификации (версия 2.25)

 

 

 

 

 

ПРИЛОЖЕНИЕ _____
к протоколу заседания Подкомиссии
по использованию информационных технологий
при предоставлении государственных
и муниципальных услуг
Правительственной комиссии
по использованию информационных технологий
для улучшения качества жизни и условий ведения
предпринимательской деятельности
от __________________ г. № ____
ЕДИНАЯ СИСТЕМА ИДЕНТИФИКАЦИИ И АУТЕНТИФИКАЦИИ
Методические рекомендации
по использованию
Единой системы идентификации и
аутентификации
Версия 2.25
2017
2
СОДЕРЖАНИЕ
СОДЕРЖАНИЕ ..................................................................................................................................... 2
ТАБЛИЦА ИЗМЕНЕНИЙ ...................................................................................................................... 6
СПИСОК СОКРАЩЕНИЙ................................................................................................................... 10
1 ВВЕДЕНИЕ ................................................................................................................................... 13
1.1 Назначение документа .......................................................................................................... 14
1.2 Нормативные ссылки ............................................................................................................ 14
2 ОБЩЕЕ ОПИСАНИЕ ЕСИА ....................................................................................................... 16
3 АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ ЧЕРЕЗ ЕСИА ...................................................... 18
3.1 Как обеспечить вход пользователей через ЕСИА ............................................................. 20
3.1.1 Аутентификация с использованием стандарта SAML .................................................. 21
3.1.2 Аутентификация с использованием OpenID Connect 1.0 .............................................. 24
3.2 Рекомендуемые сценарии интеграции по SAML ............................................................... 25
3.2.1 Сценарии аутентификации пользователей через ЕСИА ............................................... 25
3.2.2 Сценарий единого завершения сессии ............................................................................ 32
3.2.3 Форматы сообщений ......................................................................................................... 33
3.3 Рекомендуемый сценарий аутентификации при интеграции по OpenID Connect 1.0 .... 33
3.4 Требования к визуальному оформлению входа посредством ЕСИА .............................. 36
3.4.1 Аутентификация исключительно посредством ЕСИА; ................................................ 36
3.4.2 Аутентификация посредством ЕСИА в качестве одного из возможных вариантов аутентификации ............................................................................................................................ 36
3.5 Возврат пользователя в систему, вызвавшую профиль пользователя в ЕСИА или регистрацию пользователя в ЕСИА ................................................................................................ 37
4 ВЕДЕНИЕ РЕГИСТРОВ ЕСИА .................................................................................................. 38
4.1 Регистрация ........................................................................................................................... 39
4.1.1 Регистрация физических лиц и получение ролей .......................................................... 39
4.1.2 Регистрация юридических лиц ........................................................................................ 43
4.1.3 Регистрация ОГВ ............................................................................................................... 43
4.1.4 Регистрация информационных систем ........................................................................... 44
4.1.5 Регистрация системных групп ......................................................................................... 44
4.2 Управление данными ............................................................................................................ 45
4.2.1 Управление данными физических лиц ........................................................................... 45
4.2.2 Управление данными юридических лиц ........................................................................ 47
4.2.3 Управление данными ОГВ ............................................................................................... 49
4.2.4 Управление данными ИС ................................................................................................. 50
4.3 Получение данных ................................................................................................................ 50
4.3.1 Особенности получения данных физических лиц ......................................................... 51
4.3.2 Особенности получения данных юридических лиц ...................................................... 51
4.3.3 Особенности получения данных ОГВ и полномочий должностных лиц .................... 52
3
4.3.4 Особенности получения данных ИС ............................................................................... 52
ПРИЛОЖЕНИЕ А. ИСПОЛЬЗОВАНИЕ ЕСИА В ЦЕЛЯХ ИДЕНТИФИКАЦИИ И АУТЕНТИФИКАЦИИ ПОСРЕДСТВОМ СТАНДАРТА SAML 2.0 ............................................... 53
А.1 Общие сведения о стандарте SAML 2.0 ............................................................................. 53
А.2 Общие рекомендации по реализации интерфейсов поставщика услуг ........................... 55
А.3 Общие требования к реализации интерфейса поставщика услуг .................................... 55
А.4 Описание форматов электронных сообщений SAML 2.0 в ЕСИА .................................. 57
А.5 Описание метаданных поставщика услуг ........................................................................... 64
А.6 Шаблон файла метаданных .................................................................................................. 76
А.7 Рекомендации по указанию URL-адресов и выбору идентификатора поставщика услуг 79
А.8 Примеры кода на языке Java по использованию OpenSAML ........................................... 80
А.9 Пример AuthnResponse ......................................................................................................... 81
ПРИЛОЖЕНИЕ Б. СЕРВИСЫ ЕСИА НА БАЗЕ ПОДХОДА REST .............................................. 84
Б.1 Общие сведения о программном интерфейсе ЕСИА ........................................................ 84
Б.2 Предоставление персональных данных пользователей .................................................... 88
Б.3 Проверка факта удаления учётной записи и связанных с ней персональных данных пользователя из ЕСИА ..................................................................................................................... 94
Б.4 Предоставление данных из профиля организации ............................................................ 95
Б.5 Предоставление списка участников организации. ............................................................ 98
Б.6 Предоставление сведений о вхождении пользователя в группы ................................... 100
Б.7 Управление данными организации ................................................................................... 102
Б.7.1 Изменение данных профиля организации .................................................................... 103
Б.7.2 Управление приглашениями должностным лицам, зарегистрированным в ЕСИА, на присоединение к учетной записи соответствующей организации......................................... 108
Б.7.3 Управление служебными данными присоединенных сотрудников, а также блокировка и удаление должностных лиц организации ......................................................... 111
Б.7.4 Управление полномочиями должностных лиц посредством изменения их членства в группах доступа .......................................................................................................................... 111
Б.7.5 Управление доступом к непубличным группам .......................................................... 112
Б.7.6 Добавление и изменение данных филиалов организации .......................................... 114
Б.8 Предоставление сведений о субъекте ............................................................................... 115
Б.9 Предоставление списка измененных пользователей или организаций за период времени ............................................................................................................................................ 117
Б.10 Импорт учетной записи пользователя .............................................................................. 117
Б.11 Управление изображением (аватаром) в профиле пользователя ................................... 127
Б.11.1 Получение изображения (аватара) пользователя по OID........................................ 127
Б.11.2 Получение исходного изображения (аватара) пользователя по OID ..................... 127
ПРИЛОЖЕНИЕ В. СЕРВИСЫ ЕСИА, ОСНОВАННЫЕ НА ПРОТОКОЛЕ OAUTH2.0 И
4
OPENID CONNECT 1.0 ...................................................................................................................... 129
В.1 Общие сведения .................................................................................................................. 129
В.2 Модель контроля на основе делегированного принятия решения ................................. 130
В.2.1 Общие принципы ........................................................................................................ 130
В.2.2 Получение авторизационного кода ........................................................................... 133
В.2.3 Получение маркера доступа в обмен на авторизационный код ............................. 135
В.2.4 Получение нового маркера доступа в обмен на маркер обновления ..................... 137
В.3 Модель контроля доступа на основе полномочий системы-клиента ............................ 137
В.3.1 Общие принципы ........................................................................................................ 137
В.3.2 Получение маркера доступа ....................................................................................... 138
В.4 Особенности указания области доступа (scope) .............................................................. 141
В.5 Сведения о структуре и проверке маркера доступа ........................................................ 149
В.6 Использование OpenID Connect 1.0 для аутентификации пользователя ....................... 151
В.6.1 Общие принципы ........................................................................................................ 151
В.6.2 Получение авторизационного кода ........................................................................... 152
В.6.3 Получение маркера идентификации в обмен на авторизационный код ................ 155
В.6.4 Проверка маркера идентификации ............................................................................ 157
В.6.5 Выход из системы (логаут) ........................................................................................ 157
В.7 Сведения о структуре маркера идентификации ............................................................... 158
ПРИЛОЖЕНИЕ Г. СЕРВИС РЕГИСТРАЦИИ ПОЛЬЗОВАТЕЛЯ И ПОДТВЕРЖДЕНИЯ ЛИЧНОСТИ ......................................................................................................................................... 160
Г.1 Получение доступа к электронному сервису ................................................................... 161
Г.2 Регистрация пользователей ................................................................................................ 162
Г.2.1 Запрос на регистрацию новой подтвержденной учетной записи ............................... 164
Г.2.2 Проверка состояния выполнения запроса .................................................................... 164
Г.3 Подтверждение личности пользователя ........................................................................... 165
Г.4 Восстановление доступа к учетной записи пользователя ............................................... 165
Г.5 Удаление учетной записи пользователя ........................................................................... 167
Г.6 Запрос на регистрацию подтвержденно учетной записи на базе существующей упрощенной ..................................................................................................................................... 168
Г.7 Добавление данных о детях пользователя ........................................................................ 168
Г.8 Поиск учетной записи пользователя ................................................................................. 168
Г.9 Рекомендации по использованию сервиса ....................................................................... 169
Г.9.1 Общие рекомендации ..................................................................................................... 169
Г.9.2 Рекомендации по выбору способа доставки пароля .................................................... 170
Г.9.3 Рекомендации по сохранению данных пользователя .................................................. 170
Г.9.4 Рекомендации по вызову метода «Подтвердить личность гражданина РФ или иностранного гражданина в ЕСИА» ......................................................................................... 170
ПРИЛОЖЕНИЕ Д. НЕРЕКОМЕНДУЕМЫЕ К ДАЛЬНЕЙШЕМУ ИСПОЛЬЗОВАНИЮ
5
ФУНКЦИОНАЛЬНЫЕ ВОЗМОЖНОСТИ ЕСИА ........................................................................... 172
Д.1 Общие сведения .................................................................................................................. 172
Д.2 Устаревшие утверждения SAML ....................................................................................... 172
Д.3 Устаревшие параметры сервиса регистрации .................................................................. 173
ПРИЛОЖЕНИЕ Е. ЕДИНЫЙ СЕРВИС УПРОЩЕННОЙ ИДЕНТИФИКАЦИИ ПОЛЬЗОВАТЕЛЕЙ ЕДИНОЙ СИСТЕМЫ ИДЕНТИФИКАЦИИ И АУТЕНТИФИКАЦИИ .... 174
Е.1 Получение доступа к электронному сервису ................................................................... 174
Е.2 Проверка данных пользователя ......................................................................................... 175
Е.2.1 Запрос на идентификацию и проверку данных пользователя ................................ 175
Е.2.2 Проверка состояния выполнения запроса ................................................................ 175
6
ТАБЛИЦА ИЗМЕНЕНИЙ
Версия
Дата
Автор
Изменение
1.0
Документ создан
2.0
Создана новая версия документа в рамках развития ЕСИА в 2013 г.
2.1
Внесены исправления в документ:
 уточнено описание процедуры подписания запроса при аутентификаци с помощью протокола SAML;
 уточнено описание перечня SAML-атрибутов;
 уточнено описание электронного сервиса по регистрации пользователей ЕСИА, опубликованного в СМЭВ (добавлено описание процедуры получения доступа к сервису, добавлены идентификаторы сервиса ЕСИА в СМЭВ, уточнено описание метода восстановления доступа);
 уточнено описание областей доступа (scope), используемых программными интерфейсами на основе REST.
2.2
Исключено приложение с описанием электронных сервисов ЕСИА для работы с должностными лицами ОГВ. Произведена перенумерация остальных приложений. Внесены уточнения и детализации в технические описания во всех приложениях
2.3
Детализация описания механизма аутентификации с использованием OpenID Connect 1.0
2.4
Добавлено описание программного интерфейса на основе REST по получению данных о филиалах и ОГВ.
Уточнено описание программного интерфейса на основе REST по получению данных о системных группах.
Изменено обозначение типов учетных записей.
Добавлены ссылки на Технологический портал ЕСИА.
Уточнено описание redirect_uri при использовании сервиса авторизации ЕСИА на основе OAuth 2.0.
Уточнено описание сервиса получения данных о
7
субъекте (Приложение Б.7).
Уточнен формат адреса, используемый в REST-сервисе ЕСИА
2.4.1
Уточнен формат запроса на получение маркера доступа при реализации модели контроля доступа на основе полномочий системы-клиента.
Уточнен процесс завершения активной сессии пользователя при использовании протокола SAML
2.5
Добавлено описание:
 новых типов документов физических лиц, получаемых через REST API ЕСИА;
 данных о детях, получаемых через REST API ЕСИА;
 новых возможностей по использованию аутентификации с использованием OpenID Connect 1.0 (проверка аутентификации в фоновом режиме и открытие страницы аутентификации во всплывающем окне);
 возможностей по управлению данными организации;
 новых разрешений на доступ к данным (scope);
 возможности возврата пользователя в систему, направившую пользователя в ЕСИА для выполнения операций.
2.6
Добавлено описание сервиса «Единый сервис упрощенной идентификации пользователей Единой системы идентификации и аутентификации»
2.7
Добавлено описание использования разрешения (scope) для передачи сведений о детях.
2.8
Добавлено описание использования разрешения (scope) «openid» для интеграции информационных систем
2.9
Добавлено в Таблицу 11 «Состав набора данных» пункт – место рождения, при вызове скоупа id_doc и foreign_passport_doc
2.10
Из Таблицы 11 исключен пункт место рождения.
Добавлено описание сервиса УПРИД.
8
Уточнена информация по сервису регистрации.
Добавлен раздел Б.9 Предоставление списка измененных пользователей или организаций за период времени
В таблице 6 добавлены параметры ответа на запрос о персональных данных пользователя: verifying и status.
2.11
К Таблице 11 в примечании добавлено описание scope, позволяющих получить Гражданство пользователя.
2.12
Уточнено описание структуры маркера идентификации (Приложение В.7).
2.13
В Таблице 11 добавлен скоуп «birthplace».
2.14
В Таблице 10 исправлены коды ошибок.
2.15
В Таблице 11 добавлен скоуп usr_org.
2.16
Добавлено описание полей «district» и «settlement» для атрибута orgAddresses (Таблица 5).
2.17
17.01.2017
Пригарина Д.А.
В Таблице 10 добавлен новый код ошибки при отсутствии разрешения на доступ к указанному скоупу.
В таблице 6 добавлены параметры ответа на запрос о контактах пользователя: vrfValStu и verifyingValue.
2.18
31.01.2017
Пригарина Д.А.
Добавлен раздел с описанием метода импорта учетной записи пользователя (Приложение Б.10).
2.19
08.02.2017
Маслова Г.В.
В таблице 6 изменен параметр fiasCode ответа на запрос о сведениях об отдельной записи в перечне адресов физического лица.
2.20
09.03.2017
Пригарина Д.А.
Обновлен алгоритм импорта УЗ, пример ответа на запрос, обязательность полей адреса (Приложение Б.10).
2.21
10.04.2017
Пригарина Д.А.
Добавлено описание получения информации для скоупа usr_org (Приложение В.4).
В Приложении Б.10 добавлено описание заголовков запроса (Request-Data, Request-Data Sign). Обновлено описание параметров series и number для документа, удостоверяющего личность.
2.22
02.05.2017
Горбунова О.Е.
В Приложение В.4 в перечень скоупов добавлен скоуп usr_avt.
Добавлено описание получения информации для скоупа usr_avt (Приложение Б.11).
9
2.23
04.05.2017
Пригарина Д.А.
Добавлено описание ошибок для параметра errorStatusInfo (Приложение Б.10).
Обновлено описание ответа для запроса: https://esia-portal1.test.gosuslugi.ru/rs/orgs/100000/emps?embed=(elements.person) (Приложение Б.1).
2.24
20.06.2017
Маслова Г.В.
Обновлен пример запроса (вызов сервиса в среде разработки) в Приложении Б.10 (добавлен параметр «birthPlace».
2.25
03.07.2017
Пригарина Д.А.
В разделе 3.1.1 добавлена информация о прекращении поддержки SAML 2.0 в ЕСИА.
В разделах Б.2, В.2.2, В.4, В.5 обновлены примеры, касающиеся скоупа id_doc.
В разделах В.6.2.2, В.6.2.3 обновлены примеры запросов.
10
СПИСОК СОКРАЩЕНИЙ
Сокращение / термин
Наименование / определение
ЕГРИП
Единый государственный реестр индивидуальных предпринимателей
ЕГРЮЛ
Единый государственный реестр юридических лиц
ЕПГУ
Федеральная государственная информационная система «Единый портал государственных и муниципальных услуг (функций)»
ЕСИА
Федеральная государственная информационная система «Единая система идентификации и аутентификации в инфраструктуре, обеспечивающей информационно-технологическое взаимодействие информационных систем, используемых для предоставления государственных и муниципальных услуг в электронной форме»
ИНН
Идентификационный номер налогоплательщика
ИС
Информационная система
КЭП
Усиленная квалифицированная электронная подпись
ОГВ
Орган государственной власти. Федеральные органы исполнительной власти, государственные внебюджетные фонды, органы исполнительной власти субъектов Российской Федерации, органы местного самоуправления, государственные и муниципальные учреждения, многофункциональных центров предоставления государственных и муниципальных услуг, а также иные организации, определенные федеральными законами, актами Президента Российской Федерации и актами Правительства Российской Федерации
ОГРН
Основной государственный регистрационный номер
ОГРНИП
Основной государственный регистрационный номер индивидуального предпринимателя
Оператор выдачи ключа ПЭП
Орган или организация, обладающая правом создания (замены) ключа ПЭП в соответствии с постановлением Правительства РФ от 25 января 2013 г. № 33 «Об использовании простой электронной подписи при оказании государственных и муниципальных услуг». В соответствии с
11
Сокращение / термин
Наименование / определение
указанным постановлением Правительства, качестве Операторов выдачи ключа ПЭП могут выступать федеральные органы исполнительной власти, государственные внебюджетные фонды, органы исполнительной власти субъектов Российской Федерации, органы местного самоуправления, государственные и муниципальные учреждения, многофункциональные центры предоставления государственных и муниципальных услуг, а также иные организации, определенные федеральными законами, актами Президента Российской Федерации и актами Правительства Российской Федерации (а также уполномоченные ими организации), осуществляющие оказание государственных или муниципальных услуг и подключенные к инфраструктуре, обеспечивающей информационно-технологическое взаимодействие информационных систем, используемых для предоставления государственных и муниципальных услуг в электронной форме
Оператор ЕСИА
Министерство связи и массовых коммуникаций Российской Федерации
Оператор ИС
Организация, осуществляющая регистрацию и управление ИС. В качестве операторов ИС, включенных в регистр информационных систем ЕСИА, могут быть организации, обеспечивающие решение следующих задач:
 предоставление государственных и муниципальных услуг;
 исполнение государственных и муниципальных функций;
 формирование БГИР;
 межведомственное электронное взаимодействие;
 иные задачи, предусмотренные федеральными законами, актами Президента РФ и актами Правительства РФ.
Пользователь ЕСИА
Пользователь информационно-телекоммуникационной сети «Интернет», зарегистрированный в ЕСИА в качестве физического лица. Может иметь роли индивидуального предпринимателя, сотрудника юридического лица, должностного лица ОГВ
12
Сокращение / термин
Наименование / определение
Поставщик услуг
ИС, интегрированная с ЕСИА и осуществляющая предоставление пользователям ЕСИА данных и услуг, в частности, государственных и муниципальных услуг в электронной форме
ПЭП
Простая электронная подпись
Регламент
Регламент взаимодействия участников информационного взаимодействия с оператором ЕСИА и оператором инфраструктуры электронного правительства при организации информационно-технологического взаимодействия информационных систем с использованием ЕСИА
СМЭВ
Федеральная государственная информационная система «Единая система межведомственного электронного взаимодействия»
СНИЛС
Страховой номер индивидуального лицевого счета застрахованного лица в системе персонифицированного учета Пенсионного фонда России
Специалист Центра обслуживания
Сотрудник Оператора выдачи ключа ПЭП, осуществляющий подтверждение личности пользователей ЕСИА
Технологический портал ЕСИА
Специализированное веб-приложение, размещенное по адресу https://esia.gosuslugi.ru/console/tech. Предназначено, в частности, для управления ИС организаций
ФИО
Фамилия, имя, отчество
Центр обслуживания
Центр обслуживания органа или организации, имеющей право создания (замены) и выдачи ключа ПЭП. В Центре обслуживания специалистами Центра обслуживания осуществляется регистрация и/или подтверждение личности пользователей ЕСИА
ЮЛ
Юридическое лицо
OAuth
Открытый протокол авторизации
REST
Передача репрезентативного состояния (Representational State Transfer)
SAML
Security Assertion Markup Language
SMS
Служба коротких сообщений (Short Message Service)
13
1 ВВЕДЕНИЕ
Переход к оказанию государственных и муниципальных услуг в электронном виде требует от государства предоставить людям и органам государственной власти возможности безопасно идентифицировать друг друга онлайн. Когда люди и органы государственной власти могут доверять результатам идентификации друг друга, они могут предоставлять и потреблять услуги, чего нельзя было бы достичь в другом случае из-за большой сложности или важности услуг.
В текущей онлайн среде от людей требуется ведение десятков различных имен пользователей и паролей — по одной паре для каждого вебсайта, с которым пользователь взаимодействует. Сложность такого подхода является бременем для людей и потворствует такому поведению, как повторное использование паролей, что упрощает онлайн мошенничества и нарушения идентификации. В то же время органы государственной власти сталкиваются с постоянно возрастающими затратами на управление учётными записями пользователей, последствиями онлайн мошенничеств и неэффективностью электронных услуг в результате нежелания потенциальными пользователями проходить регистрацию еще одной учётной записи.
Созданная Минкомсвязью России ФГИС ЕСИА:
1. Предоставляет использующим ее информационным системам органов государственной власти решение по достоверной идентификации пользователей (как физических, так и должностных лиц ЮЛ и ОГВ), достигнутой благодаря тому, что:
 регистрация лица в ЕСИА сопряжена с проверкой значимых для удостоверения личности критериев;
 ЕСИА обеспечивает защиту размещённой в ней информации в соответствии с законодательством Российской Федерации.
2. Является ориентированной на пользователя – предоставляет ему возможности:
 идентификации и аутентификации с использованием единой учетной записи и широкого спектра поддерживаемых методов аутентификации при доступе к различным информационным системам органов государственной власти;
 управления своими персональными данными, размещенными в ЕСИА, и контроля над их предоставлением в информационные системы органов государственной власти.
14
1.1 Назначение документа
Настоящий документ:
1. Описывает базовые сценарии использования ЕСИА:
 идентификация и аутентификация пользователей при доступе к информационным системам органов государственной власти (раздел 3);
 ведение идентификационных данных и полномочий пользователей (раздел 4);
 получения информационными системами органов государственной власти данных из регистров, хранимых в ЕСИА (раздел 4).
2. Поясняет порядок ведения в ЕСИА регистров (справочников), необходимых для реализации базовых сценариев использования ЕСИА:
 регистр физических лиц;
 регистр юридических лиц и должностных лиц юридических лиц;
 регистр органов государственной власти и должностных лиц органов государственной власти;
 регистр информационных систем.
3. Предоставляет методические рекомендации по интеграции информационных систем с ЕСИА и обеспечению соответствия положениям нормативно-правовых актов в части использования ЕСИА.
1.2 Нормативные ссылки
Настоящий документ разработан в целях реализации и во исполнение следующих нормативно-правовых актов:
 Федеральный закон от 27 июля 2010 г. № 210-ФЗ «Об организации предоставления государственных и муниципальных услуг».
 Федеральный закон от 6 апреля 2011 г. № 63-ФЗ «Об электронной подписи».
 Государственная программа Российской Федерации «Информационное общество (2011 – 2020 годы)», утвержденная распоряжением Правительства Российской Федерации от 20 октября 2010 г. № 1815-р.
 Постановление Правительства Российской Федерации от 28 ноября 2011 г. № 977 «О федеральной государственной информационной системе «Единая система идентификации и аутентификации в инфраструктуре, обеспечивающей информационно-технологическое взаимодействие информационных систем,
15
используемых для предоставления государственных и муниципальных услуг в электронной форме».
 Постановление Правительства Российской Федерации от 9 февраля 2012 г. № 111 «Об электронной подписи, используемой органами исполнительной власти и органами местного самоуправления при организации электронного взаимодействия между собой, о порядке её использования, а также об установлении требований к обеспечению совместимости средств электронной подписи».
 Постановление Правительства Российской Федерации от 25 января 2013 г. № 33 «Об использовании простой электронной подписи при оказании государственных и муниципальных услуг».
 Постановление Правительства Российской Федерации от 10 июля 2013 г. № 584 «Об использовании федеральной государственной информационной системы «Единая система идентификации и аутентификации в инфраструктуре, обеспечивающей информационно-технологическое взаимодействие информационных систем, используемых для предоставления государственных и муниципальных услуг в электронной форме».
 Положение «Об инфраструктуре, обеспечивающей информационно-технологическое взаимодействие информационных систем, используемых для предоставления государственных и муниципальных услуг в электронной форме», утверждённое постановлением Правительства Российской Федерации от 8 июня 2011 г. № 451.
 Положение «О федеральной государственной информационной системе «Единая система идентификации и аутентификации в инфраструктуре, обеспечивающей информационно-технологическое взаимодействие информационных систем, используемых для предоставления государственных и муниципальных услуг в электронной форме», утверждённое приказом Минкомсвязи России от 13 апреля 2012 г. № 107.
16
2 ОБЩЕЕ ОПИСАНИЕ ЕСИА
В соответствии с постановлением Правительства Российской Федерации от 28 ноября 2011 г. № 977 ЕСИА должна обеспечивать санкционированный доступ участников информационного взаимодействия (заявителей и должностных лиц ОГВ) к информации, содержащейся в государственных информационных системах, муниципальных информационных системах и иных информационных системах.
При этом ЕСИА не обеспечивает выполнение процессов идентификации, аутентификации и авторизации участников межведомственного взаимодействия, возникающих в процессе использования СМЭВ, в частности, при взаимодействии информационных систем с использованием СМЭВ.
Основные функциональные возможности ЕСИА:
 идентификация и аутентификация пользователей, в том числе:
 однократная аутентификация1, которая дает пользователям ЕСИА следующее преимущество: пройдя процедуру идентификации и аутентификации в ЕСИА, пользователь может в течение одного сеанса работы обращаться к любым информационным системам, использующим ЕСИА, при этом повторная идентификация и аутентификация не требуется.
 поддержка различных методов аутентификации: по паролю, по электронной подписи, а также двухфакторная аутентификация (по постоянному паролю и одноразовому паролю, высылаемому в виде sms-сообщения);
 поддержка уровней достоверности идентификации пользователя (упрощенная учетная запись, стандартная учетная запись, подтвержденная учетная запись).
 ведение идентификационных данных2, а именно – ведение регистров физических, юридических лиц, органов и организаций, должностных лиц органов и организаций и информационных систем;
 авторизация уполномоченных лиц ОГВ при доступе к следующим функциям ЕСИА:
 ведение регистра должностных лиц ОГВ в ЕСИА;
1 Соответствующий термин на английском языке – Single Sign On
2 Соответствующий термин на английском языке – Identity Management
17
 ведение справочника полномочий в отношении ИС и предоставление пользователям ЕСИА (зарегистрированным в ЕСИА как должностные лица ОГВ) полномочий по доступу к ресурсам ИС, зарегистрированным ЕСИА;
 делегирование вышеуказанных полномочий уполномоченным лицам нижестоящих ОГВ.
 ведение и предоставление информации о полномочиях пользователей в отношении информационных систем, зарегистрированных в ЕСИА.
Обращение участников информационного взаимодействия к ЕСИА должно происходить только по протоколу HTTPS (использовать протокол HTTP запрещено).
18
3 АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ ЧЕРЕЗ ЕСИА
Разработчики государственных сайтов, порталов и прочих веб-приложений могут предоставить своим пользователям возможность входить в систему, используя учётную запись ЕСИА. Это избавляет разработчиков от необходимости делать собственное хранилище учётных записей, обеспечивать безопасность хранения паролей, разрабатывать механизмы регистрации, аутентификации пользователей, поддерживать их в рабочем состоянии.
Под пользователями ЕСИА понимаются следующие категории участников информационного взаимодействия:
 физические лица, имеющие учетную запись в регистре физических лиц ЕСИА;
 индивидуальные предприниматели, т.е. физические лица имеющие признак индивидуального предпринимателя;
 должностные лица юридических лиц, т.е. физические лица, присоединенные к учетным записям юридических лиц ЕСИА;
 должностные лица органов и организаций, т.е. физические лица, присоединенные к учетным записям ОГВ.
Пользователи получают возможность однократной аутентификации. Это означает, что пройдя процедуру аутентификации в ЕСИА, пользователь может в течение одного сеанса работы войти в несколько систем, и при этом повторно вводить логин и пароль не потребуется.
С целью обеспечения указанного функционала в ЕСИА реализовано два альтернативных механизма, которые позволяют разработчику использовать наиболее подходящий для его системы:
 механизм, основанный на стандарте SAML версии 2.0;
 механизм, основанный на модели OpenID Connect 1.0.
Аутентификация с использованием стандарта SAML
ЕСИА использует стандарт SAML версии 2.0, который был разработан в 2005 году концерном OASIS. SAML базируется на языке XML и определяет способы обмена информацией об аутентификации пользователей, их полномочиях и идентификационных данных. В соответствии с принятой в этом стандарте терминологией, ЕСИА выступает в роли доверенного поставщика идентификации (Identity Provider), а система выступает в роли
19
поставщика услуг (Service Provider)3.
Общая схема подключения системы к ЕСИА представлена на рисунке ниже.
Браузер
пользователя
(HTTP User Agent)
ИС
Поставщик услуг
(Service Provider)
ЕСИА
Поставщик идентификации
(Identity Provider)
HTTPS
SAML 2.0
HTTPS
SAML 2.0
Метаданные
поставщика услуг
Метаданные
поставщика идентификации
Рисунок 1 – Схема взаимодействия ИС с ЕСИА с целью идентификации и аутентификации с
использованием стандарта SAML 2.0
Аутентификация с использованием модели OpenID Connect
В ЕСИА создан механизм аутентификации пользователей, основанный на
спецификациях OAuth 2.0 и расширении OpenID Connect 1.0.
Протокол определяет взаимодействие следующих сторон:
 владелец ресурса (resource owner) – сущность, которая может предоставить доступ к
защищаемому ресурсу (например, физическое лицо, заявитель);
 система-клиент (client) – приложение, которое запрашивает доступ к защищаемому
ресурсу от имени его владельца;
 сервис авторизации (authorization server) – сервис, который выпускает для системы-
клиента маркеры идентификации с разрешениями от владельца ресурса, а также маркеры
доступа, позволяющие получать доступ к данным;
 поставщик ресурса (resource server) – сервис, обеспечивающий доступ к защищаемому
ресурсу на основе проверки маркеров идентификации и маркеров доступа (например, к
идентификационным данным пользователя).
3 Подробное описание схемы интеграции посредством SAML 2.0 представлено в приложении А.
20
Расширение OpenID Connect 1.0 предполагает использование маркера идентификации
(ID Token) в целях проведения идентификации и аутентификации пользователя. Маркер
идентификации содержит идентификационные данные пользователя, а также ряд служебных
параметров (дата выдачи, время окончания срока действия и пр.).
Для иллюстрации использования OpenID Connect 1.0 в ЕСИА принята следующая
терминология:
 владелец ресурса – это пользователь;
 система-клиент – это информационная система интегрированная с ЕСИА с целью
идентификации и аутентификации, например региональный портал услуг;
 сервис авторизации и поставщик ресурса – это ЕСИА.
Общая схема подключения системы к ЕСИА для проведения аутентификации
представлена на рисунке ниже.
Браузер
пользователя
Владелец ресурса
ИС
Система-клиент
ЕСИА
Сервис авторизации
Поставщик идентификации
HTTPS HTTPS
HTTPS
REST
Рисунок 2 – Схема подключения системы к ЕСИА
3.1 Как обеспечить вход пользователей через ЕСИА
Чтобы предоставить пользователям вашей системы возможность входить через ЕСИА,
используя тот или иной механизм, со стороны подключающейся системы необходимо
обеспечить:
 Регистрацию ИС в регистре информационных систем ЕСИА (в соответствии с
Регламентом4).
 Регистрацию системы с целью идентификации и аутентификации в тестовой среде в
4 Раздел 6 Регламента.
21
соответствии с Регламентом5. Исполнение этого процесса предоставляет возможность участнику производить взаимодействие с ЕСИА в тестовой среде.
 Выполнение доработки интегрируемой системы с целью обеспечения поддержки выбранного механизма идентификации и аутентификации.
 Подключение продуктивной версии интегрируемой системы к продуктивной среде ЕСИА в соответствии с Регламентом6.
Далее каждый из шагов для каждого механизма аутентификации рассмотрен подробнее.
3.1.1 Аутентификация с использованием стандарта SAML7
Аутентификация с использованием SAML доступна для использования исключительно государственными органами и организациями (далее – ОГВ), т.е. федеральными органами исполнительной власти, государственными внебюджетными фондами, органами исполнительной власти субъектов Российской Федерации, органами местного самоуправления, государственными и муниципальными учреждениями, многофункциональными центрами предоставления государственных и муниципальных услуг, а также иными организациями в случаях, предусмотренных федеральными законами, актами Президента Российской Федерации и актами Правительства Российской Федерации.
1 и 2 шаг: Регистрация ИС
Регистрация ИС осуществляется согласно Регламенту (раздел 6).
3 шаг: Доработать систему
Рекомендуемая последовательность действий:
1. Сформулировать функциональные требования к взаимодействию своей системы с ЕСИА. Для этого следует:
 изучить рекомендуемые сценарии использования и выбрать нужные;
5 Раздел 9 Регламента.
6 Раздел 10 Регламента.
7 Внимание! В связи с прекращением поддержки SAML 2.0 в ЕСИА подключение ИС к ЕСИА через этот интерфейс будет прекращено с 01.01.2018 г., поэтому для подключения рекомендуется использовать протокол OAuth 2.0 / OpenID Connect. Запрещено подключение по протоколу SAML 2.0 и по протоколу OAuth 2.0 / OpenID Connect одновременно. Возможность изменения параметров подключения к ЕСИА через интерфейс SAML 2.0 для ранее подключенных ИС будет сохранена.
22
 определить перечень сведений о пользователе, которые вашей ИС требуется получать из ЕСИА в утверждениях SAML;
 определить требования к уровню достоверности идентификации пользователя (см. п. 4.1.1).
2. Представить или самостоятельно сгенерировать (например, с помощью утилиты keytool из состава Java Development Kit) для своей системы сертификат ключа неквалифицированной электронной подписи в формате X.509 версии 3. Сертификат требуется для идентификации ИС при взаимодействии с ЕСИА. Допускается использование самоподписанного сертификата. Специальные требования: алгоритм RSA, длина ключа 2048 бит. Более подробную информацию о сертификате X.509 можно посмотреть по ссылке http://tools.ietf.org/html/rfc5280.
3. Реализовать интерфейсы поставщика услуг SAML. В качестве исходных данных для разработки следует использовать:
 функциональные требования, сформированные на 1 шаге;
 спецификация SAML 2.0 (доступна по ссылке http://saml.xml.org/saml-specifications), в том числе описание профилей Web Browser SSO, Assertion Query/Request, Single Logout Profile;
 спецификация Interoperable SAML 2.0 Web Browser SSO Deployment Profile (доступна по ссылке http://saml2int.org/profile/current);
 описание форматов и примеры сообщений SAML в ЕСИА (см. п. А.4–А.7 приложения А);
 рекомендации по использованию готовых реализаций поставщиков услуг с открытым кодом (см. п. А.2 приложения А).
4. Доработать дизайн сайта, выбрав место для размещения кнопки «Войти через ЕСИА» и реализовать в системе логику обработки данных о пользователях, получаемых из ЕСИА. Недопустимо отображать страницу аутентификации ЕСИА во фрейме сайта.
5. Обеспечить в соответствии с требованиями законодательства комплекс мер, необходимых для обеспечения информационной безопасности и защиты персональных данных пользователей, получаемых информационной системой в процессе ее взаимодействия с системой ЕСИА.
6. Загрузить актуальные метаданные поставщика идентификации ЕСИА:
23
 метаданные тестового поставщика идентификации ЕСИА опубликованы по ссылке https://esia-portal1.test.gosuslugi.ru/idp/shibboleth8;
 метаданные промышленного поставщика идентификации ЕСИА опубликованы по ссылке https://esia.gosuslugi.ru/idp/shibboleth.
7. Подготовить метаданные интегрируемой системы (поставщика услуг). Чтобы подготовить их правильно, рекомендуется использовать следующие исходные данные:
 описание файла метаданных (п. А.5 приложения А);
 шаблон файла метаданных (п. А.6 приложения А);
 требования вашей системы к типу учетной записи:
- тип роли пользователя (физическое лицо, индивидуальный предприниматель, представителя юридического лица, должностное лицо государственной организации) – блок SupportedGlobalRoles и метаданных;
- допустимый метод аутентификации (по паролю, по КЭП, усиленная аутентификация) – блок SupportedGlobalRoles метаданных;
- допустимый уровень (статус) учетной записи (подтверждена или упрощенная/стандартная учетная запись) – блок SupportedAccTypes метаданных.
 требования вашей системы к перечню сведений о пользователе, которые нужно получать из ЕСИА в утверждениях SAML;
 сертификат ключа электронной подписи.
8. Синхронизировать системное время сервера, на котором установлена ваша система (поставщик услуг), со значением точного времени. Расхождение более чем в минуту может приводить к возникновению ошибок при взаимодействии поставщика услуг с поставщиком идентификации ЕСИА.
9. Осуществить подключение ИС к тестовой среде и отладить взаимодействие с ЕСИА в тестовой среде в соответствии с Регламентом9.
4 шаг: Ввести доработку в эксплуатацию
1. Осуществить регистрацию метаданных в промышленной ЕСИА в соответствии с Регламентом10.
8 Здесь и далее esia-portal1 в ссылке – имя тестового домена в зависимости от тестовой среды. Конкретную тестовую среду для регистрации устанавливает оператор эксплуатации при обработке заявки на регистрацию.
9 Раздел 9 Регламента.
24
2. После регистрации метаданных проверить работу промышленной версии ЕСИА с промышленной версией вашей системы.
3.1.2 Аутентификация с использованием OpenID Connect 1.0
1и 2 шаг: Регистрация ИС
Регистрация ИС осуществляется согласно Регламенту (раздел 6).
При использовании способа аутентификации, основанного на OAuth 2.0 и расширения OpenID Connect, не требуется формирование метаданных.
3 шаг: Доработать систему
Рекомендуемая последовательность действий:
1. Выпустить ключевой контейнер и сертификат ключа квалифицированной электронной подписи для подключаемой информационной системы (должен содержать ОГРН ЮЛ, являющегося оператором информационной системы).
Дополнительно поддерживается работа с ключевым контейнером и сертификатом ключа неквалифицированной электронной подписи в формате X.509 версии 3. В этом случае является допустимым самостоятельно сгенерировать (например, с помощью утилиты keytool из состава Java Development Kit) для своей системы ключевой контейнер и самоподписанный сертификат. Сертификат требуется для идентификации ИС при взаимодействии с ЕСИА. ЕСИА поддерживает алгоритмы формирования электронной подписи RSA с длиной ключа 2048 бит и алгоритмом криптографического хэширования SHA-256, а также алгоритм электронной подписи ГОСТ Р 34.10-2001 и алгоритм криптографического хэширования ГОСТ Р 34.11-94.
2. Реализовать интерфейсы системы-клиента REST-сервисов ЕСИА и модели контроля доступа, основанной на OAuth 2.0. Детальная информация содержится в приложениях Б и В.
3. Доработать дизайн сайта, выбрав место для размещения кнопки «Войти через ЕСИА» и реализовать в системе логику запроса данных о пользователях, получаемых с помощью программного интерфейса ЕСИА. Недопустимо отображать страницу аутентификации ЕСИА во фрейме сайта.
4. Обеспечить в соответствии с требованиями законодательства комплекс мер, необходимых для обеспечения информационной безопасности и защиты персональных
10 Раздел 10 Регламента.
25
данных пользователей, получаемых информационной системой в процессе ее взаимодействия с системой ЕСИА.
5. Синхронизировать системное время сервера, на котором установлен поставщик услуг, со значением точного времени. Расхождение более чем в минуту может приводить к возникновению ошибок при взаимодействии поставщика услуг с поставщиком идентификации ЕСИА.
6. Осуществить подключение ИС к тестовой среде и отладить взаимодействие с ЕСИА в тестовой среде в соответствии с Регламентом11.
4 шаг: Ввести доработку в эксплуатацию
1. Осуществить подключение ИС к промышленной ЕСИА в соответствии с Регламентом12.
2. После подключения ИС к промышленной ЕСИА проверить работу промышленной версии ЕСИА с промышленной версией вашей системы.
3.2 Рекомендуемые сценарии интеграции по SAML
3.2.1 Сценарии аутентификации пользователей через ЕСИА
Базовый сценарий аутентификации пользователя
Базовым сценарием является сценарий аутентификации физического лица (например, заявителя). Этот сценарий позволяет получить сведения об индивидуальном пользователе (физическом лице) в момент аутентификации и соответствует профилю Web Browser SSO Profile стандарта SAML 2.0. Сценарий включает следующие шаги:
1. Пользователь нажимает на странице системы поставщика услуг кнопку «Войти через ЕСИА».
2. Поставщик услуг формирует и отправляет в ЕСИА запрос на аутентификацию и перенаправляет браузер пользователя на страницу аутентификации ЕСИА.
3. ЕСИА проверяет, статус аутентификации пользователя. Если пользователь в ЕСИА не аутентифицирован, то для продолжения процесса он должен пройти аутентификацию одним из доступных способов. Если пользователь ещё не зарегистрирован в ЕСИА, то он может перейти к процессу регистрации.
11 Раздел 9 Регламента.
12 Раздел 10 Регламента.
26
4. Когда пользователь аутентифицирован, ЕСИА проверяет, что уровень достоверности идентификации пользователя соответствует требованиям системы, которые зафиксированы в метаданных.
5. Когда пользователь успешно аутентифицирован, ЕСИА передаёт в систему ответ на запрос аутентификации, который содержит набор утверждений SAML (SAML Assertions) о пользователе.
6. Поставщик услуг принимает решение об авторизации пользователя на основе полученной из ЕСИА информации.
Рисунок 3 – Идентификация и аутентификация пользователей посредством ЕСИА при использовании SAML 2.0
Дополнительный сценарий аутентификации пользователя в качестве представителя организации
ЕСИА также позволяет аутентифицировать пользователя в качестве представителя:
 юридического лица;
 ОГВ.
Эта функция востребована системами, среди пользователей которых есть сотрудники организаций, например, выступающие как заявители услуг или как должностные лица ОГВ. Если включить эту функцию в метаданных поставщика услуг, то ЕСИА в ответе на запрос
27
аутентификации будет передавать сведения об организации пользователя. Если пользователь является участником нескольких организаций, то ЕСИА предварительно попросит пользователя ту из них, от лица которой он осуществляет аутентификацию. Если система поддерживает работу пользователей с различными ролями, то в процессе аутентификации пользователь будет иметь возможность сделать выбор роли, в которой он будет работать в данной ИС.
Для проверки наличия у аутентифицированного сотрудника ЮЛ необходимых полномочий следует использовать функционал системных групп (4.2.2.3).
Для проверки наличия у аутентифицированного должностного лица необходимых полномочий рекомендуется использовать соответствующее SAML-утверждение (п. 4.3.3).
Сценарий с установкой локальной сессии
Как только пользователь прошел аутентификацию, ЕСИА устанавливает пользовательскую сессию, продолжительность которой составляет 3 часа. Факт начала сессии записывается в файле cookie, который хранится на компьютере пользователя. Система может установить для пользователя свою «локальную» сессию. Рекомендуемая продолжительность сессии – от 15 минут до 3 часов. При завершении «локальной» сессии система должна направлять в ЕСИА новый запрос на аутентификацию.
Сценарий с авторизацией пользователя
Система ЕСИА обладает функционалом по предоставлению поставщику услуг информации, на основании которой возможно проведение авторизации аутентифицированного пользователя. Решение об авторизации пользователя принимает система, в которую пользователь авторизуется (
Таблица 1).
Таблица 1 – Требования к авторизации пользователей
Требования
Рекомендуемое решение
Требуется знать что-то о пользователе для одного сеанса работы (например, имя, которым подписывать комментарии пользователя). Нет необходимости хранить данные об активности пользователя до следующего сеанса
Давать доступ после получения из ЕСИА ответа на запрос аутентификации содержащего требуемый набор сведений о пользователе
Требуется знать что-то о пользователе (например, ФИО, email и др.) и длительно
Давать доступ после получения из ЕСИА ответа на запрос аутентификации содержащего
28
хранить пользовательский контекст (настройки, заявки, комментарии)
требуемый набор сведений о пользователе. При первом входе пользователя регистрировать его идентификатор пользователя (userid). В дальнейшем хранить пользовательский контекст в привязке к этому идентификатору
Требуется ограничить набор предоставляемых функций в зависимости от типа учетной записи, роли пользователя, использованного метода аутентификации
Давать доступ после получения из ЕСИА ответа на запрос аутентификации содержащего требуемый набор сведений о пользователе.
При попытке пользователя обратиться к функции, для предоставления которой текущие тип учетной записи пользователя, роль пользователя или метод аутентификации являются недостаточными, вывести ему сообщение с пояснениями по дальнейшим действиям. Рекомендуемые сообщения для различных ситуаций приведены в таблице 2. В главе 4.1.1 приведены сведения про типы учетных записей пользователей и роли пользователей
В следующей таблице приведены рекомендации по проверке соответствия требованиям информационной системы типа учетной записи пользователя, роли пользователя и использованного метода аутентификации, а также даны рекомендации по сообщениям, которые стоит предоставить пользователям в случае несоответствия их требованиям системы и приведены рекомендации по дальнейшим действиям.
Таблица 2 – Рекомендации по информированию пользователя о несоответствии авторизации требованиям системы
Ситуация
Как определить ситуацию
Что сообщить и предложить пользователю
Пользователь с учетной записью с типом упрощенная
Проанализировать утверждение SAML с
При доступе к функциям, требующим стандартной
29
(«непроверенная») попытался обратиться к функциям, предоставляемым только для стандартных («проверенных») и/или «подтвержденных» учетных записей
именем assuranceLevel или personTrusted (см. таблицу 5)
(проверенной) учетной записи:
«Для доступа вам необходимо пройти процедуру проверки своих данных. Если ваши личные данные только что прошли проверку, то вам нужно войти в систему повторно.»
Ссылка на проверку данных:
https://esia-portal1.test.gosuslugi.ru/validate
При доступе к функциям, требующим подтвержденной учетной записи:
«Для доступа вам необходимо пройти процедуру проверки своих данных и подтверждения личности. Если вы только что подтвердили свою личность, то вам нужно войти в систему повторно.»
Ссылка на проверку данных:
https://esia-portal1.test.gosuslugi.ru/validate
Пользователь с учетной записью с типом стандартная (проверенная) попытался обратиться к функциям, предоставляемым только для «подтвержденных» учетных записей
Проанализировать утверждение SAML с именем assuranceLevel (см. таблицу 5)
«Для доступа вам необходимо пройти процедуру подтверждения личности. Если вы только что подтвердили свою личность, то вам нужно войти в систему повторно.»
Ссылка на подтверждение личности:
https://esia-portal1.test.gosuslugi.ru/confirm
30
Пользователь с учетной записью с ролью физического лица попытался обратиться к функциям, предоставляемым только для ИП / должностных лиц ЮЛ / должностных лиц ОГВ
Проанализировать утверждение SAML с именем globalRole и orgType (см. таблицу 5)13
Если необходима роль сотрудника ЮЛ и текущая учетная запись имеет тип «подтверждена»:
«Для доступа вам необходимо войти в систему в качестве сотрудника юридического лица. Если вы являетесь руководителем юридического лица, вы также можете зарегистрировать учетную запись юридического лица»
Ссылка для регистрации ЮЛ:
https://esia-portal1.test.gosuslugi.ru/org
Если необходима роль ИП и текущая учетная запись имеет тип «подтверждена»:
«Для доступа вам необходимо войти в систему в качестве индивидуального предпринимателя. Вы также можете зарегистрировать учетную запись индивидуального предпринимателя.»
Ссылка:
https://esia-portal1.test.gosuslugi.ru/orgs
Если необходима роль
13 Если информационная система работает исключительно с учетными записями юридических лиц / государственных организаций, то рекомендуется настроить ее метаданные так, чтобы доступ к ней могли получить только пользователи, имеющие такую учетную запись (см. Приложение А.6). В этом случае если пользователь, присоединенный к организации, ранее аутентифицировался в ЕСИА как физическое лицо, но перешел в эту ИС, то ЕСИА обеспечит автоматическое переключение его роли на роль юридического лица (если требуется – попросит пользователя выбрать организацию, от которой ему требуется работать).
31
должностного лица ОГВ и текущая учетная запись имеет тип «подтверждена»:
«Для доступа вам необходимо войти в систему в качестве должностного лица органа государственной власти.»
Если пользователь имеет упрощенную (непроверенную) / стандартную (проверенную) учетную запись, то необходимо его проинформировать о необходимости подтверждения личности. Это является необходимым предварительным условием для возможности получения пользователем роли должностного лица ЮЛ, ОГВ или роли ИП
Пользователь, аутентифицировавшийся по паролю, попытался получить доступ к функции, требующей аутентификации по электронной подписи14
Проанализировать утверждение SAML с именем authnMethod (см. таблицу 5)
«Для доступа вам необходимо использовать средство квалифицированной электронной подписи. Если у вас имеется средство электронной подписи, войдите заново, использовав это средство.»
После этого сообщения рекомендуется разместить кнопку
14 Если информационная система требует исключительно аутентификации по электронной подписи, то рекомендуется настроить ее метаданные так, чтобы доступ к ней могли получить только пользователи, аутентифицированные таким образом (см. Приложение А.6). В этом случае ЕСИА самостоятельно обеспечит корректное информирование пользователя о необходимых шагах по получению доступа.
32
вызова единого завершения сессии
Следует учесть, что если информационная система направляет пользователя в «Профиль пользователя ЕСИА» для совершения некоторых операций (например, для выполнения проверок данных учетной записи), то после их выполнения пользователь не будет автоматчиески возвращен в ИС. В то же время если соответствующая операция может быть выполнена в течение одной сессии пользователя, то пользователю можно дать возможность вернуться в систему (см. п. 3.5).
3.2.2 Сценарий единого завершения сессии
В течение действия сессии пользователь может без повторной аутентификации войти в одну или несколько других систем, подключенных к ЕСИА. При возникновении необходимости в одновременном завершении сессии во всех системах используется соответствующий сценарий. Единое завершение сессии необходимо, например, при изменении данных аутентифицированного пользователя – в этом случае для получения информационными системами в утверждениях SAML обновленных данных пользователь должен совершить выход и повторную аутентификацию в ИС.
Единое завершение сессии выполняется в соответствии с профилем Single Logout стандарта SAML. Процесс инициируется пользователем при нажатии кнопки «Выход» в системе поставщика услуг, реализовавшего указанный сценарий. Информационная система не должна самостоятельно инициировать единое завершение сессии.
Сценарий включает следующие шаги:
1. Пользователь нажимает кнопку «Выход» в системе.
2. Система формирует и направляет в ЕСИА запрос на завершение сессии – <LogoutRequest>.
3. ЕСИА определяет остальных участников сессии. Остальные участники сессии – это все системы, в которые пользователь вошёл через ЕСИА на протяжении текущей сессии. Если другие участники существуют, ЕСИА отправляет запрос <LogoutRequest> каждому из них.
4. Система, получившая <LogoutRequest>, завершает на своей стороне активную сессию пользователя (или проверяет, что сессия к этому моменту уже неактивна). Затем формирует и отправляет в ЕСИА ответ о том, что сессия завершена – <LogoutResponse>.
33
5. Когда все остальные участники корректно завершили свои сессии, ЕСИА формирует и отправляет ответ <LogoutResponse> системе, инициировавшей процедуру завершения сессии. Если какой-то из поставщиков услуг не смог завершить сессию, ЕСИА отображает пользователю веб-страницу, информирующую его о том, что процедура не может быть корректно завершена и что пользователю необходимо перезапустить браузер.
6. Система, инициировавшая процедуру завершения сессии, обрабатывает полученный от ЕСИА ответ. Например, перенаправляет пользователя на веб-страницу завершения сессии.
3.2.3 Форматы сообщений
Основные используемые в ЕСИА форматы электронных сообщений SAML 2.0:
− запрос аутентификации (AuthnRequest);
 ответ на запрос аутентификации(AuthnResponse);
 запрос завершения активной сессии пользователя (LogoutRequest);
 ответ на запрос завершения активной сессии (LogoutResponse);
Детальное описание форматов этих электронных сообщений, а также требований к формированию метаданных для интеграции с ЕСИА, содержится в приложении А.
3.3 Рекомендуемый сценарий аутентификации при интеграции по OpenID Connect 1.0
Базовый сценарий аутентификации
Базовым сценарием аутентификации при использовании OpenID Connect 1.0 является сценарий аутентификации физического лица (например, заявителя).
Сценарий включает следующие шаги:
1. Пользователь нажимает на веб-странице системы-клиента кнопку «Войти через ЕСИА».
2. Система-клиент формирует и отправляет в ЕСИА запрос на аутентификацию и перенаправляет браузер пользователя на специальную страницу предоставления доступа.
3. ЕСИА осуществляет аутентификацию пользователя одним из доступных способов. Если пользователь ещё не зарегистрирован в ЕСИА, то он может перейти к процессу регистрации.
34
4. Когда пользователь аутентифицирован, ЕСИА сообщает пользователю, что система-клиент запрашивает данные о нем в целях проведения идентификации и аутентификации, предоставляя перечень запрашиваемых системой-клиентом сведений.
5. Если пользователь дает разрешение на проведение аутентификации системой-клиентом, то ЕСИА выдает системе-клиенту специальный авторизационный код.
6. Система-клиент формирует в адрес ЕСИА запрос на получение маркера идентификации, включая в запрос полученный ранее авторизационный код.
7. ЕСИА проверяет корректность запроса (например, что система-клиент зарегистрирована в ЕСИА) и авторизационного кода и передает системе-клиенту маркер идентификации.
8. Система-клиент извлекает идентификатор пользователя из маркера идентификации. Если идентификатор получен, а маркер проверен, то система-клиент считает пользователя аутентифицированным.
После получения маркера идентификации система-клиент использует REST-сервисы ЕСИА для получения дополнительных данных о пользователе, предварительно получив соответствующий маркер доступа (см. приложения Б и В).
Рисунок 4 – Идентификация и аутентификация пользователей
35
при использовании механизма OpenID Connect 1.0
Дополнительный сценарий аутентификации пользователя в качестве представителя организации
ЕСИА также позволяет аутентифицировать пользователя в качестве представителя организации, для этого ИС должна:
 запросить у ЕСИА не только маркер идентификации, но и маркер доступа (на получение данных пользователя);
 с использованием маркера доступа и программного интерфейса ЕСИА, основанного на REST, получить информацию о том, сотрудником каких организаций является пользователь;
 запросить у пользователя, от имени какой организации он будет работать в данной ИС (если пользователь является сотрудником нескольких организаций).
При необходимости ИС также может проверять, включен ли пользователь в необходимые системные группы юридического лица, является ли он руководителем организации.
Необходимо помнить, что выбор организации, от имени которой будет работать пользователь в ИС, должен происходить на стороне самой ИС с использованием ее средств.
Сценарий с установкой локальной сессии
Как только пользователь прошел аутентификацию, ЕСИА устанавливает пользовательскую сессию, продолжительность которой составляет 3 часа. Факт начала сессии записывается в файле cookie, который хранится на компьютере пользователя. Система может установить для пользователя свою «локальную» сессию. Рекомендуемая продолжительность сессии – от 15 минут до 3 часов. При завершении «локальной» сессии система должна направлять в ЕСИА новый запрос на аутентификацию.
Сценарий с авторизацией пользователя
Система ЕСИА обладает функционалом по предоставлению системе-клиенту информации, на основании которой возможно проведение авторизации аутентифицированного пользователя. Решение об авторизации пользователя принимает система, в которую пользователь авторизуется.
Для получения авторизационных данных следует использовать программный интерфейс, основанный на архитектурном стиле REST (п. 4.3, приложение Б). В этом случае помимо маркера идентификации система должна также запросить маркер доступа к нужным
36
авторизационным данным.
Получив маркер доступа, ИС может получить данные о пользователе и на их основе принять решение о предоставлении доступа пользователю к своим ресурсам.
3.4 Требования к визуальному оформлению входа посредством ЕСИА
При использовании ЕСИА для идентификации и аутентификации пользователей, а также для их регистрации, варианты размещения кнопок для входа могут различаться в зависимости от сценария использования ЕСИА:
 аутентификация исключительно посредством ЕСИА;
 аутентификация посредством ЕСИА в качестве одного из возможных вариантов аутентификации.
Независимо от выбранного сценария, при оформлении входа в систему с использованием ЕСИА не рекомендуется использовать слова «аутентификация» или «авторизация», вместо этого следует использовать слово «вход».
Если система производит аутентификацию по протоколу Open ID Connect 1.0, то имеется возможность проверить наличие у пользователя сессии в ЕСИА в фоновом режиме. Иными словами, кнопку «Вход» можно выводить только в том случае, если пользователь не имеет сессии, а если имеет – то произвести вход в систему автоматически15.
3.4.1 Аутентификация исключительно посредством ЕСИА;
Если системой используется аутентификация посредством ЕСИА в качестве единственного способа аутентификации, то в общем случае рекомендуется размещать кнопку «Вход» в верхней правой части («в шапке») соответствующей страницы.
При нажатии на кнопку «Вход» должно происходить перенаправление пользователя на страницу аутентификации ЕСИА в соответствии с применяемым сценарием аутентификации.
3.4.2 Аутентификация посредством ЕСИА в качестве одного из возможных вариантов аутентификации
Если системой используется аутентификация посредством ЕСИА в качестве одного из возможных способов аутентификации, то рекомендуется размещать ссылку или кнопку «Вход
15 См. Приложение В.6.2.2.
37
через ЕСИА» в шапке соответствующего сайта, расположив ее рядом со ссылкой (кнопкой), позволяющей войти в систему при помощи альтернативного провайдера аутентификации.
3.5 Возврат пользователя в систему, вызвавшую профиль пользователя в ЕСИА или регистрацию пользователя в ЕСИА
Если ИС вызывает ЕСИА для проведения идентификации и аутентификации пользователя, то пользователь будет возвращен в систему сразу после проведения аутентификации. В то же время ИС может направить пользователя в ЕСИА со следующими целями:
 изменение данных в личном профиле (например, прохождение процедуры проверки данных пользователя);
 прохождение процедуры регистрации.
Чтобы ЕСИА вернула пользователя в систему после выполнения указанных операций, ИС при перенаправлении пользователя должна передать корректный контекст возврата. Контекст возврата определяется следующими параметрами:
 <cid> – мнемоника информационной системы, перенаправившей пользователя в ЕСИА;
 <rurl> – адрес, на который должен быть возвращен пользователь после совершения необходимых действий (этот адрес должен включать в себя URL системы, указанный в Технологическом портале);
 <imm> признак, позволяющий определить необходимость возврата в систему после регистрации упрощенной учетной записи (при вызове страницы регистрации ЕСИА); возврат после регистрации упрощенной учетной записи будет произведен только при передаче признака со значением “true”.
В веб-приложении «Профиль пользователя ЕСИА» в течение действия пользовательской сессии браузера обеспечивается возможность пользователю перейти обратно в вызвавшую ЕСИА систему посредством нажатия на кнопку «Вернуться назад».
Пример ссылки с корректным контекстом возврата: https://esia-portal1.test.gosuslugi.ru/profile/user?cid=TESTSYS&rurl=http://test.ru
Следует помнить, что после закрытия пользователем браузера контекст возврата не будет сохранен.
38
4 ВЕДЕНИЕ РЕГИСТРОВ ЕСИА
Процессы и механизмы ведения данных регистров ЕСИА имеют свою специфику в зависимости от регистра и типа пользователя. Перечень механизмов и процессов представлен в таблице 3.
Таблица 3 – Основные механизмы ведения регистров ЕСИА
Процесс
Регистр
Механизм
Ссылка на раздел документа
Регистрация
Регистр физических лиц
Веб-интерфейс
4.1.1
Программный интерфейс, доступный через СМЭВ
Приложение Г
Регистр юридических лиц
Веб-интерфейс
4.1.2
Регистр ОГВ
Веб-интерфейс
4.1.3
Регистр ИС
Веб-интерфейс
4.1.4, 4.1.5
Управление данными
Регистр физических лиц
Веб-интерфейс
4.2.1
Регистр юридических лиц
Веб-интерфейс
4.2.2
Программный интерфейс на основе REST
Приложение Б
Регистр ОГВ
Веб-интерфейс
4.2.3
Программный интерфейс на основе REST
Приложение Б
Регистр ИС
Веб-интерфейс
4.2.4
Получение данных
Регистр физических лиц
Программный интерфейс на основе SAML
4.3, Приложение А
Программный интерфейс на основе REST
4.3, Приложение Б
Регистр юридических лиц
Программный интерфейс на основе SAML
4.3, Приложение А
Программный интерфейс на основе REST
4.3, Приложение Б
39
Регистр ОГВ
Программный интерфейс на основе SAML
4.3, Приложение А
Регистр ИС
Программный интерфейс на основе REST
4.3, Приложение Б
4.1 Регистрация
4.1.1 Регистрация физических лиц и получение ролей
В ЕСИА предусмотрены следующие роли пользователей:
 физические лица, имеющие учетную запись в регистре физических лиц ЕСИА;
 индивидуальные предприниматели, т.е. физические лица имеющие признак индивидуального предпринимателя;
 должностные лица юридических лиц, т.е. физические лица, присоединенные в ЕСИА к учетным записям юридических лиц ЕСИА;
 должностные лица органов и организаций, т.е. физические лица, присоединенные в ЕСИА к учетным записям ОГВ.
Наличие у пользователя роли позволяет информационным системам, взаимодействующим с ЕСИА, использовать эту информацию для выполнения собственных процессов (например, для авторизации).
Пользователи могут иметь в ЕСИА одну или несколько ролей. Базовой является роль физического лица: чтобы получить одну из указанных ролей, пользователь должен быть первоначально зарегистрирован в качестве физического лица.
В ЕСИА предусмотрены учетные записи физических лиц следующих типов, каждый из которых соответствует определенному уровню идентификации пользователя:
 упрощенная (непроверенная) учетная запись (содержит минимальный набор данных о пользователе);
 стандартная (проверенная) учетная запись (данные о пользователе проверены в БГИР);
 подтвержденная учетная запись (данные о пользователе проверены в БГИР, а личность пользователя–физического лица подтверждена одним из доступных способов подтверждения).
Схематично связь между ролями и типами учетных записей физического лица отображена на рис. 5.
40
Пользователь сети
Интернет
Упрощенная учетная запись
Стандартная учетная запись
Подтвержденная учетная запись
Индивидуальный
предприниматель
Должностное лицо
юридического лица
Должностное лицо
ОГВ
Регистр
юридических лиц
Регистр ОГВ
Рисунок 5 – Типы учетных записей и роли пользователя в ЕСИА
4.1.1.1 Регистрация учетной записи физического лица
Регистрация учетной записи физического лица возможна следующими способами:
1. Самостоятельная регистрация пользователя через веб-интерфейс. В этом случае
пользователю самостоятельно нужно пройти следующие шаги:
 регистрация упрощенной (непроверенной) учетной записи пользователя (требуется
указать фамилию, имя, один из возможных подтвержденных каналов коммуникации
– мобильный телефон или адрес электронной почты);
 перевод учетной записи в состояние стандартной (проверенной) (включает в себя
заполнение пользователем личных данных, инициирование процедуры проверки
личных данных в БГИР и автоматическую верификацию личных данных в БГИР).
 перевод учетной записи в состояние подтвержденной (включает в себя
подтверждение личности пользователя одним из доступных способов
41
подтверждения – с помощью обращения в один из Центров обслуживания16, отправкой кода подтверждения личности по почте или с помощью КЭП).
2. Регистрация пользователя в одном из Центров обслуживания, ИС которого осуществляет вызов операций с использованием программного интерфейса ЕСИА, опубликованного в СМЭВ. Детальная информация о программном интерфейсе ЕСИА размещена в приложении Г. В результате регистрации в Центре обслуживания пользователь сразу получает подтвержденную учетную запись ЕСИА.
4.1.1.2 Назначение ролей
Назначение всех ролей физического лица в ЕСИА осуществляется с помощью веб-интерфейса17.
Детальная информация о назначении основных ролей физического лица представлена в таблице 4.
Таблица 4 – Способы назначения ролей
Роль
Способ назначения роли
Индивидуальный предприниматель
Самостоятельно через веб-интерфейс ЕСИА с помощью направления заявки с данными ИП, включающей в себя:
 ФИО;
 ИНН физического лица;
 ОГРНИП.
Заявка проходит проверку в БГИР. Если в ЕГРИП действительно существует запись с указанными данным, то пользователь получает роль индивидуального предпринимателя
Должностное лицо юридического лица
Получение роли должностного лица ЮЛ в ЕСИА происходит в результате:
 регистрации ЮЛ в ЕСИА, в этом случае регистрирующий ЮЛ пользователь получает роль должностного лица ЮЛ с правами руководителя (см. п. 4.1.2);
 приглашения руководителем или администратором профиля
16 Для подтверждения личности Центры обслуживания могут использовать соответствующий программный интерфейс ЕСИА (см. п. Г.3 приложения Г).
17 Инициирование приглашения на присоединение пользователя к юридическому лицу или ОГВ возможно с помощью программного интерфейса ЕСИА. Детальная информация – в Приложении Б.7.
42
ЮЛ в ЕСИА сотрудника.
Процедура приглашения сотрудника для присоединения к организации выполняется с помощью веб-интерфейса ЕСИА18. Включает в себя следующие шаги:
1. Руководитель или администратор учетной записи ЮЛ в ЕСИА формирует с помощью веб-интерфейса ЕСИА приглашение на присоединение к организации, включающее в себя:
 адрес электронной почты пользователя;
 ФИО пользователя;
 СНИЛС пользователя (опционально).
2. ЕСИА отправляет на указанный адрес электронной почты пользователя приглашение со ссылкой для присоединения к организации.
3. Пользователь, имеющий подтвержденную учетную запись, входит в ЕСИА по ссылке в приглашении. Если его ФИО и СНИЛС совпадает с данными в приглашении, то он присоединяется к учетной записи ЮЛ. Физическое лицо получает роль должностного лица ЮЛ.
Должностное лицо ОГВ
Получение роли должностного лица ОГВ в ЕСИА происходит в результате:
 регистрации ОГВ в ЕСИА, в этом случае регистрирующий ОГВ пользователь получает роль должностного лица ОГВ с правами руководителя (см. п. 4.1.3);
 приглашения руководителем или администратором профиля ОГВ в ЕСИА сотрудника.
Процедура приглашения сотрудника для присоединения к ОГВ выполняется с помощью веб-интерфейса ЕСИА19 и аналогична
18 Инициирование приглашения на присоединение пользователя к юридическому лицу возможно с помощью программного интерфейса ЕСИА. Детальная информация – в Приложении Б.7.
19 Инициирование приглашения на присоединение пользователя к ОГВ возможно с помощью программного интерфейса ЕСИА. Детальная информация – в Приложении Б.7.
43
процессу присоединения сотрудника к учетной записи ЮЛ
Один пользователь ЕСИА может одновременно являться должностным лицом в нескольких ОГВ и ЮЛ, а также иметь роль одного индивидуального предпринимателя.
4.1.2 Регистрация юридических лиц
Регистрация ЮЛ (внесение записи в регистр ЮЛ) осуществляется с помощью веб-интерфейса ЕСИА. Создавать учетную запись ЮЛ можно только из подтвержденной учетной записи физического лица – руководителя организации или представителя юридического лица, имеющего право действовать от имени организации без доверенности.
Процедура регистрации ЮЛ из подтвержденной учетной записи пользователя включает в себя следующие шаги:
1. Переход во вкладку «Организации» профиля пользователя и инициирование процедуры регистрации.
2. Подключение средства электронной подписи. Для регистрации юридического лица требуется использовать квалифицированную электронную подпись, выданную на имя руководителя юридического лица или на лицо, имеющее право действовать от имени юридического лица без доверенности.
3. Заполнение формы с данными о юридическом лице и данными о руководителе организации. Основные поля предзаполнены, поскольку они были считаны из сертификата электронной подписи, необходимо указать лишь ряд дополнительных сведений об организации:
− организационно-правовую форму;
− адрес электронной почты организации.
Если в личных данных не был указан ИНН, то следует указать ИНН пользователя как физического лица (или отметить, что ИНН отсутствует).
4. Ожидание окончания автоматической проверки данных организации и руководителя организации в Федеральной налоговой службе. Если ошибок не возникнет, то юридическое лицо будет зарегистрировано, т.е. будет внесена запись в регистр ЮЛ. Руководитель ЮЛ, осуществлявший регистрацию ЮЛ, автоматически получит роль должностного лица данного ЮЛ и права руководителя.
4.1.3 Регистрация ОГВ
В регистр органов и организаций ЕСИА могут быть включены только организации,
44
подпадающие под действие Постановления Правительства Российской Федерации от 28 ноября 2011 г. № 977.
Регистрация ОГВ осуществляется с помощью единого веб-интерфейса ЕСИА, предусмотренного и для ЮЛ. Специфика заключается в том, что руководитель ОГВ при регистрации в качестве типа своей организации указывает «Государственный орган или организация», указывает свою территориальную принадлежность и выбирает своведомство, подтверждающее статус регистрирующейся организации как ОГВ.
После выполнения проверок данных организации формируется запрос в ведомство, подтверждающее статус регистрирующейся организации как ОГВ. Если данное ведомство подтверждает, что организация имеет статус ОГВ, то учетной записи будет присвоен этот признак и она будет включена в регистр ОГВ. Если не подтверждает, что организация будет иметь учетную запись юридического лица (без признака ОГВ).
4.1.4 Регистрация информационных систем
Регистрация ИС выполняется организацией, являющейся оператором данной ИС. Эта организация предварительно должна быть зарегистрирована в ЕСИА.
В ЕСИА должны быть зарегистрированы ИС, которые:
 используют ЕСИА как поставщик идентификации (Identity Provider) для идентификации и аутентификации пользователей;
 используют ЕСИА в качестве поставщика ресурса (для интеграции по REST и OAuth 2.0);
 осуществляют регистрацию пользователей в ЕСИА.
Для регистрации ИС можно воспользоваться функцией Технологического портала ЕСИА20.
4.1.5 Регистрация системных групп
Для систем, интегрированных с ЕСИА, имеется возможность проверять наличие у пользователей специфических полномочий по доступу к этой системе. Данная возможность обеспечивается в ЕСИА посредством механизма системных групп (групп доступа) – для проведения авторизации сотрудников организаций (ЮЛ или ОГВ). Оператор ИС может зарегистрировать одну или несколько системных групп, которые будут доступны организации; уполномоченные сотрудники организаций смогут включать/исключать своих сотрудников с
20 Раздел 6 Регламента.
45
помощью веб-интерфейса ЕСИА (см. п. 4.2.2.3). После аутентификации данные о принадлежности сотрудника организации к системным группам данной ИС будут переданы в SAML-утверждениях, а также доступны с помощью программного интерфейса, основанного на архитектуре REST.
Регистрацию системных групп можно осуществлять с помощью Технологического портала ЕСИА, при условии, что данной организации предоставлено право создания собственных системных групп.
В ЕСИА предусмотрены следующие типы групп доступа:
− публичная – доступная для назначения всем организациям. Уполномоченный сотрудник организации (не являющейся владельцем группы) всегда может включать в эту группу сотрудников своей организации;
− ограниченно доступная (приватная) группа для ОГВ – доступная всем организациям, имеющим признак ОГВ;
− ограниченно доступная (приватная) – доступная организациям только с разрешения владельца системной группы. Уполномоченный сотрудник организации может включать в эту группу сотрудников своей организации только после получения организацией прав доступа со стороны организации-владельца системной группы.
Организация-владелец ограниченно доступной группы может предоставить организации доступ к группе в следующих режимах:
− с возможностью свободного включения в группу сотрудников;
− с включением в группу сотрудников только с персональным согласованием этого включения со стороны организации-владельца этой группы. В этом случае добавление сотруднка в группу с помощью веб-интерфейса или программного интерфейса влечет за собой направление запроса в учетную запись организации-владельца группы для его рассмотрения; только после согласования запроса со стороны организации-владельца сотрудник будет добавлен в группу.
4.2 Управление данными
4.2.1 Управление данными физических лиц
Управление данными пользователя–физического лица осуществляется им самостоятельно с помощью веб-интерфейса ЕСИА. Доступ к профилю пользователя осуществляется по ссылке:
https://esia-portal1.test.gosuslugi.ru/profile/user/
46
К персональным данным, размещенным в ЕСИА, относятся:
− основная информация:
фамилия, имя, отчество;
пол;
дата рождения;
реквизиты удостоверяющего личность документа (только для стандартной (проверенной) и подтвержденной учетной записи);
гражданство (только для стандартной (проверенной) и подтвержденной учетной записи).
− идентификаторы:
СНИЛС (только для стандартной (проверенной) и подтвержденной учетной записи);
ИНН (только для подтвержденной учетной записи).
− документы:
водительское удостоверение;
свидетельство о рождении;
полис ОМС;
заграничный паспорт;
военный билет.
− данные о детях;
− контактная информация:
адрес электронной почты;
мобильный телефон;
домашний телефон
почтовый адрес;
адрес регистрации.
− транспортные средства:
государственный регистрационный знак транспортного средства и реквизиты свидетельства о регистрации транспортного средства.
Процедура редактирования ряда полей различается в зависимости от того, является ли учетная запись пользователя упрощенной (непроверенной), стандартной (проверенной) или подтвержденной. Для стандартной (проверенной) и подтвержденной учетной записи изменение ряда полей возможно только после проверки этих данных в БГИР. До тех пор, пока данные не будут подтверждены, изменение данных не произойдет.
47
4.2.2 Управление данными юридических лиц
Управление данными ЮЛ осуществляется самостоятельно руководителем или администратором профиля ЮЛ с помощью веб-интерфейса ЕСИА21. Доступны следующие функции:
− управление идентификационными данными ЮЛ;
− управление сотрудниками ЮЛ;
− управление филиалами ЮЛ;
− управление принадлежностью сотрудников к системным группам (группам доступа).
Войти в профиль организации ЕСИА и управлять данными организации может только уполномоченный сотрудник – т.е. пользователь, который является руководителем организации, выполнившим регистрацию организации, или который включен в группу администраторов профиля ЕСИА.
4.2.2.1 Управление идентификационными данными ЮЛ
Уполномоченный сотрудник имеет возможность редактировать следующие данные ЮЛ:
− организационно-правовая форма;
− адрес электронной почты;
− почтовый адрес;
− телефон организации;
− факс организации.
4.2.2.2 Управление сотрудниками ЮЛ
Уполномоченный сотрудник с помощью веб-интерфейса ЕСИА имеет возможность просмотреть перечень сотрудников, т.е. пользователей, присоединенных к организации. Также он имеет возможность:
− отредактировать следующие данные сотрудника:
- служебный адрес электронной почты;
- служебный номер телефона;
- должность.
− отправить приглашение пользователю для его присоединения к организации (см. п. 4.1.1.2), а также исключить сотрудника из организации. При исключении сотрудника
21 Также возможно управление данными организации с помощью программного интерфейса на основе REST (см. Приложение Б).
48
ЕСИА удаляет пользователя из всех системных групп и исключает сотрудника из ЮЛ, при этом учетная запись сотрудника не удаляется из регистра физических лиц22.
4.2.2.3 Управление принадлежностью сотрудников к системным группам
Для регулирования доступа сотрудников к интегрированным с ЕСИА информационным системам уполномоченный сотрудник организации имеет возможность с помощью веб-интерфейса ЕСИА включать и исключать сотрудников из системных групп23.
Группы доступа (системные группы) связаны с информационными системами, доступ к которым они регулируют. Если сотрудник организации был включен в системную группу, то соответствующие данные сможет обрабатывать ИС-владелец данной системной группы: информация о принадлежности к системной группе будет передана в утверждениях SAML, а также может быть получена с помощью программного интерфейса, основанного на архитектурном стиле REST.
Общая схема взаимодействия выглядит следующим образом:
1. ОГВ регистрирует в ЕСИА информационную систему (ИС-1), доступ которой должны получать представители организаций, зарегистрированных в ЕСИА. При регистрации ИС-1 данный ОГВ определяет название соответствующей системной группы (см. п. 4.1.4), например «группа 1».
2. Уполномоченный сотрудник организации использует веб-интерфейс ЕСИА для просмотра существующих групп доступа. Находит группы доступа, связанные с системой ИС-1, и видит, что в этом перечне появилась «группа-1»24.
3. Уполномоченный сотрудник ЮЛ добавляет в «группу-1» сотрудников организации, которым он разрешает действовать в ИС-1 от имени ЮЛ.
4. Сотрудник ЮЛ, включенный в системную группу «группа-1», аутентифицируется с помощью ЕСИА в ИС-1.
5. ИС-1 получает среди SAML-утверждений информацию о том, что пользователь включен в «группу-1» (для этого анализирует утверждение memberOfGroups – см. п. А.5 приложения А), и принимает положительное решение о доступе пользователя к своим ресурсам.
22 Бывший сотрудник ЮЛ может продолжать использовать свою учетную запись ЕСИА, например, для получения государственных услуг в электронном виде.
23 Если соответствующими информационными системами предусмотрены группы доступа (системные группы), см. п. 4.1.5.
24 Если это публичная группа или ограниченно доступная группа, доступ к которой предоставлен данной организации.
49
6. Если другая интегрированная с ЕСИА ИС-2 при аутентификации обрабатывает SAML-утверждение о принадлежности пользователя к группам, то она не увидит информацию о «группе-1», потому что данная ИС-2 не является владельцем этой группы.
4.2.2.4 Управление филиалами ЮЛ
Уполномоченный сотрудник с помощью веб-интерфейса ЕСИА имеет возможность просмотреть перечень филиалов организации, зарегистрировать новый филиал, а также:
− изменить данные филиала;
− управлять сотрудниками филиала и их данными;
− управлять принадлежностью сотрудников филиала к группам.
Указанные операции с филиалами аналогичны соответствующим операциям с учетными записями организаций.
4.2.3 Управление данными ОГВ
Управление данными ОГВ осуществляется по аналогии с управлением обычными организации-юридическими лицами, т.е. с помощью веб-интерфейса ЕСИА.
Управление данными ОГВ включает в себя:
− управление должностными лицами ОГВ;
− управление полномочиями должностных лиц ОГВ;
− управление филиалами ОГВ.
4.2.3.1 Управление должностными лицами ОГВ
Добавление должностных лиц осуществляется в результате выполнения операции приглашения пользователей–физических лиц, имеющих подтвержденную учетную запись ЕСИА. Этот процесс может выполняться с помощью веб-приложения «Профиль организации ЕСИА» по аналогии с управлением сотрудниками ЮЛ.
4.2.3.2 Управление полномочиями должностных лиц ОГВ
Полномочия должностного лица регулируются при помощи механизма системных групп. Выполняется по аналогии с тем, как это реализуется у юридических лиц, не имеющих признака ОГВ (см. п. 4.2.2.3).
4.2.3.3 Управление филиалами ОГВ
Управление филиалами ОГВ выполняется по аналогии с тем, как это реализуется у юридических лиц, не имеющих признака ОГВ (см. п. 4.2.2.4).
50
4.2.4 Управление данными ИС
Изменение данных ИС осуществляется в соответствии с Регламентом. Уполномоченный сотрудник оператора ИС имеет также возможность с помощью веб-приложения «Технологический портал ЕСИА» осуществлять следующие действия:
 загружать и удалять сертификаты ИС;
 редактировать системные группы (при наличии необходимого полномочия у соответствующей организации).
4.3 Получение данных
Информационная система, подключенная к ЕСИА с целью идентификации и аутентификации, получает информацию о субъектах, данные о которых хранятся в регистрах ЕСИА. С этой целью в ЕСИА предусмотрены следующие программные интерфейсы:
1. Программный интерфейс на основе SAML 2.0. ИС, интегрированная с ЕСИА, получает данные пользователя на момент его аутентификации в ЕСИА. Детальная информация об использовании этого программного интерфейса представлена в приложении А.
2. Программный интерфейс на базе архитектурного стиля “Representational State Transfer” (REST). Он позволяет интегрированным с ЕСИА информационным системам получать доступ к хранящимся в ЕСИА данным в произвольный момент времени после предварительного получения разрешения от пользователя25. Обеспечивается доступ к следующим данным:
 данные о пользователе (идентификационные данные, данные о транспортных средствах, данные о вхождении в организации);
 данные об организациях (идентификационные данные, данные о сотрудниках);
 данные об информационных системах (идентификационные данные, данные об организации-владельце).
Детальная информация об использовании этого программного интерфейса представлена в Приложениях Б и В26.
25 За исключением получения данных об ИС (см. п. Б.7 приложения Б и п. В.3 приложения В.
26 Порядок подключения к ЕСИА с целью использования программных интерфейсов описан в п. 9-10 Регламента.
51
4.3.1 Особенности получения данных физических лиц
Получать данные физических лиц (с любыми ролями, за исключением должностных лиц ОГВ) можно с помощью программных интерфейсов, основанных на SAML 2.0 и REST.
Получение данных физических лиц, имеющих роль должностного лица ОГВ, возможно с помощью программных интерфейсов, основанных на SAML 2.0.
При получении данных физических лиц с помощью интерфейса, основанного на SAML 2.0, следует принимать во внимание следующие особенности:
 ИС получает данные пользователя на момент его аутентификации, как результат, если данные о пользователе менялись в течение одной сессии, то ИС сможет получить их только после повторной аутентификации пользователя;
 ИС имеет возможность получать только те данные, которые были определены на стадии подключения ИС к ЕСИА (см. п. 3.1.1).
При получении данных физических лиц с помощью интерфейса, основанного на архитектуре REST, следует принимать во внимание следующие особенности:
 ИС получает доступ к данным о пользователе только после явного разрешения со стороны пользователя. У пользователя имеется возможность впоследствии отозвать это разрешение;
 для получения данных о пользователе нет необходимости интегрироваться с ЕСИА по протоколу SAML для аутентификации пользователей.
4.3.2 Особенности получения данных юридических лиц
При получении данных юридических лиц с помощью интерфейса, основанного на SAML 2.0, следует принимать во внимание следующие особенности:
 ИС может получать только данные об одном ЮЛ, в котором состоит физическое лицо, прошедшее аутентификацию (пользователь выбрал ЮЛ, от имени которой будет действовать в данной ИС).
При получении данных юридических лиц с помощью интерфейса, основанного на REST, следует принимать во внимание следующие особенности:
 возможно получение общих данных обо всех ЮЛ, сотрудником которых является данное физическое лицо.
 полный доступ к данным ЮЛ может дать только уполномоченный сотрудник ЮЛ (например, его руководитель), обычный сотрудник ЮЛ может дать разрешение на просмотр лишь ограниченного объема данных.
52
Схема получения данных о принадлежности сотрудника к системным группам представлена в п. 4.2.2.3.
4.3.3 Особенности получения данных ОГВ и полномочий должностных лиц
Данные об ОГВ могут быть получены с помощью программного интерфейса, основанного на протоколе SAML (в рамках получения данных о должностных лицах ОГВ, аутентифицированных через ЕСИА, см. п. 4.3.1).
Если ИС производит идентификацию и аутентификацию должностных лиц ОГВ с помощью ЕСИА и у нее возникает необходимость проверять наличие у пользователя специфических полномочий, то рекомендуется использовать утверждения SAML systemAuthority (см. Приложение А).
4.3.4 Особенности получения данных ИС
Получать данные об интегрированных с ЕСИА информационных системах можно только посредством программных интерфейсов, основанных на архитектурном стиле REST (см. п. Б.7 приложения Б).
Чтобы система могла быть идентифицирована средствами ЕСИА, она должна загрузить в ЕСИА свой сертификат (см. п. 4.2.4).
Чтобы система могла производить идентификацию ИС через ЕСИА, она должна предварительно получить разрешение на вызов соответствующего REST-сервиса ЕСИА. Необходимость получать данные об ИС должна быть указана в Заявке на создание записи регистра информационных систем в ЕСИА (среди целей подключения ИС в ЕСИА)27.
27 См. раздел 6 Регламента.
53
ПРИЛОЖЕНИЕ А. ИСПОЛЬЗОВАНИЕ ЕСИА В ЦЕЛЯХ ИДЕНТИФИКАЦИИ И АУТЕНТИФИКАЦИИ ПОСРЕДСТВОМ СТАНДАРТА SAML 2.0
А.1 Общие сведения о стандарте SAML 2.0
Взаимодействие ИС с ЕСИА с целью идентификации и аутентификации осуществляется посредством электронных сообщений, основанных на стандарте SAML 2.0.
SAML 2.0 – основанный на XML стандарт по обмену информацией (утверждениями) об аутентификации и авторизации между доверенными доменами безопасности.
Основными компонентами SAML 2.0 являются:
1. Утверждение – информация о подлинности, атрибутах и назначениях;
2. Протокол – правила формирования запросов и ответов в процессе взаимодействий через SAML 2.0.
3. Связывание – отображение протокол SAML 2.0 на транспортные протоколы связи и передачи сообщений;
4. Профиль – сочетание утверждений, протоколов и связываний для поддержки конкретного сценария взаимодействия.
Рисунок 6 – Основные компоненты SAML 2.0
54
SAML 2.0 определяет синтаксис и семантику утверждений, относящихся к аутентификации, атрибутам и авторизационной информации. Определены следующие типы утверждений:
 утверждение по аутентификации – определяет, что данный субъект прошел аутентификацию определенным способом в определенный момент времени;
 утверждение по авторизации – определяет, на какие действия авторизован конкретный субъект;
 утверждение по атрибутам – определяет специфическую информацию о конкретном субъекте.
SAML 2.0 определяет способ передачи утверждений в протоколах. В ЕСИА используются следующие протоколы SAML 2.0 типа запрос/ответ:
 Authentication Request Protocol (протокол запроса аутентификации) – определяет способы, которыми аутентифицированный субъект может запросить утверждения, содержащие аутентификационные данные и атрибуты субъекта;
 Single Logout Protocol (протокол единого выхода) – определяет механизм одновременного завершения активных сессий, ассоциированных с аутентифицированным субъектом. Выход может инициироваться пользователем или поставщиком идентификации.
Связывания SAML 2.0 определяют, как различные сообщения протоколов SAML 2.0 могут передаваться поверх транспортных протоколов (например, SOAP, HTTP). B ЕСИА используются следующие связывания SAML 2.0:
 HTTP Redirect – определяет, как сообщения протокола SAML 2.0 могут передаваться, используя сообщения НТТР Redirect (ответы с кодом состояния 302);
 HTTP POST – определяет, как сообщения протокола SAML 2.0 могут передаваться с использованием сообщений НТТР POST.
Профили SAML 2.0 определяют, какие утверждения, протоколы и связывания SAML 2.0 могут использоваться в конкретных вариантах использования. В ЕСИА используются следующие профили SAML 2.0:
 Web Browser SSO – определяет, как реализовать однократную аутентификацию в стандартных веб-браузерах;
 Single Logout – определяет, как выполнить одновременный выход из всех сессий.
Как правило, поставщику услуг требуется детальная информация о результатах проведенной аутентификации. Эта информация содержится в контексте аутентификации, передаваемом в утверждениях SAML 2.0. Аутентификационный контекст (authentication
55
context) определяет синтаксис для описания механизмов аутентификации.
А.2 Общие рекомендации по реализации интерфейсов поставщика услуг
Для реализации интерфейсов поставщика услуг можно использовать уже разработанные различные реализации поставщиков услуг с открытым кодом. Одним из таких поставщиков услуг является OIOSAML, реализованный под различные платформы. Различные реализации OIOSAML можно посмотреть на информационном ресурсе http://digitaliser.dk/group/42063/resources.
Примечание. В сборки последних версий OIOSAML разработчики стали включать библиотеки OpenSAML, которые несовместимы с ЕСИА. В настоящий момент с ЕСИА совместима версия 2.4.1. OpenSAML. Скачать данную версию можно по ссылке: http://www.shibboleth.net/downloads/java-opensaml/2.4.1.
Еще одним возможным вариантом реализации поставщика услуг для сред PHP является SimpleSAMLphp. Более подробную информацию о SimpleSAMLphp можно получить на информационном ресурсе http://simplesamlphp.org.
При самостоятельной реализации интерфейсов поставщика услуг на Java или C++ одним из возможных вариантов является использование набора библиотек с открытым кодом OpenSAML (строго версии 2.4.1.), который поддерживает работу со спецификациями SAML версии 1.0, 1.1 и 2.0. Подробную информацию о библиотеках OpenSAML можно посмотреть на информационном ресурсе https://wiki.shibboleth.net/confluence/display/OpenSAML/Home. Примеры кода по использованию OpenSAML для Java приведены в разделе А.7.
А.3 Общие требования к реализации интерфейса поставщика услуг
Интерфейсы поставщика услуг должны соответствовать следующим профилям SAML 2.0:
 Web Browser SSO с учетом рекомендаций Interoperable SAML 2.0 Web Browser SSO Deployment Profile;
 Single Logout.
Запрос к системе ЕСИА от информационной системы на идентификацию и
56
аутентификацию пользователя должен быть подписан с помощью закрытого ключа информационной системы с использованием следующих алгоритмов:
 алгоритм c14n для каноникализации сообщения в формате XML;
 алгоритмы SHA-1 / SHA-256 / SHA-512 и RSA – для вычисления цифрового отпечатка сообщения и кода подтверждения целостности сообщения. В качестве протокола доставки должен использоваться метод связывания HTTP-redirect;
Ответ с результатами идентификации и аутентификации пользователя, сформированный системой ЕСИА, подписывается с помощью закрытого ключа системы ЕСИА и преобразуется с использованием открытого ключа информационной системы. При этом используются следующие алгоритмы:
 алгоритм c14n для каноникализации сообщения в формате XML;
 алгоритмы SHA-1 / SHA-256 / SHA-512 и RSA – для вычисления цифрового отпечатка сообщения и кода подтверждения целостности сообщения;
 алгоритмы RSA и SHA-1 / SHA-256 / SHA-512 для передачи ключа преобразования сообщения на основе открытого ключа информационной системы, алгоритм AES для осуществления преобразования на переданном ключе. В качестве протокола доставки сообщения от системы ЕСИА информационной системе используется метод связывания HTTP POST.
Запрос к системе ЕСИА от ИС на завершение активной сессии пользователя должен осуществляться из браузера пользователя и должен быть подписан с помощью закрытого ключа информационной системы с использованием следующих алгоритмов:
 c14n;
 SHA-1 / SHA-256 / SHA-512;
 RSA.
В качестве протокола доставки должен использоваться метод связывания HTTP-redirect.
Запрос от системы ЕСИА к ИС на завершение активной сессии пользователя подписывается с использованием закрытого ключа системы ЕСИА. При этом используются следующие алгоритмы:
 c14n;
 SHA-1 / SHA-256 / SHA-512;
 RSA.
В качестве протокола доставки используется метод связывания HTTP-redirect.
Ответ с результатами завершения активной сессии пользователя от информационной
57
системы к системе ЕСИА должен быть подписан с помощью закрытого ключа информационной системы с использованием следующих алгоритмов:
 c14n;
 SHA-1 / SHA-256 / SHA-512;
 RSA.
В качестве протокола доставки должен использоваться метод связывания HTTP-redirect.
Ответ с результатами завершения активной сессии пользователя от системы ЕСИА к информационной системе передается подписанным с помощью закрытого ключа системы ЕСИА с использованием следующих алгоритмов:
 c14n;
 SHA-1 / SHA-256 / SHA-512;
 RSA.
В качестве протокола доставки используется метод связывания HTTP-redirect.
А.4 Описание форматов электронных сообщений SAML 2.0 в ЕСИА
В данном разделе описываются следующие протоколы SAML 2.0, используемые ЕСИА при формировании электронных сообщений:
 протокол запроса аутентификации;
 протокол единого выхода.
Запрос аутентификации (AuthnRequest)
Запрос аутентификации (AuthnRequest) представляет собой XML-документ, который содержит следующие элементы:
1. saml2p:AuthnRequest – описывает параметры запроса AuthnRequest и содержит следующие атрибуты:
 AssertionConsumerServiceURL – URL провайдера услуг, предназначенный для обработки ответов от поставщика идентификации (необязательный);
 Destination – URL-адрес ИС-поставщика идентификации, предназначенный для обработки AuthnRequest;
 ID – уникальный идентификатор сообщения;
 IssueInstant – дата создания запроса;
 ProtocolBinding – используемая SAML привязка.
58
2. saml2:Issuer – идентификатор поставщика услуг, отправившего AuthnRequest (является
вложенным по отношению к элементу saml2p:AuthnRequest).
Структура AuthnRequest:
saml2p:AuthnRequest saml2:Issuer
Рисунок 7 – Структура AuthnRequest
Пример AuthnRequest:
<?xml version="1.0" encoding="UTF-8"?>
<saml2p:AuthnRequest
xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
AssertionConsumerServiceURL="https://atc-
504:7002/oiosaml/saml/SAMLAssertionConsumer"
Destination="https://esiaportal1.
test.gosuslugi.ru/idp/profile/SAML2/Redirect/SSO"
ForceAuthn="false"
ID="_054240e4-b2a8-48e9-b4c6-e0b5e84d3a35"
IsPassive="false"
IssueInstant="2012-02-28T06:43:35.704Z"
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTPPOST"
Version="2.0">
<saml2:Issuer
xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">sia_test</saml2:Issuer>
</saml2p:AuthnRequest>
Для сгенерированного SAML 2.0 сообщения с запросом AuthnRequest должно быть
выполнено связывание (binding) с протоколом HTTP по методу HTTP-Redirect с учетом
следующих особенностей:
 сообщение подписывается с помощью электронной подписи поставщика услуг, причем
подписана должна быть строка запроса на аутентификацию пользователя;
 подписанное сообщение сжимается и кодируется в кодировке Base64.
В процессе связывания формируется конечный URL AuthnRequest, который в качестве
GET-параметров должен содержать:
 SAMLRequest – AuthRequest в конечном виде;
 SigAlg – алгоритм подписи запроса, с помощью которого выполнялась подпись запроса
аутентификации;
 Signature – подпись, полученная в результате подписания запроса аутентификации.
Пример URL AuthnRequest:
https://esia59
portal1.test.gosuslugi.ru/idp/profile/SAML2/Redirect/SSO?SAMLRequest=fZJBa%2BMwEIX%2FitBdlqzYWyPilLSlbK
FLQ%2BzuYS9FkSepwJGyGtn051dxEtpS6EUg9Oabmfc0v37b92SEgNa7muaZoASc8Z11u5o%2Bt%2FesoteLOep9Lw9qOcRXt4b%2FA
2AkqdChOr3UdAhOeY0WldN7QBWNapZ%2FHpXMhDoEH73xPSVLRAgxtbr1Doc9hAbCaA08rx9r%2BhrjARXnOhpWikJdCSG5t%2F7Ygk
%2FHkfgNQcldGsc6HacVLhS0mnUwZrDzY6YjM0d5n3S7LAzcdgeextraHiaq5GvobAATedM8UXLvg4Fp3ZpudY9AycNdTV9EIcy22JR
sVpYVK%2FIrzTYm75j%2BVVVFJTeiK02S4koj2hE%2BihEHeHAYtYs1lSKXTEgmq1ZUKp%2BpvMhmVfGPktXZqhvrThH85OvmJEL1u2
1XbPXUtJT8vUSZBPQcnJq6h8%2BJ%2FQzWF4%2FpItn4EpO%2Fc%2F4ZtThfv36JxTs%3D&RelayState=_12db488a-a516-41e3-
801c-3e8f23547314&SigAlg=http%3A%2F%2Fwww.w3.org%2F2000%2F09%2Fxmldsig%23rsasha1&
Signature=k1XL2WfE1KMHzaJtjjaL2O1soweYNM06Xt50E20QgwRzVOBZ0T79HJEjPMu3jBhDdmM47zlrswbhUFPV22oDbk5K
uXJ%2F5FVPwXCTefnVCZGXHU8b1SWuC%2FoKlTSxum6enoommHN5S%2FeYAP9S0KNNW5yEP3eJQHkcsTYuTKPmyP8%3D
Ответ на запрос аутентификации (AuthnResponse).
В случае успешной аутентификации поставщик идентификации формирует ответ на
запрос аутентификации – AuthnResponse, который содержит утверждение (Assertion) об
аутентификации. AuthnResponse представляет собой XML-документ со следующей структурой:
Assertion
saml2:AttributeStatement
saml2:AuthnStatement
Атрибуты объекта утверждения
saml2:Issuer
Автор утверждения
saml2:Signature
Подтверждение авторства утверждения
saml2:Subject
Получатель утверждения
saml2:Condition
Условия действия утверждения
Рисунок 8 – Структура AuthnResponse
Элементы saml2:Issuer и saml2:Signature содержат идентификатор поставщика
идентификации и электронную подпись, созданную с помощью сертификата поставщика
идентификации.
Элемент saml2:Subject содержит информацию о AuthnRequest, которому соответствует
60
данный AuthnResponse, и представляет собой следующую структуру:
Рисунок 9 – Структура saml2:Subject
Элемент saml2:NameID содержит уникальный идентификатор, присвоенный поставщиком идентификации соответствующему AuthnRequest.
Элемент saml2:SubjectConfirmationData содержит набор атрибутов, в том числе:
 InResponseTo – содержит идентификатор AuthnRequest (соответствует значению атрибута ID);
 NotOnOrAfter – содержит дату, до которой данный AuthnRequest действителен.
 Recipient – URL обработчика AuthnResponse (соответствует значению AssertionConsumerServiceURL).
Элемент saml2:Condition содержит описание условий, при которых данный AuthnResponse считается действительным. Данный элемент имеет два атрибута – NotBefore и NotOnOrAfter, которые указывают на временной промежуток, в который данный AuthnResponse действителен. Также saml2:Condition имеет вложенный элемент saml2:AudienceRestriction, который содержит элемент saml2:Audience с указанием уникального идентификатора поставщика услуг (entity_id). Уникальный идентификатор системы в ЕСИА (entity_id) не должен содержать символов кириллицы.
Элементы saml2:AuthnStatement и saml2:AttributeStatement содержат информацию о результатах аутентификации.
Элемент saml2:AuthnStatement имеет два атрибута:
 AuthnInstant – дата аутентификации;
 SessionIndex – уникальный идентификатор сессии пользователя (с помощью него, например, выполняется повторная аутентификация и операция Logout).
Элемент saml2:AttributeStatement содержит атрибуты пользователя и имеет следующую структуру:
saml2:Subjectsaml2:NameIDsaml2:SubjectConfirmationsaml2:SubjectConfirmationData
61
saml2:AttributeStatement
saml2:Attribute saml2:AttributeValue
saml2:Attribute saml2:AttributeValue
saml2:Attribute saml2:AttributeValue
Рисунок 10 – Структура saml2:AttributeStatement
Элемент saml2:Attribute имеет три атрибута:
 FriendlyName – сокращенное наименование атрибута;
 Name – полное наименование атрибута;
 NameFormat – формат полного наименования атрибута.
Элемент saml2:AttributeValues состоит из двух атрибутов: xmlns:xsi и xsi:type. Эти
атрибуты определяют формат значения атрибута пользователя.
Пример AuthnResponse приведен в разделе А.9.
Запрос завершения активной сессии пользователя (LogoutRequest)
Запрос завершения активной сессии (LogoutRequest) представляет собой XML-документ
со следующей структурой:
saml2:LogoutRequest
saml2:Issuer
saml2:NameID
saml2:SessionIndex
Рисунок 11 – Структура LogoutRequest
62
Завершение активной сессии пользователя может быть инициировано как со стороны поставщика услуг, так и со стороны поставщика идентификации. В случае, если завершение сессии инициирует поставщик услуг, то LogoutRequest должен содержать обязательный элемент saml2:SessionIndex.
Элемент saml2:LogoutRequest имеет следующие атрибуты:
 Destination – содержит URL обработчика LogoutRequest. В случае если завершение сессии инициировано поставщиком услуг, то содержит URL поставщика идентификации, и наоборот, если инициирован поставщиком идентификации – то URL SP.
 ID – содержит уникальный идентификатор сообщения.
 IssueInstant – дата формирования сообщения.
 Reason – присутствует в случае инициализации завершения сессии со стороны поставщика услуг.
Элемент saml2:Issuer в качестве значения содержит идентификатор (entity_id) инициатора завершения сессии – либо поставщика услуг, либо поставщика идентификации.
Элемент saml2:NameID в качестве значения содержит уникальный идентификатор присвоенный поставщиком идентификации соответствующему AuthnRequest.
Элемент saml2:SessionIndex содержит уникальный идентификатор пользователя, созданный при аутентификации.
Запрос на завершение сессии должен производиться из браузера (от имени пользователя). В качестве протокола доставки должен использоваться метод связывания HTTP-redirect.
Примеры запроса завершения сессии: <?xml version="1.0" encoding="UTF-8"?> <saml2p:LogoutRequest xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" Destination="https://esia-portal1.test.gosuslugi.ru/idp/profile/SAML2/Redirect/SLO" ID="_f51e2082-f899-476d-b88b-6dc743cb4969" IssueInstant="2012-03-01T13:46:01.984Z" Reason="urn:oasis:names:tc:SAML:2.0:logout:user" Version="2.0" xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"> <saml2:Issuer>sia_test</saml2:Issuer> <saml2:NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"> _4b58555ef34da11fae0aa08e8987dbb3 </saml2:NameID> <saml2p:SessionIndex> 86e46a8d455acd02f5a9ef4072f7b66c46b4422bfc38631aa6e50b8d3f032c43 </saml2p:SessionIndex> </saml2p:LogoutRequest> <?xml version="1.0" encoding="UTF-8"?> <saml2p:LogoutRequest xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" Destination="https://atc-504:7002/oiosaml/saml/LogoutServiceHTTPRedirect" ID="_5741a3cde023a8a669dd720e283642df" IssueInstant="2012-03-01T13:51:41.711Z" Version="2.0"> <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"> https://esia-portal1.test.gosuslugi.ru/idp/shibboleth
63
</saml2:Issuer>
<saml2:NameID xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">
_4b58555ef34da11fae0aa08e8987dbb3
</saml2:NameID>
</saml2p:LogoutRequest>
Ответ на запрос завершения активной сессии (LogoutResponse).
Ответ на запрос завершения активной сессии (LogoutResponse) представляет собой
XML-документ со следующей структурой:
saml2:LogoutResponse
saml2:Issuer
saml2:Status
Рисунок 12 – Структура LogoutResponse
Элемент saml2:LogoutResponse имеет следующие атрибуты:
 Destination – содержит URL обработчика LogoutResponse. В случае если завершение
сессии инициировано поставщиком услуг, то содержит URL поставщика идентификации,
и наоборот, если инициирован поставщиком идентификации – то URL поставщика услуг.
 ID – содержит уникальный идентификатор сообщения.
 InResponseTo – содержит идентификатор LogoutRequest.
 IssueInstant – дата формирования сообщения.
Элемент saml2:Issuer, в зависимости от инициатора завершения сессии, в качестве
значения содержит идентификатор (entity_id) инициатора завершения сессии – либо
поставщика услуг, либо поставщика идентификации.
Элемент saml2p:Status имеет вложенный элемент saml2p:StatusCode, имеющий атрибут
Value, в качестве значения которого передается статус операции.
При этом ответ на запрос завершения сессии не содержит параметр RelayState,
переданный изначально при аутентификации пользователя.
Примеры ответа на запрос завершения сессии:
<?xml version="1.0" encoding="UTF-8"?>
<saml2p:LogoutResponse xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
Destination="https://atc-504:7002/oiosaml/saml/LogoutServiceHTTPRedirectResponse"
ID="_a0b3a5b88cf9b96d509ee7b9d497f693"
InResponseTo="_f51e2082-f899-476d-b88b-6dc743cb4969"
IssueInstant="2012-03-01T13:45:41.041Z"
Version="2.0">
<saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">
https://esia-portal1.test.gosuslugi.ru/idp/shibboleth
</saml2:Issuer>
<saml2p:Status>
64
<saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/> </saml2p:Status> </saml2p:LogoutResponse> <?xml version="1.0" encoding="UTF-8"?> <saml2p:LogoutResponse xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" Destination="https://esia-portal1.test.gosuslugi.ru/idp/profile/SAML2/POST/SLO" ID="_472d992a-1e50-40ef-8207-fb556eee4893" InResponseTo="_5741a3cde023a8a669dd720e283642df" IssueInstant="2012-03-01T13:52:08.177Z" Version="2.0"> <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"> sia_test </saml2:Issuer> <saml2p:Status> <saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/> </saml2p:Status> </saml2p:LogoutResponse>
А.5 Описание метаданных поставщика услуг
Метаданные поставщика услуг определяют способ описания конфигурационных данных (например, URL конечных точек веб-служб, ключи для проверки ЭП). Для описания метаданных ИС поставщика услуг используется язык XML. Структура файла метаданных ИС поставщика услуг приведена на рисунке 13.
65
Рисунок 13 – Структура файла метаданных ИС поставщика услуг (пример)
66
Перечень атрибутов пользователя (организации), содержащихся в файле метаданных поставщика услуг, приведен в таблице 5. Системам, интегрированным с ЕСИА, рекомендуется не использовать или отказаться от использования устаревших утверждений SAML (см. Приложение Д.2).
Если у пользователя или организации отсутствуют те или иные атрибуты, то они не передаются в SAML-утверждениях.
Таблица 5 – Перечень атрибутов, содержащихся в файле метаданных поставщика услуг № Атрибут Описание Примечание
1.
assuranceLevel
Уровень достоверности идентификации пользователя. Возможны следующие значения:
AL10 – упрощенная (непроверенная) учетная запись;
AL15 – стандартная (проверенная) учетная запись;
AL20 – подтвержденная учетная запись;
AL30 – подтвержденная учетная запись (аутентификация по КЭП).
Рекомендуется использовать атрибуты:
- personTrusted – для определения подвержденных учетных записей;
- authnMethod – для определения метода аутентификации.
2.
attachedToOrg
Признак включенности (присоединения) к организации
Необходимо использовать globalRole
3.
authnMethod
Метод аутентификации.
Принимает следующие возможные значения:
PWD — аутентификации по логину и паролю;
DS — аутентификации по ЭП.
67
№ Атрибут Описание Примечание
4.
authToken
Идентификатор сессии пользователя в системе ЕСИА
5.
birthDate
Дата рождения пользователя. Передается в формате DD-MM-YYYY
6.
firstName
Имя пользователя. Не более 256 символов
7.
gender
Пол пользователя. Принимает значения:
MALE – мужской;
FEMALE – женский.
8.
globalRole
Роль пользователя.
Принимает следующие возможные значения:
P — физическое лицо (Physical person);
E — должностное лицо организации (Employee).
9.
inn
ИНН пользователя
Сохранен для обеспечения совместимости. Вместо него необходимо использовать personINN
10.
lastName
Фамилия пользователя. Не более 256 символов
11.
middleName
Отчество пользователя. Не более 256 символов
12.
memberOfGroups
Принадлежность пользователя к группам доступа ИС, осуществляющей идентификацию и
Использовать для определения принадлежности должностных лиц ЮЛ к группам доступа ИС
68
№ Атрибут Описание Примечание
аутентификацию должностных лиц ЮЛ. Передается в виде мнемоник системных групп через запятую
13.
name
Имя пользователя
Сохранен для обеспечения совместимости. Необходимо использовать lastName / firstName / middleName
14.
nsiId
Мнемоника ОГВ
Сохранен для обеспечения совместимости. Необходимо использовать orgOGRN и orgType
15.
orgAddresses
Адрес организации. Передается в виде XML документа
Каждый адрес в настоящее время описывается следующими атрибутами:
<addressType> – тип адреса, в настоящее время может принимать значения:
- ORG_LEGAL – юридический адрес;
- ORG_POSTAL – почтовый адрес.
<contryChar3Code> – код страны из трех символов (для России – RUS);
<index> – индекс;
<region> – субъект РФ;
<district> – внутригородской район;
<settlement> – населенный пункт; <street> – улица;
69
№ Атрибут Описание Примечание
<house> – дом;
<corpus> – корпус;
<structure> – строение;
<flat> – квартира.
Все атрибуты, начиная с индекса, – не более 256 символов.
16.
orgBranchKPP
КПП филиала, передается в формате XXXXXXXX, где X – цифры
17.
orgBranchName
Имя филиала
18.
orgContacts
Телефон и Email организации. Передается в виде XML документа
Каждый контакт в настоящее время описывается следующими атрибутами:
<contactType> – тип контакта, в настоящее время может принимать значения:
- PHN (телефон);
- EML (адрес электронной почты);
- FAX (факс).
<value> – значение контакта, для телефона и факса имеет формат +7(XXX)XXXXXXX*YYYYYY, где *YYYYYY – добавочный номер (только для PHN, опционально, не более 6 цифр), для адреса электронной почты – не более 2000 символов;
<verificationStatus> – – статус подтверждения контакта, где S – подтверждено, N – не
70
№ Атрибут Описание Примечание
подтверждено
19.
orgId
Идентификатор организации.
Сохранен для обеспечения совместимости. Для вновь подключаемых ИС необходимо использовать orgOid
20.
orgOid
Идентификатор организации. Любое положительное число
21.
orgKPP
КПП организации, передается в формате XXXXXXXX, где X – цифры
22.
orgLegalForm
Организационно-правовая форма организации. Передается название формы по справочнику ОКОПФ
23.
orgINN
ИНН организации пользователя. Передается в формате XXXXXXXXXX, где X – цифры.
Данный атрибут устанавливается только для случая, когда атрибут globalRole = E
24.
orgName
Наименование организации пользователя. Не более 4000 символов.
Данный атрибут устанавливается только для случая, когда атрибут globalRole = E
71
№ Атрибут Описание Примечание
25.
orgShortName
Краткое наименование организации. Не более 500 символов
26.
orgOGRN
ОГРН организации пользователя. Передается в формате XXXXXXXXXXXXX, где X – цифры.
Данный атрибут устанавливается только для случая, когда атрибут globalRole = E
27.
orgPosition
Должность пользователя в организации. Не более 256 символов
28.
orgType
Тип организации.
Принимает следующие возможные значения:
B — индивидуальный предприниматель (Businessman);
L — юридическое лицо (Legal entity);
A — орган исполнительной власти (Agency).
Данный атрибут устанавливается только для случая, когда атрибут globalRole = E
29.
personCitizenship
Гражданство пользователя Гражданство передается по
72
№ Атрибут Описание Примечание
справочнику ОКСМ. Значение для России – «RUS»
30.
personEMail
Адрес электронной почты пользователя. Не более 2000 символов
31.
personINN
ИНН пользователя. Передается в формате XXXXXXXXXXXX, где X – цифры.
Данный атрибут устанавливается только для случая, когда атрибут personType = R
32.
personMobilePhone
Номер мобильного телефона пользователя. Передается в формате +7(XXX)XXXXXXX, где X – цифры
33.
personOGRN
ОГРНИП пользователя. Передается в формате XXXXXXXXXXXXXXX, где X – цифры.
Данный атрибут устанавливается только для случая, когда атрибут orgType = B
34.
personSNILS
СНИЛС пользователя. Передается в формате XXX-XXX-XXX XX, где X – цифры.
Данный атрибут
73
№ Атрибут Описание Примечание
устанавливается только для стандартных (проверенных) и подтвержденных учетных записей
35.
personTrusted
Подтвержденная или неподтвержденная (упрощенная или стандартная) учетная запись пользователя
Y – подтвержденная учетная запись;
N – неподтвержденная (упрощенная или стандартная) учетная запись
36.
personType
Категория пользователя.
Сохранен для обеспечения совместимости. Необходимо использовать personCitizenship
37.
principalContacts
Контактные данные пользователя. Передается в виде XML документа
Каждый контакт в настоящее время описывается следующими атрибутами:
<contactType> – тип контакта, в настоящее время может принимать значения:
- EML (адрес электронной почты);
- MBT (мобильный телефон);
- PHN (домашний телефон);
- CEM (служебный адрес электронной почты пользователя, только для
74
№ Атрибут Описание Примечание
случая, когда атрибут globalRole = E);
- CPH (служебный номер телефона пользователя, только для случая, когда атрибут globalRole = E).
<value> – значение контакта, для телефонов имеет формат +7(XXX)XXXXXXX, для адреса электронной почты – не более 2000 символов;
<verificationStatus> – – статус подтверждения контакта, где S – подтверждено, N – не подтверждено
38.
principalDocuments
Документы пользователя. Передается в виде XML документа
Каждый документ в настоящее время описывается следующими атрибутами:
<documentType> – тип документа, в настоящее время это 01 – паспорт гражданина РФ, 02 – документ иностранного гражданина, 05 – водительское удостоверение, 06 – полис ОМС, 07 – загранпаспорт, 08 – свидетельство о рождении, 09 – вид на жительство, 10 – разрешение на временное проживание, 11 – военный билет.
<series> – серия документа, 4 символа для паспорта
75
№ Атрибут Описание Примечание
гражданина РФ;
<number> – номер документа, 6 символов для паспорта гражданина РФ;
<issueDate> – дата выдачи документа в формате YYYY-MM-DDT00:00:00;
<verificationStatus> – статус подтверждения доккумента, где S – подтверждено, N – не подтверждено;
<issuedBy> – орган, выдавший документ, строка не более чем из 2000 символов
39.
principalAddresses
Адрес пользователя. Передается в виде XML документа
Каждый адрес в настоящее время описывается следующими атрибутами:
<addressType> – тип адреса, в настоящее время это «PERSON_REGISTRATION» – адрес регистрации, «PERSON_LIVE» – адрес проживания.
<contryChar3Code > – трехбуквенный код страны.
<index> – индекс.
<house> – номер дома.
<corpus> – корпус.
<flat> – корпус.
40.
snils
СНИЛС пользователя.
Данный атрибут устанавливается только
Сохранен для обеспечения совместимости. Необходимо использовать personSNILS
76
№ Атрибут Описание Примечание
для случая, когда атрибут personType = R
41.
systemAuthority
Полномочия должностного лица ОГВ. Передается в виде XML c указанием мнемоники полномочия и мнемоники системы
Использовать для определения полномочий должностных лиц ОГВ и ЮЛ. Для определения принадлежности представителей юридических лиц к группам доступа использовать memberOfGroups28
42.
userId
Числовой идентификатор учетной записи пользователя в системе ЕСИА. Любое положительное число
43.
userName
Логин пользователя.
Сохранен для обеспечения совместимости. Необходимо использовать userId, personSNILS
44.
userType
Тип пользователя
Сохранен для обеспечения совместимости. Необходимо использовать globalRole
А.6 Шаблон файла метаданных <?xml version="1.0" encoding="UTF-8"?> <!--TODO Необходимо указать уникальный (в рамках поставщика идентификации) entityID сервис провайдера. Рекомендуется, чтобы значение атрибута entityID соответствовало домену информационной системы. Уникальный идентификатор системы в ЕСИА (entity_id) не должен содержать символов кириллицы. Например, http://moscow.rt.ru
28 В целях обеспечения совместимости системы, получавшие ранее полномочия юридических лиц в утверждении systemAuthority, продолжат получать эти данные в этом утверждении. Однако дальнейшее развитие функционала полномочий будет происходить в терминологии групп доступа, в связи с чем этим системам рекомендуется отказаться от использования systemAuthority и анализировать утверждения memberOfGroups. При регистрации в ЕСИА новых ИС, ориентированных на работу с ЮЛ, они будут иметь возможность зарегистрировать только системные группы. Данные о них будут передаваться в утверждении memberOfGroups.
77
--> <md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:esia="urn:esia:shibboleth:2.0:mdext" entityID="http://moscow.rt.ru"> <md:SPSSODescriptor AuthnRequestsSigned="true" WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"> <md:KeyDescriptor use="signing"> <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:X509Data> <ds:X509Certificate> <!--TODO Сюда необходимо вставить сертификат электронной подписи X509 сервис провайдера формата DER в кодировке Base64 --> </ds:X509Certificate> </ds:X509Data> </ds:KeyInfo> </md:KeyDescriptor> <md:KeyDescriptor use="encryption"> <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:X509Data> <ds:X509Certificate> <!--TODO Сюда необходимо вставить сертификат ключа электронной подписи X509 сервис провайдера формата DER в кодировке Base64 --> </ds:X509Certificate> </ds:X509Data> </ds:KeyInfo> </md:KeyDescriptor> <!--TODO Необходимо заполнить атрибуты вызова обработчика сервис провайдера (тег SingleLogoutService), отвечающего за обработку событий завершения сессий (logout): - Location - endpoint обработчика событий сервис провайдера, отвечающего за обработку сообщений от поставщика идентификации о том, что пользователь инициировал событие завершения сессии пользователя; - ResponseLocation - endpoint URL обработчика событий сервис провайдера, отвечающего за обработку сообщений от поставщика идентификации об успешном выполнении операции завершения сессии пользователя. --> <md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="endpoint URL" ResponseLocation="endpoint URL"/> <!--TODO Необходимо заполнить атрибут Location тега AssertionConsumerService, определяющий endpoint обработчика событий сервис провайдера, отвечающего за обработку ответа от поставщика идентификации на AuthnRequest запрос сервис провайдера. --> <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="endpoint URL" index="0" isDefault="true"/> </md:SPSSODescriptor> <md:AttributeAuthorityDescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:1.1:protocol urn:oasis:names:tc:SAML:2.0:protocol"> <saml:Attribute NameFormat="urn:mace:shibboleth:1.0:nameIdentifier" Name="transientId"><!--Сессионый идентификатор запроса сервис провайдера--></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="authToken" Name="urn:mace:dir:attribute:authToken"><!--Идентификатор сессии поставщика идентификации--></saml:Attribute> <!--TODO Далее следует список дополнительных атрибутов пользователя, которые могут быть включены в ответ поставщика идентификации на AuthnRequest запрос сервис провайдера. Необходимо оставить только те атрибуты, которые необходимы ИС. --> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="userId" Name="urn:mace:dir:attribute:userId"><!--Уникальный идентификатор пользователя в рамках поставщика идентификации--></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="authnMethod" Name="urn:esia:authnMethod"><!--Метод аутентификации с помощью которого пользователь прошел аутентификацию--></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="globalRole" Name="urn:esia:globalRole"><!--Роль под которой аутентифицировался пользователь--></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="lastName" Name="urn:mace:dir:attribute:lastName"><!--Фамилия пользователя--></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="firstName" Name="urn:mace:dir:attribute:firstName"><!--Имя пользователя--
78
></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="middleName" Name="urn:mace:dir:attribute:middleName"><!--Отчество пользователя--></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="personINN" Name="urn:esia:personINN"><!--ИНН пользователя--></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="personSNILS" Name="urn:esia:personSNILS"><!--СНИЛС пользователя--></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="personOGRN" Name="urn:esia:personOGRN"><!--ОГРНИП пользователя--></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="personEMail" Name="urn:esia:personEMail"><!--Электронный адрес пользователя--></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="assuranceLevel" Name="urn:esia:assuranceLevel"><!--Уровень достоверности идентификации пользователя--></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="birthDate" Name="urn:esia:birthDate"><!--Дата рождения пользователя--></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="gender" Name="urn:esia:gender"><!--Пол пользователя--></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="memberOfGroups" Name="urn:esia:memberOfGroups"><!--Принадлежность пользователя к группам доступа--></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="systemAuthority" Name="urn:esia:systemAuthority"><!--Полномочия должностного лица--></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="personCitizenship" Name="urn:esia:personCitizenship"><!--Гражданство пользователя--></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="personMobilePhone" Name="urn:esia:personMobilePhone"><!--Номер мобильного телефона пользователя--></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="personTrusted" Name="urn:esia:personTrusted"><!--Подтвержденная или неподтвержденная учетная запись пользователя--></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="principalAddresses" Name="urn:esia:principalAddresses"><!--Адреса пользователя--></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="principalContacts" Name="urn:esia:principalContacts"><!--Контактные данные пользователя--></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="principalDocuments" Name="urn:esia:principalDocuments"><!--Документы пользователя--></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="orgType" Name="urn:esia:orgType"><!--Тип организации пользователя--></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="orgName" Name="urn:esia:orgName"><!--Имя организации пользователя--></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="orgOGRN" Name="urn:esia:orgOGRN"><!--ОГРН организации пользователя--></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="orgINN" Name="urn:esia:orgINN"><!--ИНН организации пользователя--></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="orgPosition" Name="urn:esia:orgPosition"><!--Должность пользователя в организации--></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="orgAddresses" Name="urn:esia:orgAddresses"><!--Адрес организации--></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="orgBranchKPP" Name="urn:esia:orgBranchKPP"><!--КПП филиала--></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="orgContacts" Name="urn:esia:orgContacts"><!--Телефон и Email организации--></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="orgOid" Name="urn:esia:orgOid"><!--Идентификатор организации--></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="orgKPP" Name="urn:esia:orgKPP"><!--КПП организации--></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="orgLegalForm" Name="urn:esia:orgLegalForm"><!--Организационно-правовая форма организации--></saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" friendlyName="orgShortName" Name="urn:esia:orgShortName"><!--Краткое наименование организации--></saml:Attribute> </md:AttributeAuthorityDescriptor> <md:Organization> <!--TODO Необходимо заполнить описание организации к которой относится интегрируемая с ЕСИА ИС:
79
- OrganizationName - имя организации; - OrganizationDisplayName - имя организации, которая может отображаться пользователям при проведении процедуры аутентификации; - OrganizationURL - URL web-сайт компании. --> <md:OrganizationName xml:lang="ru">ОАО «Ростелеком»</md:OrganizationName> <md:OrganizationDisplayName xml:lang="ru">Ростелеком</md:OrganizationDisplayName> <md:OrganizationURL xml:lang="en">http://www.rt.ru</md:OrganizationURL> </md:Organization> <!--TODO Необходимо заполнить атрибуты организации, к которой относится интегрируемая с ЕСИА информационная система: - Company - имя организации, которая осуществляет эксплуатацию ИС; - EmailAddress - электронная почта эксплуатации ИС. --> <md:ContactPerson contactType="technical"> <md:Company>ОАО «Ростелеком»</md:Company> <md:EmailAddress>support@rt.ru</md:EmailAddress> </md:ContactPerson> <!--*********--> <!--EXTENSIONS--> <!--*********--> <md:Extensions> <!--TODO Далее следует список поддерживаемых поставщиком услуг глобальных ролей пользователей, а также поддерживаемые типы организаций (для роли должностное лицо организации). Необходимо оставить только те роли и типы организации, которые поддерживаются поставщиком услуг. Примечание. В случае некорректной обработки тега <md:Extensions> вашей реализацией поставщика услуг, данный тег можно закомментировать. --> <!--TODO В случае, если ИС не поддерживает работу с ролью "Должностное лицо организации" данный тег не обязателен. В случае, если ИС поддерживает глобальную роль "Должностное лицо организации" необходимо также указать работу с должностными лицами каких типов организации ИС поддерживает. В случае, если ИС поддерживает глобальную роль "Должностное лицо организации" (этот случай включает отсутствия тега SupportedGlobalRoles), но тег SupportedOrgTypes отсутствует - ЕСИА будет считать, что ИС поддерживает все типы организации. --> <!--В случае отсутствия тега SupportedGlobalRoles, ЕСИА будет считать, что ИС поддерживает все глобальные роли--> <esia:SupportedGlobalRoles> <esia:GlobalRole ID="P"></esia:GlobalRole> <!-- Физическое лицо --> <esia:GlobalRole ID="E"> <!-- Должностное лицо организации --> <esia:SupportedOrgTypes> <esia:OrgType ID="L"/> <!-- Юридическое лицо --> <esia:OrgType ID="B"/> <!-- Индивидуальный предприниматель--> <esia:OrgType ID="A"/> <!-- Орган исполнительной власти --> </esia:SupportedOrgTypes> </esia:GlobalRole> </esia:SupportedGlobalRoles> <esia:SupportedAuthnMethods> <esia:AuthnMethod ID="PWD"/> <!-- Авторизация по паролю --> <esia:AuthnMethod ID="DS"/> <!-- Авторизация по КЭП --> </esia:SupportedAuthnMethods> <esia:SupportedAccTypes> <esia:AccType ID="T"/> <!-- Авторизация только подтвержденных УЗ --> <esia:AccType ID="L"/> <!-- Авторизация упрощенных УЗ, но включая подтвержденные --> </esia:SupportedAccTypes> </md:Extensions> </md:EntityDescriptor>
А.7 Рекомендации по указанию URL-адресов и выбору идентификатора поставщика услуг
Все URL-адреса в метаданных для продуктивной среды не должны содержать IP адреса – обязательно указание доменного имени портала информационной системы.
80
Примеры:
1. Правильно для Единого портала государственных услуг (функций): <md:SingleLogoutService ResponseLocation="http://www.gosuslugi.ru/pgu/saml/LogoutServiceHTTPRedirectResponse" Location="https://www.gosuslugi.ru/pgu/saml/LogoutServiceHTTPRedirect" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"/> <md:AssertionConsumerService Location="https://www.gosuslugi.ru/pgu/saml/SAMLAssertionConsumer" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" isDefault="true" index="0"/>
2. Неправильно для Единого портала государственных услуг (функций): <md:SingleLogoutService ResponseLocation="http://109.207.1.97/pgu/saml/LogoutServiceHTTPRedirectResponse" Location="https://109.207.1.97/pgu/saml/LogoutServiceHTTPRedirect" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"/> <md:AssertionConsumerService Location="https://109.207.1.97/pgu/saml/SAMLAssertionConsumer" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" isDefault="true" index="0"/>
При выборе идентификатора поставщика услуг (entityID) в продуктивной среде рекомендуется руководствоваться следующими принципами:
1. Поле EntityID должно однозначно соответствовать URL портала информационной системы которая интегрируется с ИС ЕСИА. Примеры:
 Единый портал государственных услуг (функций): entityID="http://www.gosuslugi.ru";
 Российская общественная инициатива: entityID="https://www.roi.ru".
2. Указанный в поле entityID URL не должен содержать IP адрес – обязательно указание доменного имени портала информационной системы. Примеры:
 Единый портал государственных услуг (функций): entityID="http://www.gosuslugi.ru";
 Некорректный пример: entityID="http://109.207.1.97".
3. Указанный в поле entityID URL не должен содержать символов кириллицы.
А.8 Примеры кода на языке Java по использованию OpenSAML
Пример кода поставщика услуг public class Resource extends HttpServlet { private static SamlConsumer consumer = new SamlConsumer(); public void doGet(HttpServletRequest request, HttpServletResponse response) { requestMessage = consumer.buildRequestMessage(); response.sendRedirect(requestMessage); } public void doPost(HttpServletRequest request, HttpServletResponse response) { responseMessage = request.getParameter("SAMLResponse").toString(); result = consumer.processResponseMessage(responseMessage); } }
Пример кода создания запроса <AuthnRequest> // Создание элемента <Issuer> // issuerUrl - это url сервис-провайдера, который генерирует сообщение <authnRequest> String issuerUrl = "http://localhost:8080/saml-demo/resource"; IssuerBuilder issuerBuilder = new IssuerBuilder(); Issuer issuer = issuerBuilder.buildObject("urn:oasis:names:tc:SAML:2.0:assertion","Issuer","samlp"); issuer.setValue(issuerUrl); // создание запроса <AutnRequest> DateTime issueInstant = new DateTime();
81
AuthnRequestBuilder authRequestBuilder = new AuthnRequestBuilder(); AuthnRequest authRequest = authRequestBuilder.buildObject("urn:oasis:names:tc:SAML:2.0:protocol", "AuthnRequest", "samlp"); authRequest.setForceAuthn(new Boolean(false)); authRequest.setIsPassive(new Boolean(false)); authRequest.setIssueInstant(issueInstant); authRequest.setProtocolBinding("urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"); authRequest.setAssertionConsumerServiceURL(issuerUrl); authRequest.setIssuer(issuer); authRequest.setID(aRandomId); authRequest.setVersion(SAMLVersion.VERSION_20);
Сообщение <AuthnRequest> может содержать и другие элементы, такие как <NameIDPolicy>, <RequestedAuthnContext>. Эти элементы создаются и добавляются в <AuthnRequest> аналогичным образом.
Сгенерированный запрос <AuthnRequest> должен быть преобразовано (marshaled) с использованием “org.opensaml.xml.io.Marshaller” и должен быть закодирован в кодировке Base64 в URL с использованием org.opensaml.xml.util.Base64.
Считывание ответа <Response>
Для считывания ответа <Response>, например, из сервлета, ответ извлекается из структуры “HttpServletRequest”: responseMessage = request.getParameter("SAMLResponse").toString();
Извлеченное сообщение “responseMessage” необходимо преобразовать (unmarshal) и извлечь сообщение <Response>: DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); documentBuilderFactory.setNamespaceAware(true); DocumentBuilder docBuilder = documentBuilderFactory.newDocumentBuilder(); Document document = docBuilder.parse(new ByteArrayInputStream(authReqStr.trim().getBytes())); Element element = document.getDocumentElement(); UnmarshallerFactory unmarshallerFactory = Configuration.getUnmarshallerFactory(); Unmarshaller unmarshaller = unmarshallerFactory.getUnmarshaller(element); Response response = (Response) unmarshaller.unmarshall(element);
Далее с извлеченным SAML 2.0 Response message можно выполнять операции. Например, извлечем Subject's Name Id и сертификат: String subject = response.getAssertions().get(0).getSubject().getNameID().getValue(); String certificate = response.getSignature().getKeyInfo().getX509Datas().get(0).getX509Certificates().get(0).getValue();
А.9 Пример AuthnResponse <?xml version="1.0" encoding="UTF-8"?> <saml2:Assertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" ID="_f634a1edd5a52c852641c0943475edd7" IssueInstant="2012-03-01T06:30:00.307Z" Version="2.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <saml2:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">https://esia-portal1.test.gosuslugi.ru/idp/shibboleth</saml2:Issuer> <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:SignedInfo> <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/> <ds:Reference URI="#_f634a1edd5a52c852641c0943475edd7"> <ds:Transforms> <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> <ec:InclusiveNamespaces xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="xs"/>
82
</ds:Transform> </ds:Transforms> <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <ds:DigestValue>6p7pdI3FulCoSG2kZbGOtW1GCag=</ds:DigestValue> </ds:Reference> </ds:SignedInfo> <ds:SignatureValue> </ds:SignatureValue> <ds:KeyInfo> <ds:X509Data> <ds:X509Certificate> </ds:X509Certificate> </ds:X509Data> </ds:KeyInfo> </ds:Signature> <saml2:Subject> <saml2:NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">_a8e8800fa174f41782184cbbd21ee05f</saml2:NameID> <saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"> <saml2:SubjectConfirmationData Address="127.0.0.1" InResponseTo="_34efa5b7-47e6-41bb-b51b-fcb57b7a3f87" NotOnOrAfter="2012-03-01T06:35:00.307Z" Recipient="https://atc-504:7002/oiosaml/saml/SAMLAssertionConsumer"/> </saml2:SubjectConfirmation> </saml2:Subject> <saml2:Conditions NotBefore="2012-03-01T06:30:00.307Z" NotOnOrAfter="2012-03-01T06:35:00.307Z"> <saml2:AudienceRestriction> <saml2:Audience>sia_test</saml2:Audience> </saml2:AudienceRestriction> </saml2:Conditions> <saml2:AuthnStatement AuthnInstant="2012-03-01T06:30:00.182Z" SessionIndex="211f42f443924066aec4d5bc8740bce17a93ba3358d9e7003333db957540116b"> <saml2:SubjectLocality Address="127.0.0.1"/> <saml2:AuthnContext> <saml2:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml2:AuthnContextClassRef> </saml2:AuthnContext> </saml2:AuthnStatement> <saml2:AttributeStatement> <saml2:Attribute FriendlyName="personSNILS" Name="urn:esia:personSNILS" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">000-000-000 00</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute FriendlyName="userId" Name="urn:mace:dir:attribute:userId" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">2006101</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute FriendlyName="snils" Name="urn:mace:dir:attribute:snils" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">000-000-000 00</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute FriendlyName="authnMethod" Name="urn:esia:authnMethod" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">PWD</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute FriendlyName="principalStatus" Name="urn:mace:dir:attribute:principalStatus" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">A</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute FriendlyName="globalRole" Name="urn:esia:globalRole" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">P</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute FriendlyName="personEMail" Name="urn:esia:personEMail" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">sdf@ddd.ru</saml2:AttributeValue> </saml2:Attribute> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
83
xsi:type="xs:string">SNILS</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute FriendlyName="personType" Name="urn:esia:personType" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">R</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute FriendlyName="authToken" Name="urn:mace:dir:attribute:authToken" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">b0db6fd1-d674-47bb-8f22-9f8291e59255</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute FriendlyName="userName" Name="urn:esia:userName" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">000-000-000 00</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute FriendlyName="middleName" Name="urn:mace:dir:attribute:middleName" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">Дмитриевич</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute FriendlyName="attachedToOrg" Name="urn:esia:attachedToOrg" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">1</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute FriendlyName="firstName" Name="urn:mace:dir:attribute:firstName" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">Дмитрий</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute FriendlyName="lastName" Name="urn:mace:dir:attribute:lastName" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">Дмитриев</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute FriendlyName="portalVersion" Name="urn:mace:dir:attribute:portalVersion" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">P</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute FriendlyName="userType" Name="urn:mace:dir:attribute:userType" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">P</saml2:AttributeValue> </saml2:Attribute> </saml2:AttributeStatement> </saml2:Assertion>
84
ПРИЛОЖЕНИЕ Б. СЕРВИСЫ ЕСИА НА БАЗЕ ПОДХОДА REST
Б.1 Общие сведения о программном интерфейсе ЕСИА
В рамках развития ЕСИА реализован прикладной программный интерфейс на базе архитектурного стиля “Representational State Transfer” (REST). Он позволяет интегрированным с ЕСИА информационным системам получать доступ к хранящимся в ЕСИА ресурсам, т.е. данным (например, о пользователях или других информационных системах), а также выполнять ряд операций.
Вызов прикладного программного интерфейса возможен только теми интегрированными с ЕСИА системами, которые имеют на это соответствующие полномочия. Контроль доступа к ресурсам ЕСИА осуществляет сервис авторизации ЕСИА, реализующий модель контроля доступа, основанную на спецификациях OAuth 2.0 (см. Приложение В).
Для обозначения ресурсов используются специальные идентификаторы. Сами ресурсы организованы иерархически, уровни разделены косой чертой – “/”. Ресурсы более «низкого» уровня являются составными частями «родительского уровня»:
В ЕСИА используется два типа ресурсов:
 документ содержит информацию об отдельном объекте в базе данных, который характеризуется некоторыми полями и значениями. Например, при доступе к документу об организации сервис возвращает наименование организации, ее тип, ОГРН и др. Кроме того, в документе могут содержаться ссылки на связанные ресурсы: так, в документе об организации размещаются указатели на ресурсы (документы) по ее сотрудникам;
 коллекция представляет собой список некоторых ресурсов, например, документов. Перечень организаций, сотрудников отдельной организации – примеры коллекций. Ресурсы, который включены в коллекцию, снабжены собственными идентификаторами (uri). Обычно для обозначения коллекции используются множественные существительные (orgs, sbjs и др.).
Для вызова сервиса ЕСИА, позволяющего получить доступ к защищенному ресурсу, система-клиент должна направить в https-адрес программного интерфейса ЕСИА запрос. Для этого (в зависимости от типа запроса) используются методы GET или POST. В каждом запросе должен быть указан идентификатор ресурса, к которому запрашивается доступ. Кроме того, в запрос на вызов REST-API должен быть добавлен следующий header:
Authorization: Bearer <access token>
85
<access token> — маркер доступа, предварительно полученный у сервиса авторизации ЕСИА. Срок действия маркера доступа не должен истечь на момент вызова. Маркер доступа должен быть выдан системе-клиенту на <scope>, позволяющий получить запрашиваемый защищенный ресурс. Пример запроса на получение сведений об организации с идентификатором 1000000000: GET /rs/orgs/1000000000 HTTP/1.1\r\n Authorization: Bearer 75b2c7cbb8da403491c224c9e431cef9\r\n Host: esia-portal1.test.gosuslugi.ru\r\n Accept: */*\r\n \r\n
В случае успешной проверки запроса программный интерфейс возвращает данные о защищенном ресурсе. При невозможности выполнить запрос возвращается код ошибки.
При вызове сервиса могут быть заданы параметры запроса (query), которые оформляются стандартным способом. Следующий запрос позволит получить первые 15 организаций из соответствующей коллекции orgs: GET /rs/orgs?pageIndex=0&pageSize=15 HTTP/1.1\r\n Authorization: Bearer 75b2c7cbb8da403491c224c9e431cef9\r\n Host: esia-portal1.test.gosuslugi.ru\r\n Accept: */*\r\n \r\n
При вызове сервиса может быть указана конкретная схема предоставления данных об объекте. Для этого необходимо дать ссылку на соответствующую схему в заголовке запросе (с помощью ACCEPT. Например: GET /rs/prns/402 HTTP/1.1\r\n Authorization: Bearer 75b2c7cbd9db403489c224c9e431cef9\r\n Host: esia-portal1.test.gosuslugi.ru\r\n Accept: application/json; schema="https://esia-portal1.test.gosuslugi.ru/rs/model/prn/Person-1"\r\n
Данный запрос позволяет получить сведения о пользователе с идентификатором 402, сформированные согласно схеме Person-1. Это означает, что по мере развития ЕСИА может быть изменен передаваемый атрибутный состав данных о пользователе, в результате чего появляется новые схемы – Person-2, Person-3 и т.д. В связи с этим для получения неизменного состава атрибутов рекомендуется в запросе указывать конкретную схему. Если в качестве схемы указана схема /model/prn/Person без явного указания версии, то возвращается последняя версия. Если схема не указана вообще, то также возвращается последняя версия схемы.
В ответе на корректный запрос выдается JSON-документ, который представляет собой набор пар ключ/значение или массив значений. В заголовке (headers) ответа содержатся следующие данные:
1. Ссылки (links) на связанные ресурсы. Например, если в запросе указан ресурс с данными конкретного пользователя (prns/402), то ссылки будут содержать ресурсы с его контактными данными, документами, адресам, транспортными средствами, а также на «родительский» ресурс с перечнем всех пользователей в системе.
86
2. Указатель запрошенного ресурса (location), т.е. uri запрошенного ресурса.
3. Тип предоставляемых данных (Content-Type) с указанием схемы предоставляемых данных. Например, если запрашиваются данные о пользователе в схеме Person-1, то будет указано следующее значение: Content-Type: [application/json; q=.2; schema="https://esia-portal1.test.gosuslugi.ru/rs/model/prn/Person-1"]
Пример раздела headers (разрывы строк даны для удобства чтения): Link: [<https://esia-portal1.test.gosuslugi.ru/rs/prns/402/docs>;rel=documents;schema="https://esia-portal1.test.gosuslugi.ru/rs/model/docs/Documents-1", <https://esia-portal1.test.gosuslugi.ru/rs/prns/402/addrs>;rel=addresses;schema="https://esia-portal1.test.gosuslugi.ru/rs/model/addrs/Addresses-1", <https://esia-portal1.test.gosuslugi.ru/rs/prns/402/ctts>;rel=contacts;schema="https://esia-portal1.test.gosuslugi.ru/rs/model/ctts/Contacts-1", <https://esia-portal1.test.gosuslugi.ru/rs/prns/>;rel=parent;schema="https://esia-portal1.test.gosuslugi.ru/rs/model/prns/Persons-1"] Date: [Tue, 26 Nov 2013 10:04:24 GMT] Transfer-Encoding: [chunked] Location: [http://esia-portal1.test.gosuslugi.ru/rs/prns/402] server: [grizzly/2.2.16] Content-Type: [application/json; q=.2; schema="https://esia-portal1.test.gosuslugi.ru/rs/model/prn/Person-1"]
Содержательная часть ответа на запрос содержится в разделе body. Пример возвращаемых данных (разрывы строк даны для удобства чтения) о физическом лице: { "stateFacts": ["Identifiable"], "firstName":"Петр", "lastName":"Петров", "birthDate":"1385409600", "gender":"M", "trusted":"true", "citizenship":"RUS", "snils":"111-111-111 11", "updatedOn":"1385460263" }
Каждое описание объекта или коллекции содержит параметр stateFacts, указывающий на некоторые факты о предоставляемых сведениях. Возможны следующие значения stateFacts:
 Identifiable - имеет идентификатор (например, это конкретный контакт или документ);
 hasSize - имеет размер (например, для коллекции указывает на число элементов коллекции);
 FirstPage - первая страница списка;
 LastPage - последняя страница списка;
 Paginated - постраничный список;
 EntityRoot- корневой объект;
 ReadOnly - объект только для чтения.
Параметр stateFacts позволяет, в частности, производить разделение выводимых результатов по страницам. Следующий ответ представляет собой первую страницу некоторого перечня (фрагмент, разрывы строки даны для удобства чтения):
87
{ "stateFacts": ["Paginated","FirstPage"], "elements":[ "https://esia-portal1.test.gosuslugi.ru/rs/prns/400", "https://esia-portal1.test.gosuslugi.ru/rs/prns/401" ], "pageSize":"2", "pageIndex":"1" }
Из данного ответа видно, что на каждой странице отображается по 2 элемента.
Для ряда операций поддерживается возможность встраивания (embedding) связанных данных. Для этого в запросе соответствующего ресурса необходимо указывать параметр «embed», а в качестве его значения – сущность, которую требуется включить в ответ запроса. Например, при запросе следующего ресурса будут отображаться ссылки на контакты пользователя 100000: https://esia-portal1.test.gosuslugi.ru/rs/prns/100000/ctts
Однако указание параметра «embed» позволяет получить данные о контактах непосредственно в ответе на следующий запрос: https://esia-portal1.test.gosuslugi.ru/rs/prns/100000/ctts?embed=(elements)
В этом случае запрос данного ресурса будет возвращать ответ (фрагмент, разрывы строки даны для удобства чтения): { "stateFacts": ["hasSize"], "elements": [ { "stateFacts": [ "Identifiable" ], "id": 194, "type": "MBT", "vrfStu": "VERIFIED", "value": "+7(910)1234567" } ], "size": 1 }
В данном случае на месте ссылок на связанные элементы встраиваются данные контактов.
При встраивании сохраняется возможность получать схемы возвращаемых ресурсов, например: https://esia-portal1.test.gosuslugi.ru/rs/prns/100000/ctts?embed=(elements-1)
В этом случае данные об элементах будут возвращаться согласно первой схеме.
Также возможно встраивание нескольких ресурсов в запросе, например: https://esia-portal1.test.gosuslugi.ru/rs/orgs/100000/emps?embed=(elements.person)
В этом случае в ответе вместо ссылок на сотрудников организации будут передаваться персональные данные сотрудников организации: ФИО, отчество, дата и место рождения, пол и т.д. Набор данных зависит от информации, указанной в профиле сотрудника.
При встраивании нескольких ресурсов также возможно указание на версии, например: https://esia-portal1.test.gosuslugi.ru/rs/orgs/100000/emps?embed=(elements-1.person-1)
Перечень ссылок, которые могут быть встроены:
88
− данные о физических лицах:
контактные данные (contacts);
адреса (addresses);
документы (documents);
транспортные средства (vehicles);
организации, к которым принадлежит физическое лицо (organizations);
− данные об организациях:
контактные данные (contacts);
адреса (addresses);
транспортные средства (vehicles);
− данные о сотрудниках организации:
данные о сотруднике как физическом лице (person).
− данные по ссылкам, отображаемым в содержании ответа в разделе «elements» (возможность встраивания elements есть везде, где параметр stateFacts имеет значение “hasSize”).
Далее приведены описания следующих операций программного интерфейса ЕСИА:
− предоставление персональных данных пользователей;
− проверка факта удаления учётной записи пользователя ЕСИА;
− предоставление сведений о вхождении пользователя в группы и организации;
− предоставление данных из профиля организации;
− предоставление списка участников группы или организации;
− предоставление сведений о вхождении пользователей в группы;
− управление данными организации;
− предоставление сведений о субъекте.
Б.2 Предоставление персональных данных пользователей
Для получения персональных данных о пользователях система-клиент должна направить в https-адрес REST-API системы ЕСИА29 запрос методом GET. В запросе должен быть указан ресурс, содержащий необходимые данные. Иерархия идентификаторов этих ресурсов в ЕСИА имеет следующий вид:
/prns/{oid}/{collection_name}/{collection_entity_id}, где:
29 В тестовой среде сервис доступен по URL https://esia-portal1.test.gosuslugi.ru/rs/prns
89
− prns – перечень (коллекция) пользователей, зарегистрированных в ЕСИА;
− {oid} – внутренний идентификатор объекта, в том числе пользователя, в ЕСИА;
− {collection_name} – ссылка на перечень (коллекцию) типов данных, указанных пользователем с данным oid, возможные значения:
ctts – контактные данные;
addrs – адреса;
docs – документы пользователя;
orgs – организации, сотрудником которых является данный пользователь;
kids – дети пользователя;
vhls – транспортные средства пользователя.
− {collection_entity_id} – внутренний идентификатор элемента (например, контакта или документа) пользователя в ЕСИА.
В запрос должен быть добавлен header с маркером доступа, позволяющим получить доступ к данному ресурсу (либо scope id_doc с параметрами, либо один или несколько scope, обеспечивающих доступ к персональным данным пользователя, с параметрами30).
Пример запроса (вызов сервиса в среде разработки): GET /rs/prns/6924 HTTP/1.1\r\n Authorization: Bearer 75b2c7cbb8da403491c224c9e431cef9\r\n Host: esia-portal1.test.gosuslugi.ru\r\n Accept: */*\r\n \r\n
Данные, которые ЕСИА возвращает в ответ на запрос, представлены в таблице 6.
Таблица 6 –Параметры ответа на запрос о персональных данных пользователя № URI запрашиваемого ресурса Описание ресурса Предоставляемые данные
1.
/prns/{oid}
Данные о пользователе с идентификатором prn-id
Данные о физическом лице:
<rIdDoc> – идентификатор текущего документа пользователя;
<firstName> – имя;
<lastName> – фамилия;
<middleName> – отчество;
<birthDate> – дата рождения (задается как количество секунд, прошедших с 00:00:00 UTC 1 января 1970 года);
30 Например, fullname, contacts, email (см. Приложение В.4). Все эти scope также позволяют получить данные о признаке подтвержденности учетной записи пользователя (атрибут <trusted>). При запросе у сервиса авторизации ЕСИА маркера доступа на указанные scope не нужно в качестве параметра указывать oid этого пользователя.
90
№ URI запрашиваемого ресурса Описание ресурса Предоставляемые данные
<birthPlace> – место рождения пользователя;
<gender> - пол;
<trusted> – тип учетной записи (подтверждена (“true”) / не подтверждена (“false”));
<citizenship> - гражданство (идентификатор страны гражданства);
<snils> – СНИЛС;
<inn> – ИНН;
<updatedOn> - дата последнего изменения учетной записи пользователя (задается как количество секунд, прошедших с 00:00:00 UTC 1 января 1970 года);
<verifying> - процесс проверки данных (true/false);
<status> - статус УЗ (Registered – зарегистрирована/Deleted – удалена).
2.
/prns/{oid}/ctts
Перечень контактов физического лица
Перечень контактов физического лица (в виде ссылок на ресурс c указанием {ctt_id}, содержащий данные о каждом контакте)
3.
/prns/{oid}/ctts/{ctt_id}
Сведения об отдельной записи в перечне контактов физического лица
Контактные данные:
<type> – тип записи, может иметь значения:
“MBT” – мобильный телефон;
“PHN” – домашний телефон;
“EML” – электронная почта;
“CEM” – служебная электронная почта.
<vrfStu> – сведения о «подтвержденности» контактов, может иметь значения:
“NOT_VERIFIED” – не подтвержден;
“VERIFIED” – подтвержден.
В настоящее время статус “VERIFIED” может быть только у мобильного телефона (“MBT”) и адреса электронной почты (“EML”).
<value> – значение контакта;
<vrfValStu> – необязательный параметр, указывается в случае, если контакт находится в процессе подтверждения. Может принимать следующее значение:
“VERIFYING” – в процессе подтверждения.
В настоящее время статус “VERIFYING” может быть только у мобильного телефона (“MBT”) и адреса электронной почты (“EML”).
<verifyingValue> – значение контакта, находящегося в процессе подтверждения.
91
№ URI запрашиваемого ресурса Описание ресурса Предоставляемые данные
4.
/prns/{oid}/addrs
Перечень адресов физического лица
Перечень адресов физического лица (в виде ссылок на ресурс c указанием {addr_id}, содержащий данные о каждом адресе)
5.
/prns/{oid}/addrs/{addr_id}
Сведения об отдельной записи в перечне адресов физического лица
Адреса:
<type> – тип записи, может иметь значения:
“PLV” – адрес места проживания;
“PRG” – адрес места регистрации.
<zipCode> – индекс;
<countryId> – идентификатор страны;
<addressStr> – адрес в виде строки (не включая дом, строение, корпус, номер квартиры);
<building> – строение;
<frame> – корпус;
<house> – дом;
<flat> – квартира;
<fiasCode> – код КЛАДР;
<region> – регион;
<city> – город;
<district> – внутригородской район;
<area> – район;
<settlement> – поселение;
<additionArea> – доп. территория;
<additionAreaStreet> – улица на доп. территории;
<street> – улица.
6.
/prns/{oid}/docs
Перечень документов физического лица
Перечень документов физического лица (в виде ссылок на ресурс c указанием {doc_id}, содержащий данные о каждом документе)
7.
/prns/{oid}/docs/{doc_id}
Сведения об отдельной записи в перечне документов физического лица
Документы:
<type> – тип записи, может иметь значения:
“RF_PASSPORT” – паспорт гражданина РФ;
“FID_DOC” – документ иностранного гражданина;
“DRIVING_LICENSE” – водительское удостоверение.
“MLTR_ID” – военный билет;
“FRGN_PASS” – заграничный паспорт;
“MDCL_PLCY” – полис ОМС;
“BRTH_CERT” – свидетельство о рождении.
<vrfStu> – сведения о «подтвержденности» документов, может иметь значения:
“NOT_VERIFIED” – не подтвержден;
“VERIFIED” – подтвержден.
<series> – серия документа;
<number> – номер документа;
<issueDate> - дата выдачи документа;
<issueId> – код подразделения;
92
№ URI запрашиваемого ресурса Описание ресурса Предоставляемые данные
<issuedBy> – кем выдан;
<expiryDate> - срок действия документа;
<lastName> – фамилия (для заграничного паспорта);
<firstName> – имя (для заграничного паспорта).
8.
/prns/{oid}/orgs
Перечень организаций, сотрудником которых является данное физическое лицо
Перечень организаций, сотрудником которых является физическое лицо с данным {oid} (в виде ссылок на ресурс c указанием {oid}, содержащий данные о каждой организации)
9.
/prns/{oid}/kids
Перечень записей о детях физического лица
Перечень детей физического лица (в виде ссылок на ресурс c указанием {kid_id}, содержащий данные о каждом ребенке)
10.
/prns/{oid}/kids/{kid_id}
Сведения об отдельной записи в перечне детей физического лица
Дети:
<firstName> – имя ребенка;
<lastName> – фамилия ребенка;
<middleName> – отчество ребенка;
<birthDate> – дата рождения;
<gender> – пол;
<snils> – СНИЛС;
<inn> – ИНН;
<trusted> – признак подтвержденности данных о ребенке (подтверждены (“true”) / не подтверждены (“false”));
<updatedOn> – дата последнего изменения данных о ребенке (задается как количество секунд, прошедших с 00:00:00 UTC 1 января 1970 года)
11.
/prns/{oid}/kids/{kid_id}/docs
Перечень документов ребенка физического лица
Перечень документов ребенка данного физического лица (в виде ссылок на ресурс c указанием {doc_id}, содержащий данные о каждом документе)
12.
/prns/{oid}/kids/{kid_id}/docs/{doc_id}
Сведения об отдельной записи в перечне документов ребенка физического лица
Документы ребенка описываются по аналогии с документами физического лица. Для детей предусмотрены следующие типы (<type>) документов:
“MDCL_PLCY” – полис ОМС;
“BRTH_CERT” – свидетельство о рождении31.
13.
/prns/{oid}/vhls
Перечень
Перечень транспортных средств, которыми
31 Для просмотра полных данных о ребенка с его документами можно использовать режим встраивания (embed). В этих целях необходимо сделать запрос методом GET по следующему адресу: /prns/{oid}/kids/{kid_id}?embed=(documents.elements)
93
№ URI запрашиваемого ресурса Описание ресурса Предоставляемые данные
транспортных средств
владеет данный пользователь
14.
/prns/{oid}/vhls/{vhl-id}
Транспортное средство пользователя
<name> – имя автомобиля (например, марка или другое пользовательское описание);
<numberPlate> – государственный регистрационный знак;
<regCertificate> – данные свидетельства о государственной регистрации, включает в себя атрибуты:
 <series> - серия свидетельства;
 <number> - номер свидетельства.
При отображении всех коллекций используется механизм paging.
Пример ответа на запрос контактных данных физического лица (фрагмент, разрывы строк даны для удобства чтения): { "stateFacts": ["Identifiable"], "type":"MBT", "vrfStu":"VERIFIED", "value":"+7(777)7777777" }
Пример ответа на запрос конкретного адреса физического лица (фрагмент, разрывы строк даны для удобства чтения): { "stateFacts":["Identifiable"], "eTag": "672951A704B88A0063A35C3F49409152B087A49A", "id": 21423, "type": "PRG", "region": "Воронежская Область", "addressStr": "Воронежская область, Воронеж город, ПКрл Маяк-1 территория", "frame": "5", "fiasCode": "36-0-000-001-000-000-0000-0000-000", "city": "Воронеж Город", "countryId": "RUS",
Пример ответа на запрос конкретного документа физического лица (фрагмент, разрывы строк даны для удобства чтения): { "stateFacts": ["Identifiable"], "type":"RF_PASSPORT", "vrfStu":"VERIFIED", "series":"3333", "number":"333333", "issueDate":"1383249600", "issueId":"333333" }
Пример ответа на запрос конкретного транспортного средства физического лица (фрагмент, разрывы строк даны для удобства чтения): { "stateFacts": ["Identifiable"], "name": "Хонда", "numberPlate": "А133ОН177", "regCertificate": { "series": "77УЕ",
94
"number": "204623" } }
Пример ответа на запрос всех транспортных средств физического лица, полученный с использованием возможностей встраивания32 (фрагмент, разрывы строк даны для удобства чтения): { "stateFacts": ["hasSize"], "elements": [ { "stateFacts": ["Identifiable"], "id": 20, "name": "Форд", "numberPlate": "О981ТЕ177", "regCertificate": { "series": "1234", "number": "567890" } }, { "stateFacts": ["Identifiable"], "id": 24, "name": "VW", "numberPlate": "А133ОН99", "regCertificate": { "series": "2222", "number": "222222" } } ], "size": 2 }
Б.3 Проверка факта удаления учётной записи и связанных с ней персональных данных пользователя из ЕСИА
Вызов данной операции предоставляет интегрированным с ЕСИА информационным системам данные об удаленных пользователях в ЕСИА (идентификатор пользователя). Для получения перечня удаленных пользователей система-клиент должна направить в https-адрес REST-API системы ЕСИА запрос методом GET. В запросе должен быть указан ресурс, содержащий необходимые данные. В качестве этого ресурса используется стандартный идентификатор ресурса с персональными данными пользователей (/prns), возвращающий перечень зарегистрированных в системе пользователей (см. раздел Б.2). Специфика вызова данной операции состоит в том, что запрос должен содержать следующие параметры:
− <status> - статус пользователя, должен иметь значение “DELETED”;
− <updatedSince> - дата, начиная с которой необходимо отобразить удаленных пользователей. Задается как количество секунд, прошедших с 00:00:00 UTC 1 января 1970 года.
32 Запрошенный ресурс: /prns/100000/vhls?embed=(elements)
95
В запрос должен быть добавлен header с маркером доступа, позволяющим получить доступ к данному ресурсу (scope http://esia.gosuslugi.ru/tech_inf с параметрами).
Пример запроса (вызов сервиса в среде разработки): GET /rs/prns?status=DELETED&updatedSince=1384218061 HTTP/1.1\r\n Authorization: Bearer 75b2c7cbb8da403491c224c9e431cef9\r\n Host: esia-portal1.test.gosuslugi.ru\r\n Accept: */*\r\n \r\n
В качестве ответа передается перечень физических лиц, удаленных с указанной даты. Этот перечень представляет собой список ссылок на ресурс с указанием {oid}, содержащий идентификаторы всех удаленных физических лиц с указанной в запросе даты.
Б.4 Предоставление данных из профиля организации
Для получения данных об организациях система-клиент должна направить в https-адрес REST-API системы ЕСИА33 запрос методом GET. В запросе должен быть указан ресурс, содержащий необходимые данные. Идентификатор этого ресурса в ЕСИА имеет следующий вид:
/orgs/{orgOid}/{collection_name}/{collection_entity_id}, где:
− orgs – коллекция организаций, имеющихся в ЕСИА;
− orgOid – внутренний идентификатор организации в ЕСИА; для определения orgOid соответствующей организации необходимо использовать атрибут orgOid, передающийся в утверждениях SAML;
− {collection_name} – ссылка на перечень (коллекцию) типов данных организации с указанным oid, возможные значения:
ctts – контактные данные;
addrs – адреса;
vhls – транспортные средства;
brhs – филиалы организации.
− {collection_entity_id} – внутренний идентификатор контакта, адреса, транспортного средства или филиала.
В запрос должен быть добавлен header с маркером доступа, позволяющим получить доступ к данному ресурсу (scope в зависимости от полномочий системы).
Пример запроса (вызов сервиса в среде разработки): GET /rs/orgs/1000000000 HTTP/1.1\r\n
33 В тестовой среде сервис доступен по URL https://esia-portal1.test.gosuslugi.ru/rs/orgs
96
Authorization: Bearer 75b2c7cbb8da403491c224c9e431cef9\r\n Host: esia-portal1.test.gosuslugi.ru\r\n Accept: */*\r\n \r\n
Данные, которые ЕСИА возвращает в ответ на запрос, представлены в таблице 7.
Таблица 7 –Параметры ответа на запросы о данных организации № URI запрашиваемого ресурса Описание ресурса Предоставляемые данные
1.
/orgs/{orgOid}
Данные об организации с идентификатором {orgOid}
Данные об организации:
<shortName> – сокращенное наименование организации;
<fullName> – полное наименование организации;
<type> – тип организации. Для государственных организаций – “AGENCY”, для юридических лиц – “LEGAL”;
<ogrn> – ОГРН организации;
<inn> - ИНН организации;
<leg> - код организационно-правовой формы по общероссийскому классификатору организационно-правовых форм;
<kpp> - КПП организации;
<agencyTerRange> – территориальная принадлежность ОГВ (только для государственных организаций, код по справочнику «Субъекты Российской федерации» (ССРФ), для Российской Федерации используется код 00;
<agencyType> – тип ОГВ (только для государственных организаций)34.
2.
/orgs/{orgOid}/brhs
Перечень филиалов организации
Перечень филиалов организации (в виде ссылок на ресурс c указанием {branch_id}, содержащий данные о каждом филиале)
3.
/orgs/{orgOid}/brhs/{branch_id}
Сведения о филиале организации
Данные о филиале:
<name> – имя филиала;
<kpp> – КПП филиала;
<leg> – код организационно-правовой формы по общероссийскому классификатору организационно-правовых форм.
Для просмотра контактных данных и адресов
34 В настоящее время используются следующие коды:
10.FED – Федеральный орган исполнительной власти;
30.FND – Государственный внебюджетный фонд;
11.REG – Орган исполнительной власти субъекта РФ;
12.LCL – Орган местного самоуправления;
20.GOV – Государственное учреждение;
21.MCL – Муниципальное учреждение.
97
№ URI запрашиваемого ресурса Описание ресурса Предоставляемые данные
филиала следует воспользоваться ресурсами /orgs/{orgOid}/brhs/{branch_id}/ctts и /orgs/{orgOid}/brhs/{branch_id}/addrs соответственно. Структура этих ресурсов аналогична ресурсам головной организации
4.
/orgs/{orgOid}/ctts
Перечень контактов организации
Перечень контактов организации (в виде ссылок на ресурс c указанием {ctt_id}, содержащий данные о каждом контакте)
5.
/orgs/{orgOid}/ctts/{ctt_id}
Сведения об отдельной записи в перечне контактов организации
Контактные данные:
<type> – тип записи, может иметь значения:
“PHN” – телефон;
“OFX” – факс;
“OEM” – электронная почта.
<vrfStu> – сведения о «подтвержденности» контактов, может иметь значения:
“NOT_VERIFIED” – не подтвержден;
“VERIFIED” – подтвержден.
<value> – значение контакта
6.
/orgs/{orgOid}/addrs
Перечень адресов организации
Перечень адресов организации (в виде ссылок на ресурс c указанием {addr_id}, содержащий данные о каждом адресе)
7.
/otg/{orgOid}/addrs/{addr_id}
Сведения об отдельной записи в перечне адресов организации
Контактные данные:
<type> – тип записи, может иметь значения:
“OLG” – юридический адрес;
“OPS” – фактический адрес;
<zipCode> – индекс;
<countryId> – идентификатор страны;
<addressStr> – адрес в виде строки (не включая дом, строение, корпус, номер квартиры);
<building> – строение;
<frame> – корпус;
<house> – дом;
<flat> – квартира;
<fiasCode> – код ФИАС;
<region> – регион;
<city> – город;
<district> – внутригородской район;
<area> – район;
<settlement> – поселение;
<additionArea> – доп. территория;
<additionAreaStreet> – улица на доп. территории;
<street> – улица.
8.
/orgs/{orgOid}/vhls
Перечень транспортных средств
Перечень транспортных средств, которыми владеет данная организация
9.
/orgs/{orgOid}/vhl
Транспортное
<name> - имя автомобиля (например, марка или
98
№ URI запрашиваемого ресурса Описание ресурса Предоставляемые данные
s/{vhl-id}
средство организации
другое пользовательское описание);
<numberPlate> - государственный регистрационный знак;
<regCertificate> – данные свидетельства о государственной регистрации, включает в себя атрибуты:
 <series> - серия свидетельства;
 <number> - номер свидетельства.
Пример ответа с кратким наименованием организации (разрывы строки даны для удобства чтения): { "stateFacts": ["Identifiable"], "shortName": "Банк" }
Пример ответа с контактными данными об адресах организации при использовании возможностей встраивания35 (разрывы строки даны для удобства чтения): { "stateFacts": ["hasSize"], "elements": [ { "stateFacts": ["Identifiable"], "id": 62, "type": "OLG", "region": "Москва Город", "addressStr": "Москва Город, Ангарская улица", "countryId": "RUS", "zipCode": "125635", "street": "Ангарская улица", "house": "10", "flat": "96" } ], "size": 1 }
Б.5 Предоставление списка участников организации.
Для получения данных об участниках организации система-клиент должна направить по в https-адрес REST-API системы ЕСИА36 запрос методом GET. В запросе должен быть указан ресурс, содержащий необходимые данные. Идентификатор этого ресурса в ЕСИА имеет следующий вид для получения списка сотрудников организации необходимо использовать uri /orgs/{orgOid}/emps/{prn_oid}, где:
35 Запрос ресурса: /orgs/100000/addrs?embed=(elements)
36 Сервис доступен по URL https://esia-portal1.test.gosulsugi.ru/rs/orgs
99
− emps – перечень (коллекция) сотрудников организаций с данным {orgOid}; для определения orgOid соответствующей организации необходимо использовать атрибут orgOid, передающийся в утверждениях SAML;
prn_oid – внутренний идентификатор физического лица в ЕСИА.
В запрос должен быть добавлен header с маркером доступа, позволяющим получить доступ к данному ресурсу (scope http://esia.gosuslugi.ru/org_emps с параметрами).
Пример запроса (вызов сервиса в среде разработки): GET /rs/orgs/1000000000/emps HTTP/1.1\r\n Authorization: Bearer 75b2c7cbb8da403491c224c9e431cef9\r\n Host: esia-portal1.test.gosuslugi.ru\r\n Accept: */*\r\n \r\n
Данные, которые ЕСИА возвращает в ответ на запрос, представлены в таблице 8.
Таблица 8 –Параметры ответа на запрос об участниках организации № URI запрашиваемого ресурса Описание ресурса Предоставляемые данные
1.
/orgs/{orgOid}/emps
Перечень сотрудников организации
Перечень сотрудников данной организации (в виде ссылок на ресурс c указанием {prn_oid}, содержащий данные о каждом сотруднике)
2.
/orgs/{orgOid}/emps/{prn_oid}
Данные о сотруднике организации с идентификатором {prn_oid}
Данные о сотруднике:
<position> – должность;
<chief> – сведения о том, является ли сотрудник руководителем организации (в этом случае имеет значение “true”) или нет (“false”);
<orgOid> – идентификатор организации, сотрудником которой является пользователь;
<brhOid> – идентификатор филиала организации, сотрудником которой является пользователь (если сотрудник присоединен к филиалу);
<blocked> – признак блокировки сотрудника (имеет значение “true” или “false”).
Для просмотра перечня сотрудников филиала организации необходимо указать в запросе параметр brhOid и значение идентификатора соответствующего филиала. Пример ссылки, по которой будет возвращен перечень сотрудников филиала с идентификатором 1004082214: https://esia-portal1.test.gosuslugi.ru/rs/orgs/1000000001/emps?brhOid=1004082214
При отображении всех коллекций (orgs, emps) используется механизм paging.
Пример ответа на запрос сведений о перечне сотрудников организации с идентификатором 1000000000 (фрагмент, разрывы строк даны для удобства чтения): { "stateFacts": ["hasSize"],
100
"elements":[ "https://esia-portal1.test.gosuslugi.ru/rs/orgs/1000000000/emps/222896320", "https://esia-portal1.test.gosuslugi.ru/rs/orgs/1000000000/emps/240612402", "https://esia-portal1.test.gosuslugi.ru/rs/orgs/1000000000/emps/243280304", "https://esia-portal1.test.gosuslugi.ru/rs/orgs/1000000000/emps/243280305", "https://esia-portal1.test.gosuslugi.ru/rs/orgs/1000000000/emps/243280312", "https://esia-portal1.test.gosuslugi.ru/rs/orgs/1000000000/emps/1000000008", "https://esia-portal1.test.gosuslugi.ru/rs/orgs/1000000000/emps/1000000009", "https://esia-portal1.test.gosuslugi.ru/rs/orgs/1000000000/emps/1000000385" ], "size":"8" }
Пример ответа с контактными данными о сотрудниках организации при использовании возможности встраивания37 (разрывы строки даны для удобства чтения): { "stateFacts": ["Paginated", "FirstPage", "LastPage"], "elements": [ { "stateFacts": ["Identifiable"], "prnOid": 1000000125, "orgOid": 100000, "chief": false, "corporateContact": "mail@example.com", "person": { "stateFacts": ["Identifiable"], "firstName": "Петр", "lastName": "Петров", "middleName": "Петрович", "gender": "M", "updatedOn": 1387519441 } }, { "stateFacts": ["Identifiable"], "prnOid": 1000004892, "orgOid": 100000, "position": "Руководитель", "chief": true, "person": { "stateFacts": ["Identifiable"], "firstName": "Иван", "lastName": "Иванов", "middleName": "Иванович", "gender": "M", "updatedOn": 1387466948 } } ], "pageSize": 100, "pageIndex": 1 }
Б.6 Предоставление сведений о вхождении пользователя в группы
Для получения данных о вхождении пользователя в группы организации система-клиент должна направить по в https-адрес REST-API системы ЕСИА38 запрос методом GET. В запросе должен быть указан ресурс, содержащий необходимые данные.
37 Запрос ресурса: /orgs/100000/emps?embed=(elements.person)
38 Сервис доступен по URL https://esia-portal1.test.gosulsugi.ru/rs/orgs
101
В запрос должен быть добавлен header с маркером доступа, позволяющим получить доступ к данному ресурсу – scope http://esia.gosuslugi.ru/org_emps с параметрами. Для доступа к полному перечню групп, владельцем которых является данная организация, необходим scope http://esia.gosuslugi.ru/org_grps.
Пример запроса (вызов сервиса в среде разработки): GET /rs/orgs/1000000000/grps HTTP/1.1\r\n Authorization: Bearer 75b2c7cbb8da403491c224c9e431cef9\r\n Host: esia-portal1.test.gosuslugi.ru\r\n Accept: */*\r\n \r\n
Данные, которые ЕСИА возвращает в ответ на запрос, представлены в Таблица 9.
Таблица 9 –Параметры ответа на запрос о вхождении сотрудников организации в группы № URI запрашиваемого ресурса Описание ресурса Предоставляемые данные
1.
/orgs/{orgOid}/grps
Перечень групп организации
Перечень групп, владельцем которых является данная организация (в виде перечня строк grp_id – указывающих на мнемонику имеющихся в рамках данной организации групп). Для получения этого перечня групп запрос должен быть добавлен header с маркером доступа на scope http://esia.gosuslugi.ru/org_ful
2.
/orgs/{orgOid}/grps/{grp_id}
Данные о группе организации с мнемоникой {grp-id}
Данные о группе:
<name> – имя;
<description> – описание;
<system> – сведения о том, является ли группа системной (в этом случае имеет значение “true”) или нет (“false”).
Также при запросе данных о конкретной группе возвращаются ссылки (links) на информационные системы, к которым относятся данные группы
3.
/orgs/{orgOid}/emps/{prn_oid}/grps
Перечень групп, членом которых является данный сотрудник
Перечень групп, членом которых является сотрудник с данным {prn_oid} (в виде перечня строк grp_id – указывающих на мнемонику имеющихся в рамках данной организации групп)
При запросе перечня групп, членом которых является данный сотрудник, отображается перечень ссылок в следующем формате:
/orgs/{orgOid}/emps/{prn_oid}/grps/{grp_id}/{it_sys_id}, где it_sys_id – мнемоника информационной системы, в рамках которой действует данная группа. Пример ссылки на группу:
102
http://esia-portal1.test.gosuslugi.ru/rs/orgs/1000000224/emps/1000000105/grps/ORG_ADMIN/ESIA
Данная ссылка означает, что пользователь с идентификатором 1000000105 как сотрудник организации 1000000224 включен в группу администраторов профиля организации (ORG_ADMIN) системы ЕСИА (мномоника ESIA). Выполнив запрос по данной ссылке можно получить краткую информацию о группе, которая включает в себя.
− мнемонику группы (grp_id);
− название группы (name);
− описание группы (description);
− признак того, что группа является системной (system);
− мнемоника системы-владельца группы (itSystem).
Например: { "stateFacts": [ "Identifiable" ], "grp_id": "ORG_ADMIN", "name": "Администраторы профиля организации", "description": "Сотрудники организации, имеющие право приглашать сотрудников, а также включать сотрудников в группы доступа", "system": "true", "itSystem": "ESIA" }
Если группа не является системной и не привязана ни к какой системе, то ссылка на нее имеет следующй формат:
/orgs/{orgOid}/emps/{prn_oid}/grps/{grp_id}
В кратких данных об этой группе атрибут “system” будет иметь значение “false”.
При запросе перечня групп, членом которых является данный сотрудник, имеется возможность получить только те группы, которые относятся к определенной информационной системе. Для этого необходимо добавить условие на отбор групп выбранной системы (itSystemName), равное мнемонике данной системы. Пример запроса на получение групп системы ЕСИА (ESIA), в которые включен сотрудник: GET /rs/orgs/1000000224/emps/1000000105/grps?itSystemName=ESIA HTTP/1.1\r\n Authorization: Bearer 75b2c7cbb8da403491c224c9e431cef9\r\n Host: esia-portal1.test.gosuslugi.ru\r\n Accept: */*\r\n \r\n
Б.7 Управление данными организации
Программные интерфейсы на основе REST обеспечивают возможность управления данными организации для информационных систем этой организации. Обеспечена возможность:
 изменять данные профиля организации;
 управлять приглашениями должностным лицам, зарегистрированным в ЕСИА, на
103
присоединение к учетной записи соответствующей организации;
 управлять служебными данными присоединенных сотрудников, а также блокировать и удалять должностных лиц организации;
 управлять полномочиями должностных лиц посредством изменения их членства в группах доступа;
 предоставлять и отзывать доступ к непубличным группам;
 добавлять и изменять данные филиалов организации.
Для осуществления данных операций система организации должна направить в https-адрес программного интерфейса ЕСИА запрос методом POST, PUT или DELETE. Данный запрос в общем виде включает в себя новые атрибуты организации. Кроме того, запрос должен включать в себя следующие данные:
 маркер доступа, выданный системе на scope (в зависимости от полномочий системы) с параметром org_oid, принимающим значение идентификатора организации;
 тег объекта – метка изменяемого объекта (эта метка указывается в заголовке “If-Match” и в ряде случаев в теле запроса в параметре "eTag");
Для получения информации о метке изменяемого объекта необходимо сделать стандартный запрос методом GET на получение изменяемого ресурса – конкретных данных организации (если последующий запрос делается на адрес контейнера, то требуется указывать тег контейнера).
Пример метки изменяемого объекта (выделено полужирным шрифтом): { "stateFacts": [ "Identifiable" ], "eTag": "4C50511FD3F404974C9AC8AB9C15683378DC05F8", "oid": 1000000001, "shortName": "Тестовая организация", "fullName": " Тестовая организация ", "type": "LEGAL", "ogrn": "1047702026701", "inn": "0000000000", "leg": "65142" }
Б.7.1 Изменение данных профиля организации
Программный интерфейс позволяет выполнить следующие операции:
 задать (изменить) организационно-правовую форму организации;
 задать, изменить и удалить служебные контакты организации (адрес электронной почты, номер телефона и факса).
 задать, изменить и удалить почтовый адрес организации;
104
 задать, изменить и удалить транспортные средства организации.
Б.7.1.1 Редактирование организационно-правовой формы организации
Для изменения организационно-правовой формы организации должен быть выполнен запрос методом POST на https-адрес программного интерфейса ЕСИА39. В заголовке запроса должен быть указан маркер доступа и тег объекта (метка, полученная при запросе ресурса https://esia-portal1.test.gosuslugi.ru/rs/orgs/{oid}). В тело запроса должны быть включены:
 <eTag> – тег изменяемого объекта (данных организации);
 <leg> – новый код организационно-правовой формы по общероссийскому классификатору организационно-правовых форм.
Пример запроса (разрывы строки даны для удобства чтения): POST /rs/orgs/1000000001 HTTP/1.1 Host: esia-portal1.test.gosulsugi.ru Authorization: Bearer eyJhbGciOiJSUzI1NiIsInNidCI6ImFjY2VzcyIsInR5cCI6IkpXVCIsInZlciI6MX0.HeKYMBlwx4LAE-dEnAw9cDLrky-g5133Q827J-pOiNC6Zct-KrZerA3AE6MTaHMicgqJrJls4LBg Content-Type: application/json If-Match: "DC48A40EEEE25605ED940193398AF417EE752055" Cache-Control: no-cache {"eTag": "DC48A40EEEE25605ED940193398AF417EE752055", "leg": "65142"}
В качестве ответа ЕСИА возвращает данные организации с измененной организационно-правовой формой.
Б.7.1.2 Редактирование контактов организации
Для добавления контакта организации должен быть выполнен запрос методом POST на https-адрес программного интерфейса ЕСИА40. В заголовке запроса должен быть указан маркер доступа и тег контейнера с адресами (метка, полученная при запросе ресурса https://esia-portal1.test.gosuslugi.ru/rs/orgs/{oid}/ctts). В тело запроса должны быть включены:
 <type> – тип добавляемого контакта, принимает значение “OEM” для адреса электронной почты, “OPH” – телефона, “OFX” – факса;
 <value> – значение контакта.
Пример запроса (разрывы строки даны для удобства чтения):
39 Сервис доступен по URL https://esia-portal1.test.gosulsugi.ru/rs/orgs/{org_oid}
40 Сервис доступен по URL https://esia-portal1.test.gosulsugi.ru/rs/orgs/{org_oid}/ctts
105
POST /rs/orgs/1000000001/ctts HTTP/1.1 Host: esia-portal1.test.gosulsugi.ru Authorization: Bearer eyJhbGciOiJSUzI1NiIsInNidCI6ImFjY2VzcyIsInR5cCI6IkpXVCIsInZlciI6MX0.HeKYMBlwx4LAE-dEnAw9cDLrky-g5133Q827J-pOiNC6Zct-KrZerA3AE6MTaHMicgqJrJls4LBg Content-Type: application/json If-Match: "DC48A40EEEE25605ED940193398AF417EE752055" Cache-Control: no-cache {"type": "OEM", "value": "test@test.com"}
Для изменения контакта организации должен быть выполнен запрос методом POST на https-адрес программного интерфейса ЕСИА41. В заголовке запроса должен быть указан маркер доступа и тег объекта (метка, полученная при запросе ресурса https://esia-portal1.test.gosuslugi.ru/rs/orgs/{oid}/ctts/{ctt_id}). В тело запроса должны быть включены:
 <eTag> – тег изменяемого объекта (контакта);
 <type> – тип изменяемого контакта, принимает значение “OEM” для адреса электронной почты, “OPH” – телефона, “OFX” – факса;
 <value> – значение контакта.
Пример запроса (разрывы строки даны для удобства чтения): POST /rs/orgs/1000000001/ctts/58099 HTTP/1.1 Host: esia-portal1.test.gosulsugi.ru Authorization: Bearer eyJhbGciOiJSUzI1NiIsInNidCI6ImFjY2VzcyIsInR5cCI6IkpXVCIsInZlciI6MX0.HeKYMBlwx4LAE-dEnAw9cDLrky-g5133Q827J-pOiNC6Zct-KrZerA3AE6MTaHMicgqJrJls4LBg Content-Type: application/json If-Match: "011EAB0AB1B69D4178158841E8096AE5DD9A233C " Cache-Control: no-cache { "eTag": "011EAB0AB1B69D4178158841E8096AE5DD9A233C", "type": "OPH", "value": "+7(999)9999888" }
Изменение контакта возможно и без указания в URL запроса идентификатора контакта, в этом случае контакт будет изменен, но ему будет присвоен другой идентификатор.
Для удаления контакта организации должен быть выполнен запрос методом DELETE на https-адрес программного интерфейса ЕСИА42. В заголовке запроса должен быть указан маркер доступа и тег удаляемого объекта.
Пример запроса (разрывы строки даны для удобства чтения): DELETE /rs/orgs/1000000001/ctts/58099 HTTP/1.1 Host: esia-portal1.test.gosulsugi.ru Authorization: Bearer eyJhbGciOiJSUzI1NiIsInNidCI6ImFjY2VzcyIsInR5cCI6IkpXVCIsInZlciI6MX0.HeKYMBlwx4LAE-dEnAw9cDLrky-g5133Q827J-pOiNC6Zct-KrZerA3AE6MTaHMicgqJrJls4LBg Content-Type: application/json If-Match: "DC48A40EEEE25605ED940193398AF417EE752055" Cache-Control: no-cache
41 Сервис доступен по URL https://esia-portal1.test.gosulsugi.ru/rs/orgs/{org_oid}/ctts/{ctt_id}
42 Сервис доступен по URL https://esia-portal1.test.gosulsugi.ru/rs/orgs/{org_oid}/ctts/{ctt_id}
106
Б.7.1.3 Редактирование почтового адреса организации
Для добавления почтового адреса организации необходимо сделать запрос методом POST на https-адрес программного интерфейса ЕСИА43. Заголовок запроса должен включать в себя маркер доступа и тег контейнера адресов (метка, полученная при запросе ресурса https://esia-portal1.test.gosuslugi.ru/rs/orgs/{oid}/addrs).
Тело запроса должно включать следующие данные (указываются все данные, которые должны отображаться в адресе этого типа):
 тип адреса (type), принимает значение "OPS";
 регион (region);
 код ФИАС (fiasCode);
 строка адреса (addressStr), например, "Москва город, Тверская улица";
 идентификатор страны (countryId), для России – "RUS";
 почтовый индекс (zipCode);
 улица (street);
 дом (house);
 квартира (flat);
 корпус (frame);
 строение (building).
Пример запроса (разрывы строки даны для удобства чтения): POST /rs/orgs/1000000001/addrs HTTP/1.1 Host: esia-portal1.test.gosuslugi.ru Authorization: Bearer eyJhbGciOiJSUzI1NiIsInNidCI6ImFjY2VzcyIsInR5cCI6IkpXVCIsInZlciI6MX0 Content-Type: application/json If-Match: "DE3372D5A4E2499C38C24E03C1919C9CA97FCF78" Cache-Control: no-cache { "type": "OPS", "region": "Псковская Область", "fiasCode": "60-0-010-001-000-000-0176-0000-000", "addressStr": "Псковская область, Невельский район, Невель город, Невель 1 поселок и(при) станция(и)", "city": "Невель Город", "area": "Невельский Район", "countryId": "RUS", "zipCode": "182500", "street": "Невель 1 Поселок и(при) станция(и)", "house": "5", "flat": "5" }
Изменение адреса осуществляется по аналогии с добавлением, недопустимо делать запрос с указанием конкретного идентификатора адреса.
43 Сервис доступен по URL https://esia-portal1.test.gosulsugi.ru/rs/orgs/{org_oid}/addrs
107
Для удаления почтового адреса организации необходимо сделать запрос методом DELETE на https-адрес программного интерфейса ЕСИА44. Заголовок запроса должен включать в себя маркер доступа и тег удаляемого адреса (метка, полученная при запросе ресурса https://esia-portal1.test.gosuslugi.ru/rs/orgs/{oid}/addrs/{addr_id}).
Пример запроса (разрывы строки даны для удобства чтения): DELETE /rs/orgs/1000000001/addrs/13854 HTTP/1.1 Host: esia-portal1.test.gosuslugi.ru Authorization: Bearer eyJhbGciOiJSUzI1NiIsInNidCI6ImFjY2VzcyIsInR5cCI6IkpXVCIsInZlciI6MX0 Content-Type: application/json If-Match: "DE3372D5A4E2499C38C24E03C1919C9CA97FCF78" Cache-Control: no-cache
Б.7.1.4 Управление транспортными средствами организации
Для добавления записи о транспортном средстве необходимо сделать запрос на https-адрес программного интерфейса ЕСИА методом POST45. Заголовок запроса должен включать в себя маркер доступа, тег контейнера транспортных средств (метка, полученная при запросе ресурса https://esia-portal1.test.gosuslugi.ru/rs/orgs/{oid}/vhls).
Тело запроса должно включать следующие данные:
 <name> – название транспортного средства;
 <numberPlate> – государственный номерной знак;
 <regCertificate> – данные свидетельства о регистрации:
- <series> – серия;
- <number> – номер.
Пример запроса: POST /rs/orgs/1000000001/vhls HTTP/1.1 Host: esia-portal1.test.gosuslugi.ru Authorization: Bearer eyJhbGciOiJSUzI1NiIsInNidCI6ImFjY2VzcyIsInR5cCI6IkpXVCIsInZlc Content-Type: application/json If-Match: "3FEA16CB36AFC793234553C1C7CAAF89CD79A32D" { "name": "ВАЗ", "numberPlate": "А133ОН199", "regCertificate":{ "series": "1234", "number": "123456" } }
Для изменения записи о транспортном средстве необходимо сделать запрос на https-адрес программного интерфейса ЕСИА методом POST46. Заголовок запроса должен включать в себя маркер доступа, тег записи транспортного средства (метка, полученная при запросе ресурса https://esia-portal1.test.gosuslugi.ru/rs/orgs/{oid}/vhls/{vhl-id}).
44 Сервис доступен по URL https://esia-portal1.test.gosulsugi.ru/rs/orgs/{org_oid}/addrs/{addr_id}
45 Сервис доступен по URL https://esia-portal1.test.gosulsugi.ru/rs/orgs/{org_oid}/vhls
46 Сервис доступен по URL https://esia-portal1.test.gosulsugi.ru/rs/orgs/{org_oid}/vhls/{vhl_id}
108
Тело запроса должно включать следующие данные:
 <eTag> – тег записи транспортного средства;
 <name> – название транспортного средства;
 <numberPlate> – государственный номерной знак;
 <regCertificate> – данные свидетельства о регистрации:
- <series> – серия;
- <number> – номер.
Пример запроса (разрывы строки даны для удобства чтения): POST /rs/orgs/1000000001/vhls/1000037688 HTTP/1.1 Host: esia-portal1.test.gosuslugi.ru Authorization: Bearer eyJhbGciOiJSUzI1NiIsInNidCI6ImFjY2VzcyIsInR5cCI6IkpXVCIsInZlc If-Match: "3FEA16CB36AFC793234553C1C7CAAF89CD79A32D" { "eTag": "3FEA16CB36AFC793234553C1C7CAAF89CD79A32D", "name": "Новый ВАЗ", "numberPlate": "А144ОН199", "regCertificate":{ "series": "1234", "number": "123456" } }
Для удаления записи о транспортном средстве необходимо сделать запрос на https-адрес программного интерфейса ЕСИА методом DELETE47. Заголовок запроса должен включать в себя маркер доступа, тег записи транспортного средства (метка, полученная при запросе ресурса https://esia-portal1.test.gosuslugi.ru/rs/orgs/{oid}/vhls/{vhl-id}).
Пример запроса (разрывы строки даны для удобства чтения): DELETE /rs/orgs/1000000001/vhls/1000037688 HTTP/1.1 Host: esia-portal1.test.gosuslugi.ru Authorization: Bearer eyJhbGciOiJSUzI1NiIsInNidCI6ImFjY2VzcyIsInR5cCI6IkpXVCIsInZlc Content-Type: application/json If-Match: "F040CD4DD62478E6843177FF33BB6BA1AF8ECF8F" Cache-Control: no-cache
Б.7.2 Управление приглашениями должностным лицам, зарегистрированным в ЕСИА, на присоединение к учетной записи соответствующей организации
Программный интерфейс ЕСИА позволяет выполнять следующие функции:
 просмотр отправленных, но не принятых приглашений;
 формирование нового приглашения;
 отзыв ранее отправленного приглашения.
Для просмотра отправленных приглашений необходимо сделать запрос на https-адрес
47 Сервис доступен по URL https://esia-portal1.test.gosulsugi.ru/rs/orgs/{org_oid}/vhls/{vhl_id}
109
программного интерфейса ЕСИА методом GET48. Заголовок запроса должен включать в себя маркер доступа. Пример запроса: GET /rs/orgs/1000000001/invts HTTP/1.1 Host: esia-portal1.test.gosuslugi.ru Authorization: Bearer eyJhbGciOiJSUzI1NiIsInNidCI6ImFjY2VzcyIsInR5cCI6IkpXVCIsInZlc
В качестве ответа ЕСИА возвращает перечень приглашений на присоединение к данной организации. Пример ответа: { "stateFacts": [ "LastPage", "Paginated", "FirstPage" ], "pageSize": 10, "pageIndex": 1, "elements": [ "https://esia-portal1.test.gosuslugi.ru/rs/orgs/1000000001/invts/671621", "https://esia-portal1.test.gosuslugi.ru/rs/orgs/1000000001/invts/671620", "https://esia-portal1.test.gosuslugi.ru/rs/orgs/1000000001/invts/671600" ] }
Для получения данных об отдельном приглашении необходимо выполнить запрос методом GET по адресу с данными конкретного приглашения. Каждое приглашение описывается следующими параметрами:
 <invtId> – идентификатор приглашения;
 <eTag> – тег записи приглашения;
 <email> – адрес, на который было отправлено приглашение;
 <firstName> – имя приглашаемого сотрудника;
 <lastName> – фамилия приглашаемого сотрудника;
 <middleName> – отчество приглашаемого сотрудника (необязательно);
 <snils> – СНИЛС приглашаемого сотрудника (необязательно);
 <status> – статус приглашения (принимает значение “A” (активно) и “I” (инициировано, но не отправлено));
 <createdOn> – дата отправления приглашения;
 <groups> – группа, в которую будет включен пользователь (указывается мнемоника группы) (необязательно).
48 Сервис доступен по URL https://esia-portal1.test.gosulsugi.ru/rs/orgs/{org_oid}/invts
110
Пример описания приглашения: { "stateFacts": [ "Identifiable" ], "eTag": "E4EFE25E314136A0EB0DC4EB68DF4B5C185D3E4E", "invtId": 671600, "email": "test@mail.ru", "firstName": "Иван", "lastName": "Иванов", "middleName": "Владимировчи", "status": "A", "createdOn": "23.10.2015", "groups": [ "ORG_ADMIN" ] }
Чтобы отправить приглашение, необходимо сделать запрос на https-адрес программного интерфейса ЕСИА методом PUT49. Заголовок запроса должен включать в себя маркер доступа, а тело запроса должно включать следующие данные:
 <email> – адрес, на который отправлять приглашение;
 <firstName> – имя приглашаемого сотрудника;
 <lastName> – фамилия приглашаемого сотрудника;
 <middleName> – отчество приглашаемого сотрудника (необязательно);
 <snils> – СНИЛС приглашаемого сотрудника (необязательно).
Пример запроса (разрывы строки даны для удобства чтения): PUT /rs/orgs/1000000001/invts HTTP/1.1 Host: esia-portal1.test.gosuslugi.ru Authorization: Bearer eyJhbGciOiJSUzI1NiIsInNidCI6ImFjY2VzcyIsInR5cCI6IkpXVCIsInZlciI6MX0eyJleHAiOjE0NDYyMTU2ND Content-Type: application/json Cache-Control: no-cache { "email": "test@yandex.ru", "snils": "000-333-333 66", "firstName": "Михаил", "lastName": "Иванов", "middleName": "Иванович" }
Чтобы удалить приглашение, необходимо сделать запрос на https-адрес программного интерфейса ЕСИА методом DELETE50. Заголовок запроса должен включать в себя маркер доступа. Пример запроса: DELETE /rs/orgs/1000000001/invts/671774 HTTP/1.1 Host: esia-portal1.test.gosuslugi.ru Authorization: Bearer eyJhbGciOiJSUzI1NiIsInNidCI6ImFjY2VzcyIsInR5cCI6IkpXVCIsInZlciI6MX0eyJleHAiOjE0NDYyMTU2ND Content-Type: application/json Cache-Control: no-cache
49 Сервис доступен по URL https://esia-portal1.test.gosulsugi.ru/rs/orgs/{org_oid}/invts
50 Сервис доступен по URL https://esia-portal1.test.gosulsugi.ru/rs/orgs/{org_oid}/invts/{invt_id}
111
Б.7.3 Управление служебными данными присоединенных сотрудников, а также блокировка и удаление должностных лиц организации
Для изменения данных сотрудника организации, в том числе – изменения признака блокировки – необходимо сделать запрос на https-адрес программного интерфейса ЕСИА методом POST51. Заголовок запроса должен включать в себя маркер доступа, тег данных сотрудника (метка, полученная при запросе ресурса https://esia-portal1.test.gosuslugi.ru/rs/orgs/{oid}/emps/{emp_id}).
Тело запроса должно включать следующие данные (все параметры обязательны):
 <eTag> – тег данных сотрудника;
 <position> – должность сотрудника;
 <corporateContact> – адрес электронной почты сотрудника;
 <blocked> – признак блокировки (“false” – не заблокирован, “true” – не заблокирован).
Если какой-либо параметр не будет указан, то он будет очищен.
Пример запроса (разрывы строки даны для удобства чтения): POST /rs/orgs/1000000001/emps/1000000128 HTTP/1.1 Host: esia-portal1.test.gosuslugi.ru Authorization: Bearer eyJhbGciOiJSUzI1NiIsInNidCI6ImFjY2VzcyIsInR5cCI6IkpXVCIsInZlciI6MX0eyJleHAiOjE0NDYyMTU2ND Content-Type: application/json If-Match: "523E509CBEB781E992EFC503CBC878AC67BAD414" Cache-Control: no-cache { "eTag": "523E509CBEB781E992EFC503CBC878AC67BAD414", "position": "должность", "corporateContact": "test@example3.com", "blocked": false }
Для удаления сотрудника необходимо сделать запрос на https-адрес программного интерфейса ЕСИА методом DELETE52. Заголовок запроса должен включать в себя маркер доступа. Пример запроса: DELETE /rs/orgs/1000000001/emps/1000000128 HTTP/1.1 Host: esia-portal1.test.gosuslugi.ru Authorization: Bearer eyJhbGciOiJSUzI1NiIsInNidCI6ImFjY2VzcyIsInR5cCI6IkpXVCIsInZlc Content-Type: application/json
Б.7.4 Управление полномочиями должностных лиц посредством изменения их членства в группах доступа
Чтобы включить сотрудника в группу, необходимо знать его идентификатор, мнемонику группы и мнемонику системы, к которой принадлежит данная группа.
51 Сервис доступен по URL https://esia-portal1.test.gosulsugi.ru/rs/orgs/{org_oid}/emps/{emp_id}
52 Сервис доступен по URL https://esia-portal1.test.gosulsugi.ru/rs/orgs/{org_oid}/emps/{emp_id}
112
Добавление сотрудника в группу осуществляется запросом методом PUT на следующий https-адрес программного интерфейса ЕСИА: https://esia-portal1.test.gosulsugi.ru/rs/orgs/1000000001/emps/{emp_id}/grps/{grp_id}/{it_sys_id}
Параметр <it_sys_id> – мнемоника информационной системы, в рамках которой создана данная группа. Пример запроса: PUT /rs/orgs/1000000001/emps/1000023747/grps/ORG_ADMIN/ESIA HTTP/1.1 Host: esia-portal1.test.gosuslugi.ru Authorization: Bearer eyJhbGciOiJSUzI1NiIsInNidCI6ImFjY2VzcyIsInR5cCI6IkpXVCIsInZlc
Данный запрос включает сотрудника с идентификатором 1000023747 в группу «Администраторы профиля организации», принадлежащей ЕСИА.
Для исключения сотрудника из группы нужно вызвать программный интерфейс ЕСИА по указанному выше адресу (адрес для добавления сотрудника в группу) методом DELETE. Пример запроса: DELETE /rs/orgs/1000000001/emps/1000023747/grps/ORG_ADMIN/ESIA HTTP/1.1 Host: esia-portal1.test.gosuslugi.ru Authorization: Bearer eyJhbGciOiJSUzI1NiIsInNidCI6ImFjY2VzcyIsInR5cCI6IkpXVCIsInZlc
Б.7.5 Управление доступом к непубличным группам
Программный интерфейс позволяет предоставить другой организации доступ к непубличной группе (если организация, вызывающая сервис, является владельцем данной группы), а также отозвать доступ.
Пусть организация с идентификатором 1000000001 – владелец приватной группы RA.USR_CFM («Операторы системы подтверждения личности»). С помощью программного интерфейса эта организация может:
 посмотреть перечень организаций, которым предоставлена данная группа;
 дать некоторой организации доступ к данной группе;
 отозвать у организации доступ к группе.
Для просмотра списка организаций, которым предоставлен доступ к указанной группе, необходимо выполнить запрос методом GET в адрес программного интерфейса ЕСИА53. В заголовке запроса должен быть указан маркер доступа. Имеется возможность вызвать этот сервис с функцией встраивания (embed), чтобы сразу был виден перечень организаций, которым предоставлен доступ. Пример запроса: GET /rs/orgs/1000000001/emps/1000023747/grps/RA.USR_CFM/perms?embed=(elements) HTTP/1.1 Host: esia-portal1.test.gosuslugi.ru Authorization: Bearer eyJhbGciOiJSUzI1NiIsInNidCI6ImFjY2VzcyIsInR5cCI6IkpXVCIsInZlc Cache-Control: no-cache
53 Сервис доступен по URL https://esia-portal1.test.gosulsugi.ru/rs/orgs/{org_oid}/grps/{grp_id}/perms
113
Пример ответа, из которого видно, что доступ предоставлен четырем организациям (указаны их ОГРН и идентификаторы разрешений): { "stateFacts": [ "hasSize" ], "size": 4, "elements": [ { "stateFacts": [ "Identifiable" ], "permId": 732, "ogrn": "1047707030513" }, { "stateFacts": [ "Identifiable" ], "permId": 21, "ogrn": "1023101651154" }, { "stateFacts": [ "Identifiable" ], "permId": 104, "ogrn": "1027700367507" }, { "stateFacts": [ "Identifiable" ], "permId": 107, "ogrn": "1027802761282" } ] }
Для добавления организации в этот перечень необходимо выполнить запрос методом POST в адрес этого же программного интерфейса ЕСИА54. В заголовке запроса должен быть указан маркер доступа. В теле запроса должны быть указаны параметры:
 <ogrn> – ОГРН организации;
 <rqCfm> – признак, определяющий, что включение в группу требует персонального согласования со стороны владельца группа (для этого он должен иметь значение “true”).
Пример запроса (разрывы строки даны для удобства чтения): POST /rs/orgs/1000000001/grps/RA.USR_CFM/perms/ HTTP/1.1 Host: esia-portal1.test.gosuslugi.ru Authorization: Bearer eyJhbGciOiJSUzI1NiIsInNidCI6ImFjY2VzcyIsInR5cCI6IkpXVCIsInZlc Content-Type: application/json Cache-Control: no-cache { "ogrn": "1047796940465", "rqCfm": false }
Для отзыва доступа необходимо выполнить запрос методом DELETE по адресу конкретного разрешения. Пример запроса:
54 Сервис доступен по URL https://esia-portal1.test.gosulsugi.ru/rs/orgs/{org_oid}/grps/{grp_id}/perms
114
DELETE/rs/orgs/1000000001/grps/RA.USR_CFM/perms/1103 HTTP/1.1 Host: esia-portal1.test.gosuslugi.ru Authorization: Bearer eyJhbGciOiJSUzI1NiIsInNidCI6ImFjY2VzcyIsInR5cCI6IkpXVCIsInZlc Cache-Control: no-cache
Б.7.6 Добавление и изменение данных филиалов организации
Программный интерфейс ЕСИА позволяет выполнить следующие операции:
 добавить филиал организации;
 изменить данные филиала организации.
Для добавления записи о филиале необходимо сделать запрос на https-адрес программного интерфейса ЕСИА методом POST55. Заголовок запроса должен включать в себя маркер доступа, тег контейнера филиалов (метка, полученная при запросе ресурса https://esia-portal1.test.gosuslugi.ru/rs/orgs/{oid}/brhs).
Тело запроса должно включать следующие данные:
 <name> – название филиала;
 <kpp> – КПП филиала;
Пример запроса (разрывы строки даны для удобства чтения): POST /rs/orgs/1000000001/brhs HTTP/1.1 Host: esia-portal1.test.gosuslugi.ru Authorization: Bearer eyJhbGciOiJSUzI1NiIsInNidCI6ImFjY2VzcyIsInR5cCI6IkpXVCIsInZlc Content-Type: application/json If-Match: "3FEA16CB36AFC793234553C1C7CAAF89CD79A32D" { "name": "Филиал КПП 111111112", "kpp": "111111112" }
Для изменения записи о филиале – его названия или КПП – необходимо сделать запрос на https-адрес программного интерфейса ЕСИА методом POST56. Заголовок запроса должен включать в себя маркер доступа, тег записи филиала (метка, полученная при запросе ресурса https://esia-portal1.test.gosuslugi.ru/rs/orgs/{oid}/brhs/{brh-id}).
Тело запроса должно включать следующие данные:
 <name> – название филиала;
 <kpp> – КПП филиала.
Пример запроса (разрывы строки даны для удобства чтения): POST /rs/orgs/1000000001/brhs/1004083064 HTTP/1.1 Host: esia-portal1.test.gosuslugi.ru Authorization: Bearer eyJhbGciOiJSUzI1NiIsInNidCI6ImFjY2VzcyIsInR5cCI6IkpXVCIsInZlc If-Match: "3FEA16CB36AFC793234553C1C7CAAF89CD79A32D" { "name": "Новый филиал", "kpp": "111111113" }
55 Сервис доступен по URL https://esia-portal1.test.gosulsugi.ru/rs/orgs/{org_oid}/brhs
56 Сервис доступен по URL https://esia-portal1.test.gosulsugi.ru/rs/orgs/{org_oid}/brhs/{brh_id}
115
Б.8 Предоставление сведений о субъекте
Для получения данных субъекте система-клиент должна направить в https-адрес REST-API системы ЕСИА57 запрос методом GET. В настоящее время используется исключительно для получения данных об информационных системах. Если уникальный идентификатор ИС в ЕСИА (oid) неизвестен, то возможна идентификация системы по сертификату. В этом случае запрос должен содержать следующие сведения:
 <fingerPrint> – криптографическое хэш-значение сертификата, идентифицирующего субъекта. <fingerPrint> должен быть указан в следующем формате:
{<alg>}<value>
В качестве <alg> указывается идентификатор алгоритма, использованного для вычисления криптографического хэш. В качестве <value> указывается рассчитанный fingerPrint от всего сертификата по указанному алгоритму и закодированный в Base64 URL safe. Сертификат для расчета криптографического хэш должен быть в binary-формате (DER-формат).
Система ЕСИА поддерживает следующие алгоритмы вычисления криптографического хэш-значения (fingerPrint сертификата):
 SHA-1 (<alg> должен быть SHA1);
 ГОСТ Р 34.11-94 (<alg> должен быть GOST341194).
Ниже приведен пример заполнения <fingerPrint>: {SHA1} at+xg6SiyUovktq1redipHiJpaE=
В запрос должен быть добавлен header с маркером доступа, позволяющим получить доступ к данному ресурсу (scope http://esia.gosuslugi.ru/sbj_inf).
Пример запроса (вызов сервиса в среде разработки): GET /rs/sbjs?fingerPrint={SHA1}A87E9B9DCD58D1C99389D06A359EA HTTP/1.1\r\n Authorization: Bearer 75b2c7cb-d9db-4034-89c2-24c9e431cef9\r\n Host: esia-portal1.test.gosulsugi.ru\r\n Accept: */*\r\n \r\n
В ответ на запрос сервис ЕСИА возвращает ссылку на ресурс с данными о соответствующем субъекте: /rs/sbjs/{oid}
В данном случае <oid> – это внутренний идентификатор субъекта в ЕСИА;
Для получения данных о субъекте по имеющемуся идентификатору ЕСИА следует использовать запрос c указанием этого идентификатора, например:
57 Сервис доступен по URL: https://esia-portal1.test.gosulsugi.ru/rs/sbjs
116
GET /rs/sbjs/1000023446 HTTP/1.1\r\n Authorization: Bearer 75b2c7cb-d9db-4034-89c2-24c9e431cef9\r\n Host: esia-portal1.test.gosulsugi.ru\r\n Accept: */*\r\n \r\n
Ответ содержит следующие данные о субъекте:
 <oid> – внутренний идентификатор субъекта в ЕСИА
 <name> — имя субъекта в ЕСИА, для информационных систем имя соответствует мнемонике ИС;
 <typ> — тип субъекта, для информационных систем соответствует “S”.
Пример ответа на запрос: { "stateFacts": [ "Identifiable" ], "oid": 1000023446, "name": "PSEUDO_SYSTEM", "type": "S" }
Если данный субъект – информационная система (S), то в заголовке (header) данного ответа также передается ссылка на организацию-владельца данной системы. Для получения данных об организации следует запрашивать следующий ресурс: /orgs/{orgOid}
Получение данных этого ресурса осуществляется так, как это описано в Приложении Б.4. Scope http://esia.gosuslugi.ru/sbj_inf позволяет получить краткие данные об организации.
При получении данных о субъекте можно использовать режим встраивания, что позволяет в ответе сразу получить и данные о субъекте, и данные об организации-владельце (для ИС). В этом случае в запросе, помимо <fingerPrint>, указывается режим встраивания, например, embed=(elements.organization). Пример запроса: GET /rs/sbjs?fingerPrint={SHA1}A87EGBJHHBBHBBHB9B9DCD58D1C99389D06A359EA&embed=(elements.organization) HTTP/1.1\r\n Authorization: Bearer 75b2c7cb-d9db-4034-89c2-24c9e431cef9\r\n Host: esia-portal1.test.gosulsugi.ru\r\n Accept: */*\r\n \r\n
Пример ответа на запрос в режиме встраивания (фрагмент, разрывы строк даны для удобства чтения): { "stateFacts": [ "ReadOnly", "hasSize", "EntityRoot" ], "size": 1, "elements": [ { "stateFacts": ["Identifiable"], "oid": 1000000279, "name": "TEST_SYSTEM", "type": "S", "organization": { "stateFacts": ["Identifiable"], "oid": 1000000001,
117
"shortName": "Минкомсвязь России", "fullName": "Министерство связи и массовых коммуникаций Российской Федерации", "type": "AGENCY", "ogrn": "1047702026701", "inn": "7710474375", "kpp": "771001001" } } ]
Б.9 Предоставление списка измененных пользователей или организаций за период времени
Вызов данной операции предоставляет интегрированным с ЕСИА информационным системам данные об измененных пользователях или организаций в ЕСИА. Для получения перечня измененных пользователей или организаций система-клиент должна направить в https-адрес REST-API системы ЕСИА запрос методом GET. В запросе должен быть указан ресурс, содержащий необходимые данные. В качестве этого ресурса используется стандартный идентификатор ресурса с персональными данными пользователей (/prns), возвращающий перечень зарегистрированных в системе пользователей (см. раздел Б.2) или стандартный ресурс со списком организаций (/orgs), возвращающий коллекцию организаций (см. Б.4). Специфика вызова данной операции состоит в том, что запрос должен содержать следующий параметр:
− <updatedSince> - дата, начиная с которой необходимо отобразить измененных пользователей. Задается как количество секунд, прошедших с 00:00:00 UTC 1 января 1970 года.
В запрос должен быть добавлен header с маркером доступа, позволяющим получить доступ к данному ресурсу (scope http://esia.gosuslugi.ru/tech_inf).
Пример запроса списка измененных организаций (вызов сервиса в среде разработки): GET /rs/prns?updatedSince=1384218061 HTTP/1.1\r\n Authorization: Bearer 75b2c7cbb8da403491c224c9e431cef9\r\n Host: esia-portal1.test.gosuslugi.ru\r\n Accept: */*\r\n \r\n
В качестве ответа передается перечень пользователей или организаций, обновленных с указанной даты. Этот перечень представляет собой список ссылок на ресурс с указанием {oid}, содержащий идентификаторы всех измененных пользователей или организаций с момента указанной в запросе даты.
Б.10 Импорт учетной записи пользователя
Программный интерфейс, основанный на архитектурном стиле REST, в целях обеспечения импорта в ЕСИА учетных записей других ИС, обеспечивает возможность проверки наличия учетной записи пользователя, а в случае её отсутствия, регистрации
118
пользователя в ЕСИА. Алгоритм, по которому производится импорт учетной записи приводится на рисунке далее (Рисунок 14).
Рисунок 14. Алгоритм импорта учетной записи в ЕСИА
Для импорта учетных записей система-клиент должна направить в https-адрес REST-API системы ЕСИА запрос методом POST. В запросе должен быть указан ресурс /import.
В запросе на импорт учетной записи передаются следующие данные пользователя: № Наименование параметра Описание параметра Обязательность параметра Примечания
1.
firstName
Имя
Y
2.
lastName
Фамилия
Y
3.
middleName
Отчество
N
4.
birthDate
Дата
Y
Формат: ДД.ММ.ГГГГ
119
№ Наименование параметра Описание параметра Обязательность параметра Примечания
рождения
5.
birthPlace
Место рождения
Y
6.
citizenship
Гражданство по классификатору ОКСМ
N/Y
Используется трехбуквенный код страны, например, для России он должен принимать значение RUS. По умолчанию принимается значение “RUS”.
Обязателен в случае, если указанный документ отличен от паспорта РФ.
7.
gender
Пол
Y
Перечень допустимых значений:
 “M” – мужской;
 “F” – женский.
8.
snils
СНИЛС
Y
Формат: “ХХХ-ХХХ-ХХХ ХХ”
9.
контакт
Y
9.1.
type
Тип контакта
Y
Перечень допустимых значений:
 “MBT” – мобильный телефон (обязательный параметр);
 “EML” – электронная почта (необязательный параметр).
9.2.
value
Значение
Y
Формат:
 “+X(XXX)XXXXXXX” (для type = “ MBT”);
 текстовая строка в формате адреса электронной почты (для type = “ EML”).
10.
документ
Y
10.1.
type
Тип документа
Y
Перечень допустимых значений:
 “RF_PASSPORT” – паспорт гражданина РФ;
 “FID_DOC” – документ иностранного гражданина, удостоверяющий личность на территории РФ.
10.2.
series
серия
Y
Для паспорта гражданина РФ в формате XXXX.
10.3.
number
номер
Y/N
Для паспорта гражданина РФ в формате XXXXXX.
Необязательный для документа иностранного гражданина.
10.4.
issueId
Номер подразделения, выдавшего паспорт
Y/N
Только для паспорта гражданина РФ.
Необязательный для документа иностранного гражданина.
120
№ Наименование параметра Описание параметра Обязательность параметра Примечания
10.5.
issuedBy
Наименование подразделения, выдавшего паспорт
Y/N
Только для паспорта гражданина РФ.
Необязательный для документа иностранного гражданина.
10.6.
issueDate
Дата выдачи паспорта
Y
11.
адрес
N
11.1.
type
Тип адреса
Y
Перечень допустимых значений:
 “PLV” – адрес проживания;
 “PRG” – адрес регистрации.
11.2.
addressStr
Адресная строка
N
Текстовая строка, содержащая элементы адреса (перечисляются через разделитель «,», не более 2000 символов)
11.3.
countryId
Трехбуквенный код страны
N
11.4.
zipCode
Индекс
N
11.5.
region
Область
N
11.6.
area
Район
N
11.7.
city
Город
N
11.8.
district
Округ
N
11.9.
settlement
Населенный пункт
N
11.10.
street
Улица
N
11.11.
additionArea
Уточнение по региону проживания
N
11.12.
additionAreaStreet
Уточнение по улице
N
11.13.
house
Дом
N
11.14.
building
Строение
N
11.15.
frame
Корпус
N
11.16.
flat
Квартира
N
11.17.
fiasCode
Код ФИАС
N
Формат: “ХХ Х ХХХ ХХХ ХХХ ХХХ ХХХХ ХХХХ ХХХ”
В запрос должен быть добавлен header (Authorization: Bearer) с ранее полученным маркером доступа, выданный на специальный scope (http://esia.gosuslugi.ru/ext_imp), позволяющий осуществлять автоматический импорт учетной записи пользователя. Данный маркер выдается только доверенным системам, имеющим право импорта пользователей таким образом; выдача маркера осуществляется в рамках модели контроля доступа на основе полномочий системы-клиента (Приложение В.3), т.е. право на запрос такого маркера доступа
121
устанавливается оператором эксплуатации ЕСИА.
Так же запрос должен быть подписан электронной подписью системы, которая импортирует учетную запись в ЕСИА (Request-Data-Sign), и содержать тело запроса, закодированное в формате URL-Safe Base64 (Request-Data).
Пример запроса (вызов сервиса в среде разработки): POST https://esia.gosuslugi.ru/rs/prns/import HTTP/1.1 Accept-Encoding: gzip,deflate Content-Type: application/json Authorization: Bearer eyJhbGciOiJSUzI1NiIsInNidCI6ImFjY2VzcyIsInR5cCI6IkpXVCIsInZlciI6MX0.eyJleHAiOjE0NjEyMzI0MDUsInNjb3BlIjoiaHR0cDpcL1wvZXNpYS5nb3N1c2x1Z2kucnVcL2V4dF9pbXAiLCJpc3MiOiJodHRwOlwvXC9lc2lhLmdvc3VzbHVnaS5ydVwvIiwidXJuOmVzaWE6c2lkIjoiZDdkNGYzZWYtZjNlOS00MWVhLTliODUtY2MyODA3MTQzOWUyIiwidXJuOmVzaWE6c2JqX2lkIjoxMDAwMDAwMDAyLCJjbGllbnRfaWQiOiJURVNUX1NZU1RFTV9JTVBPUlQiLCJpYXQiOjE0NjExNDYwMDV9.Kw-Kxh7ckYU_5xWTiUGdVn3rkFSp6TtfopivPfXnvgyPcqRmmPDsqjR_tJyhLED8w8iV6hjk2euchvi4aXxY1m_r716EXSDiAae2WUd0rrGEb-SKIH5hXEBRwBIOTPlq-xA-Q3Lc-717yt6SAZAJtvUKKzaryYWDi-r9wYZuR5kN2XQ8i75n85HhP1KcnERWQjT8DfQXEoaHP6rBqc9YECxtIiUFjZADk1jN1u6Ojq9kGEffRoGyPF7VGNMfUjR469E0d1I3MLdlmSh8MdHW_mePoR19EguQPUtHwrtEALpyFLiiqvBwlnX4UQvZ7DWO1wfbwT16pNHfoY2FdUA5Jw Request-Data-Sign: MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCAMIIDJTCCAg0CBFhKg5UwDQYJKoZIhvcNAQELBQAwVzELMAkGA1UEBhMCUlUxDzANBgNVBAgMBk1vc2NvdzENMAsGA1UECgwEVGVzdDENMAsGA1UECwwEVGVzdDEZMBcGA1UEAwwQVGVzdCBSZXN0IFN5c3RlbTAeFw0xNjEyMDkxMDEyMzdaFw0xNzEyMDkxMDEyMzdaMFcxCzAJBgNVBAYTAlJVMQ8wDQYDVQQIDAZNb3Njb3cxDTALBgNVBAoMBFRlc3QxDTALBgNVBAsMBFRlc3QxGTAXBgNVBAMMEFRlc3QgUmVzdCBTeXN0ZW0wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCByEsM2_R1BrtltyJ15AwCW_tChh2euZC3FEqWDY6TFAlVyy9yO4qM_5P1WruplhA9dCCbft5JFsz4n_nE7lMMRaI34tqTyyo24xzX_VrhgTIi05mt1Y5dbldfEiPVNT3aUCjFlbFzDXoUbc8nfQizkPa_CHGO0MBhuVuQWOVzw3FufAlExDjNPUoRRvaYoBWOK_3SnyS7_88xJn-_yQQVwu0TQkSuqpOsylfBM-Wq10U5x4bJ2NSeL71AzZjCL_mh1daQTQxEwBlVLuMlc5srMyw_QHQ1McsNrqrnx3zhFFNLS5Sk_LrSxqxOsC4sgBw1oudVayUUvGbqe_nxu7P3AgMBAAEwDQYJKoZIhvcNAQELBQADggEBABxK0C1NjQMyvtJvZNRyM21GwQOklaBZuqRErJmpLAR7auYLbZnwEdt1I8KEJBQW6pTb99rnQs-T-qZiChh0PYlbCxXGeVCXk5dJWSiGE_SdrjWvSOH83iUA2Lv8Pi3NlVW2GcNOlFySlzE9HvGYJTIr5I_X-dw64-2NYETLIYPQ7HWwAEwy09ucL9LMjGKYBe5FrwiulAyD20-lnIpYtXdLSpflKangPlPd1xmxEBXMQUmoKg7dTE-q2gYfZLNUKsAezrattHGHTPRnqwWQHmwly_rXXodlgcNxeilT_dvc0o_JfkNmqGCc09RXSx1BWSWGynLeBBjYMy9VN8XYQpQAADGCAfUwggHxAgEBMF8wVzELMAkGA1UEBhMCUlUxDzANBgNVBAgMBk1vc2NvdzENMAsGA1UECgwEVGVzdDENMAsGA1UECwwEVGVzdDEZMBcGA1UEAwwQVGVzdCBSZXN0IFN5c3RlbQIEWEqDlTANBglghkgBZQMEAgEFAKBpMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTE3MDYyMDE1NTA1NVowLwYJKoZIhvcNAQkEMSIEIOpwKJnoLommyNRoKDDlWVsWuBdYfowQ4byOiN-gSPe2MA0GCSqGSIb3DQEBAQUABIIBADlNWxdZeqGBq8_4WqRs9H4SLde_Sukc1AG6hNj1cbTqxzthzzm1n_JQEZOTYaP9bQdTEhOvKZXxFXC_JjPBMQauZPJc1eOR5DDB_7X4MAgGpMQbhpTQz3Sg7acJuJdWuYxL92BDk4qyzuwgJdQJplVJickBvC78XeJVo1w4_jx5CVEn3pUIPdKxib6da0evB6CsxD98JcsvWZ3u-H3LQ0_ApUOUHeF84r3AZ5mtILYj2w6o8rMAmsTDe7CAUXvDUAp9o5cTPk57rDNaW96d5J3SUtmZdx2nGBS41kJYWJNDiqyfHJ7X4nZVOS0glbT_JnaXtxrZTWp9BJo6NKJaagQAAAAAAAA Request-Data: ew0KICAiZmlyc3ROYW1lIjoiw5DCmMOQwrLDkMKww5DCvcOQwr7DkMKyIiwNCiAgImxhc3ROYW1lIjoiw5DCmMOQwrLDkMKww5DCvSIsDQogICJtaWRkbGVOYW1lIjoiw5DCmMOQwrLDkMKww5DCvcOQwr7DkMKyw5DCuMORwociLA0KICAiYmlydGhEYXRlIjoiMDEuMDEuMTk5OSIsDQogICJiaXJ0aFBsYWNlIjoiw5DCnMOQwr7DkcKBw5DCusOQwrLDkMKwIiwNCiAgImdlbmRlciI6Ik0iLA0KICAic25pbHMiOiIwMDAtMDAwLTAwMCAwNyIsDQogICJjb250YWN0cyI6IHsNCiAgICAiZWxlbWVudHMiOiBbDQogICAgICB7DQogICAgICAgICJ0eXBlIjogIk1CVCIsDQogICAgICAgICJ2YWx1ZSI6ICIrNyg5OTkpOTk5OTk5OSINCiAgICAgIH0sDQogICAgICB7DQogICAgICAgICJ0eXBlIjogIkVNTCIsDQogICAgICAgICJ2YWx1ZSI6ICJ0ZXN0QHRlc3QudHMiDQogICAgICB9DQogICAgXQ0KICB9LA0KICAiZG9jdW1lbnRzIjogew0KICAgICJlbGVtZW50cyI6IFsNCiAgICAgIHsNCiAgICAgICAgInR5cGUiOiJSRl9QQVNTUE9SVCIsDQogICAgICAgICJzZXJpZXMiOiIyMjIyIiwNCiAgICAgICAgIm51bWJlciI6Ijg4OTk5OSIsDQogICAgICAgICJpc3N1ZUlkIjoiMTExMDAxIiwNCiAgICAgICAgImlzc3VlZEJ5Ijoiw5DCoMOQwqPDkMKSw5DClCDDkMKzLsOQwpzDkMK-w5HCgcOQwrrDkMKyw5HCiyIsDQogICAgICAgICJpc3N1ZURhdGUiOiIxOC4wMy4yMDE2Ig0KICAgICAgfQ0KICAgIF0NCiAgfSwNCiAgImFkZHJlc3NlcyI6ew0KICAgICJlbGVtZW50cyI6IFsNCiAgICAgIHsNCiAgICAgICJ0eXBlIjogIlBMViIsDQogICAgICAiYWRkcmVzc1N0ciI6IsOQwprDkMK1w5DCvMOQwrXDkcKAw5DCvsOQwrLDkcKBw5DCusOQwrDDkcKPIMOQwp7DkMKxw5DCu8OQwrDDkcKBw5HCgsORwowsIMOQwqLDkMKww5HCiMORwoLDkMKww5DCs8OQwr7DkMK7w5HCjMORwoHDkMK6w5DCuMOQwrkgw5DCoMOQwrDDkMK5w5DCvsOQwr0sIMOQwqjDkMK1w5HCgMOQwrXDkMKzw5DCtcORwoggw5DCn8OQwr7DkcKBw5DCtcOQwrvDkMK-w5DCuiDDkMKzw5DCvsORwoDDkMK-w5DCtMORwoHDkMK6w5DCvsOQwrPDkMK-ICAgICDDkcKCw5DCuMOQwr_DkMKwIiwNCiAgICAgICJjb3VudHJ5SWQiOiAiUlVTIiwNCiAgICAgICJ6aXBDb2RlIjogIjM5NDAwMCIsDQogICAgICAicmVnaW9uIjogIsOQwprDkMK1w5DCvMOQwrXDkcKAw5DCvsOQwrLDkcKBw5DCusOQwrDDkcKPIMOQwp7DkMKxw5DCu8OQwrDDkcKBw5HCgsORwowiLA0KICAgICAgImFyZWEiOiAiw5DCosOQwrDDkcKIw5HCgsOQwrDDkMKzw5DCvsOQwrvDkcKMw5HCgcOQwrrDkMK4w5DCuSDDkMKgw5DCsMOQwrnDkMK-w5DCvSIsDQogICAgICAiY2l0eSI6ICLDkMKow5DCtcORwoDDkMK1w5DCs8OQwrXDkcKIIMOQwp_DkMK-w5HCgcOQwrXDkMK7w5DCvsOQwrogw5DCs8OQwr7DkcKAw5DCvsOQwrTDkcKBw5DCusOQwr7DkMKzw5DCviDDkcKCw5DCuMOQwr_DkMKwIiwNCiAgICAgICJkaXN0cmljdCI6ICLDkMK9w5DCtcORwoIiLA0KICAgICAgInNldHRsZW1lbnQiOiAiw5DCo8ORwoHDkcKCw5HCjC3DkMKQw5DCvcOQwrfDkMKww5HCgSDDkMKfw5DCvsORwoHDkMK1w5DCu8OQwr7DkMK6IiwNCiAgICAgICJzdHJlZXQiOiAiw5DCocOQwr7DkMKyw5DCtcORwoLDkcKBw5DCusOQwrDDkcKPIMOQwqPDkMK7w5DC
122
uMORwobDkMKwIiwNCiAgICAgICJhZGRpdGlvbkFyZWEiOiAiw5DCoMOQwrXDkMKzw5DCuMOQwr7DkMK9IMOQwqHDkMKww5DCtMOQwr7DkMKyw5DCvsOQwrUgw5DCvcOQwrXDkMK6w5DCvsOQwrwtw5DCtSDDkcKCw5DCvsOQwrLDkMKww5HCgMOQwrjDkcKJw5DCtcORwoHDkcKCw5DCssOQwr4iLA0KICAgICAgImFkZGl0aW9uQXJlYVN0cmVldCI6ICLDkMKiw5DCtcORwoHDkcKCIiwNCiAgICAgICJob3VzZSI6ICI4Ni8xIiwNCiAgICAgICJidWlsZGluZyI6ICJlIiwNCiAgICAgICJmcmFtZSI6ICIyMDTDkcKDIiwNCiAgICAgICJmbGF0IjogIsOQwr_DkMK-w5DCvC40MTkiLA0KICAgICAgImZpYXNDb2RlIjogIjc3LTAtMDAwLTAwMC0wMDAtMDAwLTQyMzYtMDAwMC0wMDAiDQoNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIF0NCiAgfQ0KfQ Cache-Control: no-cache Content-Length: 1476 Host: esia-portal1.test.gosulsugi.ru Connection: Keep-Alive User-Agent: Apache-HttpClient/4.1.1 (java 1.5) { "firstName":"Иванов", "lastName":"Иван", "middleName":"Иванович", "birthDate":"01.01.1999", "birthPlace":"Москва", "gender":"M", "snils":"000-000-000 07", "contacts": { "elements": [ { "type": "MBT", "value": "+7(999)9999999" }, { "type": "EML", "value": "test@test.ts" } ] }, "documents": { "elements": [ { "type":"RF_PASSPORT", "series":"2222", "number":"889999", "issueId":"111001", "issuedBy":"РУВД г.Москвы", "issueDate":"18.03.2016" } ] }, "addresses":{ "elements": [ { "type": "PLV", "addressStr":"Кемеровская Область, Таштагольский Район, Шерегеш Поселок городского типа", "countryId": "RUS", "zipCode": "394000", "region": "Кемеровская Область", "area": "Таштагольский Район", "city": "Шерегеш Поселок городского типа", "district": "нет", "settlement": "Усть-Анзас Поселок", "street": "Советская Улица", "additionArea": "Регион Садовое неком-е товарищество", "additionAreaStreet": "Тест", "house": "86/1", "building": "e", "frame": "204у", "flat": "пом.419", "fiasCode": "77-0-000-000-000-000-4236-0000-000" } } ] } }
123
По полученным данным в ЕСИА выполняется поиск учетной записи. В зависимости от того, найдена в ЕСИА учетная запись удовлетворяющая полученным данным или нет, операция импорта может завершиться одним из следующих результатов:
 пользователь уже зарегистрирован в ЕСИА (подтвержденная учетная запись найдена по СНИЛС, данные паспорта и телефона совпадают);
 некоторые атрибуты не совпадают (учетная запись найдена по СНИЛС, но не все атрибуты совпадают, либо найдена упрощенная учетная запись);
 пользователь ЕСИА успешно подтвержден (найдена стандартная или готовая к подтверждению учетная запись по СНИЛС, данные паспорта и телефона совпадают, найденная учетная запись успешно подтверждена);
 пользователь ЕСИА успешно переподтвержден (найдена УЗ, подтвержденная через Почту России, данные паспорта и телефона совпадают, найденная учетная запись успешно переподтверждена);
 создана заявка на регистрацию (не найдена учетная запись пользователя, в том числе упрощенная, создана заявка на регистрацию, получен номер заявки на регистрацию).
В ответе передаются следующие параметры: № Наименование параметра Описание параметра Примечания
1.
code
Код завершения операции
2.
description
Описание кода завершения операции
3.
requestId
Код заявки на регистрацию
Возвращается в случае создания заявки на регистрацию
Далее приводятся варианты ответов сервиса, при завершении операции импорта.
Пример ответа на запрос (пользователь уже зарегистрирован в ЕСИА): HTTP/1.1 200 Bad Request Server: nginx/1.4.6 (Ubuntu) Date: Thu, 21 Apr 2016 13:43:37 GMT Content-Type: application/json Transfer-Encoding: chunked Connection: keep-alive X-Powered-By: Servlet/3.0 JSP/2.2 {"code":"0", "description":"Person already has trusted account in ESIA"}
Пример ответа на запрос (пользователь ЕСИА успешно подтвержден): HTTP/1.1 201 Bad Request Server: nginx/1.4.6 (Ubuntu) Date: Thu, 21 Apr 2016 13:43:37 GMT Content-Type: application/json Transfer-Encoding: chunked Connection: keep-alive X-Powered-By: Servlet/3.0 JSP/2.2 {"code":"1", "description":"Person successfully confirmed as trusted in ESIA"}
124
Пример ответа на запрос (пользователь ЕСИА успешно переподтвержден): HTTP/1.1 201 Bad Request Server: nginx/1.4.6 (Ubuntu) Date: Thu, 21 Apr 2016 13:43:37 GMT Content-Type: application/json Transfer-Encoding: chunked Connection: keep-alive X-Powered-By: Servlet/3.0 JSP/2.2 {"code":"1", "description":"Person successfully reconfirmed as trusted in ESIA"}
Пример ответа на запрос (создана заявка на регистрацию): HTTP/1.1 201 Bad Request Server: nginx/1.4.6 (Ubuntu) Date: Thu, 21 Apr 2016 13:43:37 GMT Content-Type: application/json Transfer-Encoding: chunked Connection: keep-alive X-Powered-By: Servlet/3.0 JSP/2.2 {"code":"2", "requestId":"AAAAF3A1379F965664CB56FCE55BD8CCA2F38368985607E75E23", "description":"Request to register person as trasted in ESIA has been accepted successfully."}
Пример ответа на запрос (некоторые атрибуты не совпадают): HTTP/1.1 201 Bad Request Server: nginx/1.4.6 (Ubuntu) Date: Thu, 21 Apr 2016 13:43:37 GMT Content-Type: application/json Transfer-Encoding: chunked Connection: keep-alive X-Powered-By: Servlet/3.0 JSP/2.2 {"code":"ESIA-03200", "description":"Import account error. Person have to check entered data or fill in the data in his account in ESIA."}
Система, используя имеющийся идентификатор заявки на регистрацию пользователя, может узнать статус заявки, а также причину ошибки (при ее наличии). Для получения данных о ходе выполнения проверок система должна выполнить запрос методом GET в https-адрес REST-API системы ЕСИА58. Запрос также должен содержать маркер доступа системы. Пример запроса: GET https://esia-portal1.test.gosuslugi.ru/rs/reqs/ AAAA5F79379F965664CB739F5BDC6FD8E24797A576A4F056322D Authorization: Bearer eyJhbGciOiJSUzI1NiIsInNidCI6ImFjY2VzcyIsInR5cCI6IkpXVCIsInZlciI6M
В качестве ответа ЕСИА возвращает json с параметрами, указанными в табл. 10.
Таблица 10 – Параметры ответа на запрос о статусе проверки данных пользователя № Параметр Обязатель-ность Описание
1.
status
Y
Статус заявки на регистрацию пользователя. Может принимать значения:
 VALIDATING – идет проверка данных
58 В среде разработки сервис доступен по URL https://esia-portal1.test.gosuslugi.ru/rs/reqs/{requestId}, где requestId – уникальный идентификатор заявки на проверку данных пользователя.
125
учетной записи в БГИР;
 VALIDATION_FAILED – ошибка при проверке данных учетной записи в БГИР, детализация ошибки содержится в параметре errorStatusInfo;
 SUCCEEDED – операция успешно выполнена.
2.
flowDetails
N
Возk