ЕСИА#
Контейнер ключей для ЕСИА и Цифрового профиля#
Запросы на аутентификацию через внешний поставщики идентификации ЕСИА и ЦП ЕСИА должны быть подписаны электронной подписью с использованием контейнера ключей с алгоритмами ГОСТ Р 34.10-2012 и ГОСТ Р 34.11-2012. Для использования в Blitz Identity Provider необходим файловый контейнер ключа электронной подписи в одном из следующих форматов:
КриптоПро CSP (версия 4.0 или выше),
КриптоПро JCP 2.0.
Для получения контейнера ключей необходимо обратиться в аккредитованный удостоверяющий центр.
Внимание
В случае если контейнер ключей выпускается удостоверяющим центром на физический носитель, то важно указать, что контейнер ключей должен быть выпущен с экспортируемым закрытым ключом, чтобы его можно было использовать в Blitz Identity Provider.
После получения в аккредитованном удостоверяющем центре контейнера ключей его необходимо импортировать в хранилище ключей, используемое Blitz Identity Provider. Для этого можно или обратиться в техническую поддержку Blitz Identity Provider или воспользоваться одним из описанных далее в подразделах способов конвертации.
КриптоПро CSP на Windows#
Для конвертации контейнера КриптоПро CSP в Windows понадобятся:
ПК под управлением Windows с настроенным браузером Internet Explorer 11.
Платная утилита P12FromGostCSP.
Установленный на ПК криптопровайдер КриптоПро CSP (версия 4.0 и новее).
Инструкция по конвертации контейнера:
Установить на ПК под управлением Windows криптопровайдер КриптоПро CSP (версия 4.0 и новее). Установить закрытый ключ электронной подписи в реестр Windows. Для этого выполнить шаги:
запустить КриптоПро CSP;
выбрать вкладку Сервис и нажать на кнопку Посмотреть сертификаты в контейнере:
нажать на кнопку Обзор:
выбрать контейнер с ключом ГОСТ Р 34.10-2012:
в открывшемся окне убедиться, что выбран нужный ключевой контейнер и нажать далее:
в окне со свойствами сертификата нажать на кнопку Установить:
сообщение Сертификат был установлен в хранилище «Личные» текущего пользователя свидетельствует об успешном сохранении.
Экспортировать ключ КриптоПро из хранилища Windows в PKCS#12. Для этого приобрести и запустить утилиту P12FromGostCSP. Нужна специальная версия утилиты – рекомендуется проконсультироваться с технической поддержкой Blitz Identity Provider.
После запуска утилиты выполнить шаги:
выбрать сертификат:
задать пароль от создаваемого контейнера PKCS#12:
указать файл для сохранения PKCS#12. В качестве расширения обязательно указать
.pfx
:
Установить на ПК окружение Java (JRE) версии 8.
Импортировать ключ из PKCS#12 в BKS-хранилище с помощью бесплатной утилиты gost-keytool и актуальной версии библиотеки bcprov-jdk15on.
java -cp "gost-keytool.jar;bcprov-jdk15on-1.70.jar" ru.reaxoft.gost.Keytool import_pkcs12 --srckeystore gost.pfx --srcstorepass 12345678 --srcalias csp_exported --srckeypass 12345678 --destkeystore blitz-keystore.bks --deststoretype BKS --deststorepass pass --destalias gost2012 --destkeypass pass
В этой операции используются параметры:
srckeystore
– путь к файлу PKCS#12;srcstorepass
– пароль от контейнера PKCS#12 (был задан на шаге 2);srcalias
– имя ключа в контейнере PKCS#12. Нужно указать значениеcsp_exported
;srckeypass
– пароль к ключу в контейнере PKCS#12. Нужно указать то же самое значение, что и для параметраsrcstorepass
;destkeystore
– путь к файлу BKSblitz-keystore.bks
, взятому с сервера Blitz Identity Provider;deststoretype
– тип хранилища. Нужно указать значениеBKS
;deststorepass
– пароль к хранилищу BKS;destalias
– имя (alias
) ключа в BKS, например,gost2012
;destkeypass
– пароль к ключу в BKS. Нужно указать то же самое значение, что и для параметраdeststorepass
.
Заменить файл
blitz-keystore.bks
на сервере Blitz Identity Provider;Перезапустить приложения Blitz Identity Provider.
КриптоПро JCP#
Для импорта контейнера в формате КриптоПРО JCP необходимо установить данный криптопровайдер и следовать инструкциям из официальной документации.
Вход через ЕСИА в режиме выбора организации#
Когда для входа в Blitz Identity Provider сконфигурирован внешний поставщик идентификации ЕСИА, то к обычному режиму входа пользователя можно сконфигурировать следующие дополнительные возможности:
Отображение пользователю экрана выбора режима входа и организации, если вошедший через ЕСИА пользователь имеет в ЕСИА роли сотрудника индивидуального предпринимателя, юридического лица или органа государственной власти.

