Настройка ЕСИА
Даннная инструкция позволит Вам сформировать сертификат для ЕСИА. И настроить взаимодействие внешнего портала и ЕСИА.
Создание сертификата для ЕСИА
- Возможность воспользоваться единым закрытым ключом для ЕСИА и ИАС МКГУ. Если же Вы хотите создать различные закрытые ключи, то Вам необходимо выполнить команду :
openssl genrsa -des3 -out server.key 1024
2.Далее Вам необходимо создать запрос подписи
openssl req -new -key server.key -out server.csr
- Затем генерируйте самоподписанный сертификат
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)
Проверка работоспособности
На форме авторизации есть кнопка "Войти через ЕСИА". Если все прошло успешно, Вы увидите форму для ввода логина и пароля
После успешного ввода идентификационных данных Вам предложат передать данные на портал МФЦ
После перенаправления на Ваш сайт МФЦ будет произведена проверка в ИИС МФЦ пользователя. Если такой пользователь уже был (проверяется по СНИЛС) то будет произведена авторизация под этим человеком. Если Ваших данных еще не было в системе ИИС МФЦ, будет создан новый.
Если создается новый пользователь, то необходимо указать реквизиты которых нет в ЕСИА.
-
Дату рождения
-
Место регистрации
При повторном входе через ЕСИА дополнительную информацию запрашивать больше не будут.