Перейти к содержанию

Настройка ЕСИА

Даннная инструкция позволит Вам сформировать сертификат для ЕСИА. И настроить взаимодействие внешнего портала и ЕСИА.

Создание сертификата для ЕСИА

  1. Возможность воспользоваться единым закрытым ключом для ЕСИА и ИАС МКГУ. Если же Вы хотите создать различные закрытые ключи, то Вам необходимо выполнить команду :

openssl genrsa -des3 -out server.key 1024

2.Далее Вам необходимо создать запрос подписи

openssl req -new -key server.key -out server.csr

  1. Затем генерируйте самоподписанный сертификат

openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

-days - количество дней действия сертификата

Заполнение файла метаданных

Файл метаданных можно получить у оператора ЕСИА. Опишем ряд важных реквизитов обязательных к заполнению:

entityID - уникальный идентификатор Вашей системы. Рекомендуется использовать адрес вашего сайта в интернете (например mymfc.ru)

md:SingleLogoutService - информация о страницах для выхода из ЕСИА

аттрибут Location - необходимо указать страницу /esia/logout.php (например mymfc.ru/esia/logout.php)

аттрибут ResponseLocation - необходимо указать страницу /esia/reslogout.php (например mymfc.ru/esia/reslogout.php)

md:AssertionConsumerService - онформация о страницах для авторизации в ЕСИА

аттрибут Location - необходимо указать страницу /esia/auth.php (например mymfc.ru/esia/auth.php)

md:Organization - описание информации об организации

md:OrganizationName - название организации

md:OrganizationDisplayName - дублируйте название организации

md:OrganizationURL - укажите адрес внешнего портала МФЦ

md:ContactPerson - контактная информация МФЦ

md:Company - название организации

md:EmailAddress - электронная почта

ds:X509Certificate - Содержание файла server.crt (по умолчанию файл представляет из себя сертификат открытого ключа DER в формате BASE64)

Настройка модуля аутентификации в ИИС МФЦ

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

  • Скачайте библиотеку для взаимодействия с ЕСИА с нашего портала по ссылке.

  • Распакуйте архив в папку с внешним сайтом (например www или www_out) (www/simplesaml/)

  • Данную настройку надо внести или в виртуальные хосты (Apache Software Foundation\Apache2.2\conf\extra\httpd-vhosts.conf) или в httpd.conf (Apache Software Foundation\Apache2.2\conf\httpd.conf) в зависимости от настройки Apacha.

    • Необходимо добавить Alias /simplesaml c:/www_out/simplesaml/www в теги с виртуалхостов для 80-го порта.

    • Необходимо указать запрет использования func_overload для папки simplesaml, для чего в любое невтэговое место дописать

   <Directory "/www_out/simplesaml/">
   php_admin_value mbstring.func_overload 0
   </Directory>
  • Для работы библиотеки криптования в PHP необходимо включить (раскомментировать в php.ini) модуль extension=php_mcrypt.dll После внесения изменений перезапустите Apache2.

  • Необходимо настроить сведения для запросов в ЕСИА

  • В файле simplesaml/metadata/saml20-idp-remote.php укажите
'AssertionConsumerServiceURL' => 'http://mymfc.ru/esia/auth.php',//Указать путь к файлу для авторизации на внешнем портале
'privatekey' => 'ca.key', //путь к файлу закрытого ключа
'certificate' => 'ca.crt', //путь к сертификату открытого ключа

$metadata['https://demo1-esia.gosuslugi.ru/idp/shibboleth'] //для доступа к тестовой зоне укажите demo1-, для продуктива удалите
  • В файле simplesaml/config/authsources.php укажите
'entityID' => 'http://mymfc.ru', //идентификатор системы, указывали в файле метаданных
'privatekey' => 'ca.key', //путь к файлу закрытого ключа
'certificate' => 'ca.crt', //путь к сертификату открытого ключа
'privatekey_pass' => '****',//пароль для закрытого ключа
  • Авторизация через ЕСИА не проходит, если открывать ваш внешний сайт через mfc61.ru. Это происходит из-за запрета simplesaml на встраивание во фреймы. Исправить это можно, закомментировав 40 строку
header('X-Frame-Options: SAMEORIGIN');

в файле simplesaml\templates\includes\header.php на внешнем сервере (www)

Проверка работоспособности

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

После успешного ввода идентификационных данных Вам предложат передать данные на портал МФЦ

После перенаправления на Ваш сайт МФЦ будет произведена проверка в ИИС МФЦ пользователя. Если такой пользователь уже был (проверяется по СНИЛС) то будет произведена авторизация под этим человеком. Если Ваших данных еще не было в системе ИИС МФЦ, будет создан новый.

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

  • Дату рождения

  • Место регистрации

При повторном входе через ЕСИА дополнительную информацию запрашивать больше не будут.