Получение из ЕСИА сведений о выбранной при входе организации, автоматическое создание на основе этих сведений в LDAP-хранилище группы пользователей с атрибутами, соответствующими организации (если соответствующая организации группа не найдена в момент входа), добавление пользователя в созданную (или найденную) группу пользователей.
Обновление атрибутов группы пользователя значениями атрибутов организации из ЕСИА в момент входа, если атрибуты в ЕСИА изменились.
Возможность добавления в маркер доступа и маркер обновления сведений о выбранной в момент входа пользователя роли в ЕСИА (физическое лицо, индивидуальный предприниматель, должностное лицо юридического лица, должностное лицо органа государственной власти).
Для настройки режимов входа необходимо предварительно настроить в Blitz Identity Provider использование групп доступа и вход через ЕСИА. После этого необходимо в конфигурационном файле в секции blitz.prod.local.idp.federation
в блоке esia
создать дополнительный блок настроек org
следующего вида:
"federation" : {
"points" : {
"esia" : [
{
…
"org" : {
"embeds" : [
"documents.elements-1",
"addresses.elements-1",
"contacts.elements-1"
],
"group" : {
"id" : "${org.oid}",
"mapping" : [
{
"attr" : "org_ogrn",
"master" : true,
"value" : "${org.ogrn}"
},
{
"attr" : "org_inn",
"master" : true,
"value" : "${org.inn}"
},
{
"attr" : "org_fullname",
"master" : true,
"value" : "${org.fullName-}"
},
{
"attr" : "org_shortname",
"master" : true,
"value" : "${org.shortName-}"
},
{
"attr" : "org_type",
"master" : true,
"value" : "${org.type-}"
},
{
"attr" : "org_oktmo",
"master" : true,
"value" : "${org.oktmo-}"
},
{
"attr" : "org_leg",
"master" : true,
"value" : "${org.leg-}"
},
{
"attr" : "org_kpp",
"master" : true,
"value" : "${org.kpp-}"
},
{
"attr" : "org_phone",
"master" : true,
"value" : "${org.phone-}"
},
{
"attr" : "org_email",
"master" : true,
"value" : "${org.email-}"
},
{
"attr" : "org_fax",
"master" : true,
"value" : "${org.fax-}"
},
{
"attr" : "org_agencytype",
"master" : true,
"value" : "${org.agencyType-}"
},
{
"attr" : "org_agencyterrange",
"master" : true,
"value" : "${org.agencyTerRange-}"
},
{
"attr" : "org_address_post",
"master" : true,
"value" : "${org.postAddress-}"
},
{
"attr" : "org_address_leg",
"master" : true,
"value" : "${org.legalAddress-}"
}
],
"matchingRules" : [
[
{
"attr" : "id",
"value" : "${org.oid}"
}
]
],
"profile" : "orgs"
},
"scopes" : [
"http://esia.gosuslugi.ru/org_addrs",
"http://esia.gosuslugi.ru/org_leg",
"http://esia.gosuslugi.ru/org_oktmo",
"http://esia.gosuslugi.ru/org_inn",
"http://esia.gosuslugi.ru/org_type",
"http://esia.gosuslugi.ru/org_kpp",
"http://esia.gosuslugi.ru/org_ctts",
"http://esia.gosuslugi.ru/org_agencyterrange",
"http://esia.gosuslugi.ru/org_ogrn",
"http://esia.gosuslugi.ru/org_shortname",
"http://esia.gosuslugi.ru/org_fullname",
"http://esia.gosuslugi.ru/org_agencytype",
"http://esia.gosuslugi.ru/org_grps"
]
},
…
]
}
}
В добавленном блоке нужно скорректировать:
набор получаемых из ЕСИА сведений об организации и их маппинг на атрибуты группы пользователей (блок
group.mapping
), признакомmaster
отметить те атрибуты, которые должны перезаписываться в группе пользователей при каждом обновлении из ЕСИА, полученном в момент входа;набор запрашиваемых в ЕСИА разрешений (настройка
scopes
).
Если необходимо передавать в маркер идентификации и маркер доступа сведения о текущей выбранной организации и о роли пользователя в ЕСИА, то необходимо настроить соответствие необходимых атрибутов ЕСИА сессионным утверждениям в Blitz Identity Provider. Это выполняется с помощью настройки claims
в блоке настроек ЕСИА:
"federation" : {
"points" : {
"esia" : [
{
…
"claims" : [
{
"name" : "org_id",
"value" : "org.oid"
},
{
"name" : "global_role",
"value" : "globalRole"
},
{
"name" : "org_shortname",
"value" : "org.shortName"
},
{
"name" : "org_fullname",
"value" : "org.fullName"
},
{
"name" : "org_type",
"value" : "org.type"
},
{
"name" : "org_ogrn",
"value" : "org.ogrn"
},
{
"name" : "org_inn",
"value" : "org.inn"
},
{
"name" : "org_oktmo",
"value" : "org.oktmo"
},
{
"name" : "org_groups",
"value" : "org.groupNames"
},
}
},
…
]
}
}
Добавление параметров в вызов ЕСИА#
Blitz Identity Provider позволяет добавлять в вызов сервиса аутентификации ЕСИА следующие параметры:
obj_type
– тип пользователя;roles
– тип роли пользователя.
Для того чтобы включить передачу параметров, выполните следующие действия:
Откройте файл конфигурации
/usr/share/identityblitz/blitz-config/blitz.conf
.В секции
blitz.prod.local.idp.federation.points.esia.authExtParams
(настройки ЕСИА) илиblitz.prod.local.idp.federation.points.esiadp.authExtParams
(цифрового профиля ЕСИА) укажите параметры для добавления в вызов сервиса аутентификации. Параметры необходимо перечислить в виде<имя параметра>
:<строковое значение параметра>
. Например, для передачи параметровobj_type=P+L&roles=E+C
, нужно добавить в файл конфигурации соответствующего поставщика идентификации раздел вида:"authExtParams": { "obj_type": "P L", "roles": "E C" },