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

Для авторизации через ЕСИА (госуслуги) используется протокол 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 происходит переход на страницу авторизации ЕСИА. Я ввожу данные, меня авторизует, но не происходит редиректа обратно на сайт и не передаются данные о пользователе обратно.
Что я упустил?
  • Вопрос задан
  • 25274 просмотра
Пригласить эксперта
Ответы на вопрос 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
У кого получилось поделитесь как вы это сделали
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
26 апр. 2024, в 10:01
500 руб./за проект
26 апр. 2024, в 09:18
500 руб./в час
26 апр. 2024, в 06:46
1500 руб./в час