Документация по oauth esia и EIES-Bridge

Документация по oauth esia и EIES-Bridge ГИС ЖКХ

в 3:11, , рубрики: oauth2, open source, OpenConnect, php, php5, php7, госуслуги, есиа, финтех

Документация по oauth esia и EIES-Bridge

Представляем yet another PHP-пакет интеграции с ЕСИА — ekapusta/oauth2-esia. Реализован как адаптер к популярному league/oauth2-client.

Почему этот пакет?

Документация по oauth esia и EIES-Bridge

Данная инструкция позволит Вам сформировать сертификат для ЕСИА и настроить взаимодействие ИИС МФЦ с ЕСИА с использованием модели OAuth 2.0 / OpenID Connect.

Аутентификация пользователей с использованием OpenID Connect 1.0 в производится в соответствии с Методическими рекомендациями по использованию Единой системы идентификации и аутентификации

Создание файла scope. txt

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

содержимое файла scope.txt:

fullname birthdate gender email mobile id_doc snils inn birthplace contacts

Регистрация системы

Зарегистрируйте ИИС (или измените регистрацию) на

использование модели OAuth 2.0 / OpenID Connect

Внесите изменения на технологическом портале в соответствии с «Руководство пользователя Технологического портала».

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

ЕСИА требует подписывать запросы ГОСТ сертификатом. Для этого необходимо добавить ключ подписи в сигнер 2 и указать alias этой подписи в поле «Alias подписи в сигнер 2».

Документация по oauth esia и EIES-Bridge

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

Документация по oauth esia и EIES-Bridge

Документация по oauth esia и EIES-Bridge

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

Документация по oauth esia и EIES-Bridge

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

Про ГИС ЖКХ:  Управление Личным кабинетом Водоканал ДНР: ЖКХ

Сравнение вариантов подключения к ЕСИА

Сравнение вариантов подключения к ЕСИА

УниверсальностьИспользовать протоколы OpenID Connect / OAuth может система любой организации, которой разрешено подключение ЕСИА.

Поддержка ГОСТ-криптографииПри взаимодействии системы с ЕСИА можно использовать ГОСТ-криптографию и квалифицированные сертификаты электронной подписи, а не только зарубежный алгоритм RSA.

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

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

Получение сведений оффлайнСистема может продолжать получать от ЕСИА данные о пользователе, даже когда пользователь завершает свою онлайн-сессию.

С использованием SAML

ОграниченностьСогласно регламенту Минкомсвязи использовать SAML для подключения к ЕСИА разрешено только системам органов власти и учреждениям, оказывающим государственные услуги.

Только зарубежная криптографияПри взаимодействии системы с ЕСИА можно использовать только RSA и только неквалифицированные сертификаты.

Неактуальные сведенияСистема получает сведения о пользователе, актуальные на момент самой первой аутентификации пользователя, а не на момент SSO-входа в приложение. В случае обновления пользователем сведений в ЕСИА в течение сессии эти изменения остаются невидимыми системам до момента перевхода пользователя.

Фрагментарность получаемых сведенийНе все сведения о пользователе можно получить по SAML. Получаемые сведения ограничены текущей ролью, выбранной пользователем при входе.

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

В 2017 году Минкомсвязь России внесла уточнение в регламент подключения к ЕСИА

С 01.01.2018 г. никакие системы больше не могут быть подключены к ЕСИА по протоколу SAML 2.0. Возможность использования этого протокола сохранится только для ранее подключенных систем. Для подключения к ЕСИА необходимо использовать протокол OAuth 2.0 / OpenID Connect.

Для подключения к ЕСИА с использованием протоколов OpenID Connect 1.0 / OAuth 2.0 рекомендуем воспользоваться ESIA-Bridge — нашим программным обеспечением, которое берет на себя все задачи по взаимодействию с ЕСИА в целях идентификации и аутентификации пользователей.

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

Про ГИС ЖКХ:  Рассчитать сумму платежа: простое руководство с простыми ответами

Первым делом надо создать сертификат для генерации подписи в формате pfx с закрытым ключем.
Для этого я использовал «PFX Certificate Generator». В настройках указывается служебная информация и информация для хеширования: sha256, длина ключа 2048.

После этого надо установить сертификат. Добавляем оснастку для сертификатов. открываем ветку «локальное хранилище», потом импортируем туда наш сгенеренный сертификат. Потом копируем его в ветку «Доверенные корневые».
После этого надо поставить к нему разрешение. В ветке «Личные» находим наш импортированный сертификат кликаем правой кнопкой мыши выбираем «Все задачи» потом «Управление закрытыми ключами». Далее добавляем разрешения на группу «Все».

После этого надо экспортировать наш сертификат в формате cer и передать в ЕСИА, там его зарегистрируют.

Вот в принципе и все. Один запрос, редирект + 2 запроса для получения маркера и информации о пользователе.
В дополнение можно проверять подпись маркера.

Получение данных об организациях возможно только при использовании offline-режима получения данных о пользователе. Этот процесс включает следующие шаги:

1. Проведение аутентификации пользователя с помощью offline-режима, по результатам которого у вызывающей системы будет следующая информация:

2. Вызов специального сервиса ESIA-Bridge, позволяющего получить данные об организации. Для этого необходимо выполнить HTTP-запрос методом POST на адрес точки получения данных об организации (/blitz/bridge/organization). Особенности запроса:

Пример запроса на получение данных об организации:

Возможные варианты ответа ESIA-Bridge на такой запрос:

Все, что требуется системе, – направить браузер пользователя по ссылке из ответа, указав корректный hostname ESIA-Bridge. Переход по этой ссылке инициирует в ЕСИА получение разрешения на доступ к данной организации. После того, как пользователь даст разрешение, ESIA-Bridge вернет пользователя по адресу, указанному в redirect_url и поставит новую сессионную cookie с новым ключом доступа tokenSCS. Получив обновленный ключ доступа, система должна повторно вызвать сервис получения данных об организации.

Про ГИС ЖКХ:  Откройте для себя предпосылки для достижения успеха в качестве менеджера магазина

Пример ответа, содержащего в себе данные организации, ее сотрудников и филиалов:

После получения ответа рекомендуется сохранить данные обновленного ключа доступа scsToken. Это позволит в будущем обновить данные об организации, ее сотрудниках и филиалах в offline-режиме, т.е. без участия пользователя.

Покажите код!

Одновременно сохраняя стейт для последующей проверки.

Получаем данные пользователя

Проверяя стейт и меняя код на аутентификационный токен.

Как обновить токен?

Стандартно, как описано в документации к oauth2-client: https://github.com/thephpleague/oauth2-client#refreshing-a-token

Часто задаваемые вопросы (FAQ) по ЕСИА

Пакет заоперсорсен финтех-компанией в которой я работаю. Не тестировалось на животных.

Оцените статью
ГИС ЖКХ