Как интегрировать авторизацию через ЕСИА на сайт?

Для авторизации через ЕСИА (госуслуги) используется протокол SAML. Стандартом для PHP в решении этого вопроса стала библиотека SimpleSAML.
При интеграции пытаюсь следовать этой инструкции. Но очень многие моменты в ней опущены. Например: что делать с файлом метаданных? Куда его класть? Как-то нужно в конфигах указать для него путь?
В настоящий момент делаю так:
1. В simplesaml/metadata/saml20-idp-remote.php пишу данные для подключения:
$metadata['https://esia-portal1.test.gosuslugi.ru/idp/shibboleth'] = array(
    'name' => array(
        'ru' => 'Авторизация ЕСИА'
    ),
    'privatekey' => 'private.key', //путь к файлу закрытого ключа
    'certificate' => 'open.crt', //путь к сертификату открытого ключа
    'SingleSignOnService' => 'https://esia-portal1.test.gosuslugi.ru',
);


2. В файле simplesaml/config/authsources.php в entityID указываю адрес сайта и сертификаты, как сказано по ссылке выше.
3. Сделан alias на папку simplesaml и php_admin_value mbstring.func_overload 0

Теперь при попытке логина через стандартные интерфейсы SimpleSAML происходит переход на страницу авторизации ЕСИА. Я ввожу данные, меня авторизует, но не происходит редиректа обратно на сайт и не передаются данные о пользователе обратно.
Что я упустил?
  • Вопрос задан
  • 25380 просмотров
Пригласить эксперта
Ответы на вопрос 5
@jerry_ru
Давайте будем использовать терминологию ЕСИА:
1. файл метаданных отсылается самой ЕСИА при регистрации вашей ИС. Вы это сделали и вашу ИС зарегистрировали?
2. вам самим сертификаты не нужны - вам нужен только закрытый ключ, сертификат открытой части которого вы отправили ЕСИА в файле метаданных
3. как реализовать это в php я, к сожалению, подсказать не могу.

Если в итоге у вас не получится, то есть готовые решения, включающие как консультации, так и програмные модули(в том числе и для php): esia.pro
Ответ написан
Комментировать
@IvanVP
Есть решение для Ruby on Rails + Devise
https://rubygems.org/gems/omniauth-esia
https://github.com/elsant/omniauth-esia
Ответ написан
Комментировать
@exman82
SciFi , удалось победить SimpleSAML?
Ответ написан
Комментировать
@KirillAG
Да, также интересен результат. Насколько мне известно, к ЕСИА подключались и с использованием таких библиотек как SimpleSAML и OIOSAML.
Что касается готовых решений, то помимо упомянутого выше, имеется и решение от команды разработчиков ЕСИА: identityblitz.ru/products/esia-bridge
Оно правда основано не на протоколе SAML, а OAuth 2.0/OpenID Connect, но для ряда организаций это даже лучше.
Ответ написан
@tatar3005
У кого получилось поделитесь как вы это сделали
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы