Интеграция ИС с ЕСИА посредством SAML

Интеграция с ЕСИА

При выполнении очередного госзаказа наша команда столкнулась с проблемой интеграции сайта с ЕСИА. Инструкции по решению этой задачи в сети нет, кроме информации в официальных документах МинКомСвязи (примерно 300 страниц в трех регламентах). Также есть компании, которые оказывают платные услуги по интеграции ЕСИА. Мы реализовали, описали процесс интеграции и решили поделиться с сообществом habrahabr.


Что такое ЕСИА


Единая Система Идентификации и Аутентификации — российская информациия система, обеспечивающая доступ (регистрация, аутентификация) на сайты государтсвенных структур и некоторых коммерческих организаций. Подробнее на википедии


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


Сценарий авторизации выглядит примерно так:


  • Пользователь на сайте, на котором внедряется ЕСИА, в личном кабинете нажимает на кнопку «Войти через ГосУслуги»
  • Система переадресует на сайт ЕСИА
  • Пользователь вводит свои логин и пароль на сайте ЕСИА
  • При успешной авторизации ЕСИА возвращает пользователя обратно на сайт и по защищенному протоколу передает его личные данные

Содержание


  1. Общие сведения
  2. Установка SimpleSAMLphp
  3. Настройка SimpleSAMLphp для подключения к тестовой среде ЕСИА
  4. Конфигурация файла метаданных
  5. Отправка заявки в адрес МинКомСвзяи на подключение ИС к тестовой среде ЕСИА
  6. Функциональная интеграция с ЕСИА и получение данных авторизированных пользователей через ЕСИА
  7. Отправка заявки на подключение ИС к продуктивной среде ЕСИА

Общие сведения


На сайте МинКомСвязи размещен документ, именуемый «Методические рекомендации по использованию Единой системы идентификации и аутентификации», последнюю актуальную версию всегда можно найти на сайте МинКомСвязи. Документ сам по себе немаленький — почти 200 страниц, и, конечно же мало кто захочет его подробно изучать, да и понятен он будет не всем желающим, поэтому опишу тут процесс в сухом остатке.


Подключить ИС к ЕСИА возможно двумя способами:


  • Посредством стандарта SAML 2.0
  • На базе подхода REST

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


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


Установка SimpleSAMLphp


Для интеграции будем использовать SimpleSAMLphp. Если система, которую вы настраиваете написана не на PHP, то все равно можно использовать этот модуль, просто на вашем сайте будет функция аутентификации реализована на php, данные от ЕСИА вы получите в xml формате.


Последняя официальная версия SimplSAMLphp доступна на официальном сайте SimpleSamlPHP. Скачиваете архив, распаковываете модуль в папку /var.В целях безопасности для папки с разархивированным модулем необходимо настроить права доступа только для root пользователя. В конфигурации сервера необходимо добавить алиас и следующие правила:


<VirtualHost *>
ServerName service.example.com
    DocumentRoot /var/www/service.example.com
    SetEnv SIMPLESAMLPHP_CONFIG_DIR /var/simplesamlphp/config
    Alias /simplesaml /var/simplesamlphp/www
    <Directory /var/simplesamlphp/www>
        <IfModule !mod_authz_core.c>
        # For Apache 2.2:
        Order allow,deny
        Allow from all
        </IfModule>
        <IfModule mod_authz_core.c>
        # For Apache 2.4:
        Require all granted
        </IfModule>
    </Directory>
</VirtualHost>

Суть в том, чтобы по запросу ServerName/simplesaml открывалась приветственная страница simplesaml. Если вы все сделали правильно, то по запросу ServerName/simplesaml вы увидите такую страничку



SimpleSamlPHP

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


Для интеграции необходимы сертификат (cert.crt) и ключ (key.key). Важно(!) с ГОСТовским сертфикатом ничего не выйдет, можно получить бесплатный сертификат, погуглив как это делается, либо выпустить сертификат самому. Ключ и сертификат кладем в папку simplesamlphp/cert


Для конфигурации SimpleSAMLphp необходимо отредактировать следующие файлы:


  • simplesamlphp/config/config.php
  • simplesamlphp/config/authsources.php
  • simplesamlphp/metadata/saml20-idp-remote.php

Важное замечание — время на сервере не должно отличаться от времени ЕСИА больше 1 минуты.


simplesamlphp/config/config.php:


//путь к папке с сертификатом и ключом относительно директории simplesamlphp
'certdir' => 'cert/'

// соль
'secretsalt' => 'defaultsecretsalt',
//Контакты администратора
'technicalcontact_name' => 'Familiya Imya',
'technicalcontact_email' => 'po4ta@domen.zone',

Важно знать, есть ли у системы entityID, если его нет, то в поле 'entityID' необходимо указать адрес системы


simplesamlphp/config/authsources.php:



esia' => array (
	'saml:SP',
	'name' => 'Esia',
//файл закрытого ключа
	'privatekey' => 'key.key',
//пароль ключа
	'privatekey_pass' => '12345678',
//сертификат открытого ключа
	'certificate' => 'cert.crt',
//идентификатор системы,
	'entityID' => 'ServerName',
	'discoURL' => NULL,
	'redirect.sign' => TRUE,
	'redirect.validate' => TRUE,
	'validate.logout' => FALSE,
//idp поставщика услуг для тестовой среды
	'idp' => 'https://esia-portal1.test.gosuslugi.ru/idp/shibboleth',
//idp поставщика услуг для продуктивной среды
//	'idp' => 'https://esia.gosuslugi.ru/idp/shibboleth',
//Наименование организации
	'OrganizationName' => 'Organization Name',
//url организации
	'OrganizationURL' => 'ServerName',

Теперь надо получить подпись для нашего сертификата (fingerprint). Это можно сделать в терминале одной из команд


  • openssl x509 -noout -fingerprint -in "cert.crt" SHA1
  • sha1sum cert.crt

simplesamlphp/metadata/saml20-idp-remote.php:



// idp поставщика услуг для тестовой среды
$metadata['https://esia-portal1.test.gosuslugi.ru/idp/shibboleth'] = array(
	'name' => array(
		'en' => 'Esia',
		'no' => 'ESIA',
	),
//idp SignOn поставщика услуг
	'SingleSignOnService' => 'https://esia-portal1.test.gosuslugi.ru/idp/profile/SAML2/Redirect/SSO',
//idp LogOut поставщика услуг
	'SingleLogoutService' => 'https://esia-portal1.test.gosuslugi.ru/idp/profile/SAML2/Redirect/SLO',
//Fingerprint сертификата
	'certFingerprint' => 'f17393ae5927293ae5927261b6515c44501e4450',
);

Конфигурация файла метаданных


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


Файл метаданных доступен по ссылке: ServerName/simplesaml/module.php/saml/sp/metadata.php/esia?output=xhtml


Пример файла метаданных:


<?xml version="1.0"?>
<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" entityID="ServerName">
  <md:SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:1.1:protocol urn:oasis:names:tc:SAML:2.0:protocol" AuthnRequestsSigned="true">
    <md:KeyDescriptor use="signing">
      <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
        <ds:X509Data>
          <ds:X509Certificate>
		//Сертификат
	  </ ds:X509Certificate>
        </ds:X509Data>
      </ds:KeyInfo>
    </md:KeyDescriptor>
    <md:KeyDescriptor use="encryption">
      <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
        <ds:X509Data>
          <ds:X509Certificate>
		//Сертификат
	  </ ds:X509Certificate>
        </ds:X509Data>
      </ds:KeyInfo>
    </md:KeyDescriptor>
    <md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="ServerName/simplesaml/module.php/saml/sp/saml2-logout.php/esia"/>
    <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="ServerName/simplesaml/module.php/saml/sp/saml2-acs.php/esia" index="0"/>
    <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:1.0:profiles:browser-post" Location="ServerName/simplesaml/module.php/saml/sp/saml1-acs.php/esia" index="1"/>
    <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact" Location="ServerName/simplesaml/module.php/saml/sp/saml2-acs.php/esia" index="2"/>
    <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:1.0:profiles:artifact-01" Location="ServerName/simplesaml/module.php/saml/sp/saml1-acs.php/esia/artifact" index="3"/>
  </md:SPSSODescriptor>
  <md:Organization>
    <md:OrganizationName xml:lang="en">Organization Name</md:OrganizationName>
    <md:OrganizationDisplayName xml:lang="en">Organization Name</md:OrganizationDisplayName>
    <md:OrganizationURL xml:lang="en">ServerName</md:OrganizationURL>
  </md:Organization>
  <md:ContactPerson contactType="technical">
    <md:GivenName>Imya</md:GivenName>
    <md:SurName>Familiya</md:SurName>
    <md:EmailAddress>po4ta@domen.zone</md:EmailAddress>
  </md:ContactPerson>
</md:E</ntityDescriptor>

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


Пример файла метаданных, удовлетворяющий требованиям ЕСИА, может скачать по ссылке example.xml


Отправка заявки в адрес МинКомСвзяи на подключение ИС к тестовой среде ЕСИА


Теперь формируем заявку по форме «E» Регламента информационного взаимодействия Участников с Оператором ЕСИА. Форму заявки в формате docx можете скачать с нашего сайта по ссылке.


Теперь необходимо отправить заявку на почту esia@minsvyaz.ru с темой «Интеграция тестовой ЕСИА» и к письму необходимо приложить три файла:


  • скан заявки в формате pdf,
  • сертификат в формате crt
  • файл метаданных xml

После получения ответа от поставщика услуг (ЕСИА) со статусом «Решен» и приложенными файлами для тестирования, переходим к следующему шагу.


Возможно Вам придет ответ с темой «Требуется дополнительная информация по запросу #», в этом случае в письме будет информация о том, что необходимо исправить.


Функциональная интеграция с ЕСИА и получение данных авторизированных пользователей через ЕСИА


Проверить подключения ИС к тестовой среде можно по ссылке
ServerName/simplesaml/module.php/core/authenticate.php?as=esia.


При корректном выполнении всех предыдущих пунктов по ссылке откроется страница с тестовой средой ЕСИА. Для аутентификации в тестовой среде используются данные, полученные от ЕСИА в письме со статусом «Решен». После аутентификации произойдет переход на страницу SimpleSAML с таблицей с полученными данными от ЕСИА.


xml ответ ЕСИА

Теперь напишем скрипт, который будет обрабатывать данные. Для начала добавим кнопку для авторизации на сайт.



//в аттрибуте action указываем путь к файлу с будущим обработчиком данных
<form action="inc/esia.php" method="POST">
	<input name="esia" type="submit" value="Войти через Госуслуги"/>
</form>

Обработчик inc/esia.php. Тут мы получаем данные и можем записать их в базу, добавить в сессию и т.д. Вообще надо правильно парсить xml. Сейчас просто выведем данные на экран.



if (isset($_POST['esia'])){
//Настраиваем путь до simplesamlphp/lib/_autoload.php
	require_once('../../simplesamlphp/lib/_autoload.php');
	$as = new SimpleSAML_Auth_Simple('esia');
	$as->requireAuth();
	$attributes = $as->getAttributes();
	foreach($attributes as $key => $value) {
		echo ($key . ' ' . $value . '<br/>');
	}
}

Отправка заявки на подключение ИС к продуктивной среде ЕСИА


Теперь формируем заявку по форме «М» Регламента информационного взаимодействия Участников с Оператором ЕСИА. Она не сильно отличается от формы Е, но внимательно изучите форму, необходимо в форме добавить запрашиваемые данные и уже не надо прикреплять файл сертификата.


В файлах simplesamlphp/config/authsources.php, simplesamlphp/metadata/saml20-idp-remote.php необходимо заменить idp поставщика услуг с Тестовой среды на продуктивную:



//idp поставщика услуг для тестовой среды
//	'idp' => 'https://esia-portal1.test.gosuslugi.ru/idp/shibboleth',
//необходимо заменить на idp поставщика услуг для продуктивной среды
	'idp' => 'https://esia.gosuslugi.ru/idp/shibboleth',

Теперь формируем новый файл метаданных, по факту меняются только ссылки в полях Service


По адресу esia@minsvyaz.ru отправляем письмо и прикрепляем 2 файла:


  • Новый файл метаданных
  • Заявку по форме М

Теперь вы должны получить ответ со статусом «Решен», после этого можете вводить функцию входа через ЕСИА в эксплуатацию.


На момент написания статьи актуальная версии Регламента — 2.7. При обновлении регламента возможны некоторые изменения во взаимодействии ИС с ЕСИА.


AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 50

    0
    Подключение к ЕСИА бесплатное? Можно ли его интегрировать в свою услугу, например, для авторизации пользователей?
      0
      Там скоп документов нужен от организации. Просто к сайту прикрутить нельзя.
        0
        Это понятно, процесс подключения бумажный в 21 веке) Но после подключения — будет ли возможность получать данные о владельце учетной записи?
          +1
          Да, конечно. Посмотрите документ http://minsvyaz.ru/common/upload/metod%5B1%5D.pdf
            0
            Только следует учитывать, что не любой организации дадут доступ к ЕСИА. На данный момент это могут делать только госушные организации, банки, финансовые и страховые компании и операторы связи. А остальные — нет.
              +1
              Черт кроется в деталях. Это где-то описано? Может регулируют каким-то законопроектом с дорожной картой?
                0
                Регулируется разными законопроектами и «решениями подкомиссий» минсвязи. Но такого документа, в котором бы прописывалось, что этим можно, а этим нет — такого нет.

                Т.е. тут правильнее искать законы и НПА, в которых сказано, кому можно.

                Для госов — «ПОЛОЖЕНИЕ о федеральной государственной информационной системе «Единая система идентификации», для операторов связи — положения правительства 758 и 801, для финкомпаний и банков — 115ФЗ.
                  0
                  Список того кому точно можно указан в регламенте подключения (http://minsvyaz.ru/uploaded/presentations/esiareglament29.pdf). Смотрите примечание на странице 32 и потом уже перейти на страницу 95 и смотреть примечание там.
                  А остальным надо доступ согласовывать, либо через какой-нибудь федеральный НПА, либо через подкомиссию Минсвязи, как уже написал stasmat.
                    0
                    Да, можно в принципе по примерам организаций из формы заявки догадываться, что этим организациям можно, но опять же, там нет ни операторов связи, ни, например, территориальных фондов страхования. Там также написано что удостоверяющий центр может подключаться, но важно отметить, что только государственный.

                    Возможность работать с ЕСИА как правило пробивается различными «профсоюзами», типа НАУФОР для своеё сферы деятельности. Но во всех случаях это идет через внесение поправок сначала в федеральные НПА, а потом в подкомиссии минсвязи.
                      0
                      Да, все так и есть. Но и Минкомсвязь понять можно. Им не хочется менять каждый раз документ при добавлении нового участника. Проблему решил бы перечень, но, видимо, дело до него никому нет, уж больно редко кто-то «со стороны» жаждет получить доступ к ЕСИА :)
            0
            Подключение бесплатное, но есть ограничение по типу организаций. Государственные без проблем, банки тоже могу, а вот с коммерцией — нужно одобрением на правительственной подкомиссии по информатизации.

            P.S. долго одобряли, выше уже написали то же самое.
            0
            Всё ленился написать про регистрацию OAuth2, а сейчас уже поздно. Точно всё не помню, а доступа к исходникам уже нет. Если у кого есть заинтересованность, пишите. Могу сказать сразу, лучше сначала потренироваться на Вконтакте, Одноклассниках и пр. Логика та же, только накручено ещё.
              0
              По сути это OAuth?
                0
                Нет, это SAML.
                  0
                  Нет, это Saml 2.0.
                  0
                  Спасибо за статью.
                  Ссылка на example.xml битая.
                    0
                    Надеюсь, статья будет действительно полезна. Ссылку поправил, спасибо
                    –3
                    Добавлю пару моментов, с которыми мы столкнулись при подключении заказчика к ЕСИА:
                    1. SAML протокол доступен ТОЛЬКО для гос. организаций.
                    2. С февраля 2017 года минсвязь по протоколу SAML уже не подключает.

                    В общем, пока всё это выяснилось потеряли время. Нам нужно было срочно подключататься, некогда было разбираться в новых регламентах. В итоге нашли готовый модуль подключения к ЕСИА под свою платформу на esia.pro и заодно там с бюрократией минсвязи помогли всё порешать.
                      0
                      Можно, пожалуйста, ссылку на п.2?
                        0
                        Увы, в официальных документах этого нет. Выясняется только на этапе подачи заявки.
                        +1
                        Аналогичные комментарии оставляют на 99% форумах, где задаются вопросы по интеграции ИС с ЕСИА, где все сводится к покупке готового решения на вышеуказанном сайте.
                        Основная цель данной статьи — показать и объяснить пользователям, что, несмотря на всю «бюрократию», подключение ЕСИА не требует каких-то сверхъестественных навыков.
                        А что касается вашего п.2, не поленился и посмотрел свежую методичку от 10 марта 2017, никто пока не собирался отказываться от стандарта SAML
                          –2
                          Я ж говорю, что официально в документах этого нет. И выше еще один комментарий тоже об этом был. По факту, до февраля еще подключали, но ряда фич при этом в SAML не было. Делали запрос в минсвязи, получили такой ответ:
                          По Вашему обращению INC000001804782 сообщаем: для протокола SAML такой функциональности не предусмотрено, протокол SAML не планируется к развитию и в будущем будет выводиться из эксплуатации ЕСИА.
                          Вы можете использовать OpenId Connect, у которого предусмотрен механизм скрытой проверки авторизации пользователя.


                          Помимо «скрытой авторизации» нет также возможности использовать ряд новых полей из профиля в ЕСИА и прочих функций, которые требовались в системе. Сейчас не вспомню сходу, но если нужно могу раскопать.
                            +1
                            То, что вы хотите прорекламировать свой сервис все уже поняли:)
                              –1
                              К сожалению, не без этого :) Плохая была идея.
                              Но инфу про САМЛ пишу не ради рекламы, мы тоже с этим протоколом работали.

                              Если не секрет, вы когда производили подключение по SAML последний раз?
                                +1
                                Подключение производили в декабре 2016 года.
                                Стало даже интересно, насколько далеко вы готовы зайти. Написали вчера в Минкомсвязи. Получили такой ответ:

                                Ваш запрос SCR#644101 переведен в статус Решен:
                                Описание решения: Сообщаем вам, что согласно Регламенту информационного взаимодействия Участников с Оператором ЕСИА и Оператором эксплуатации инфраструктуры электронного правительства (http://minsvyaz.ru/ru/documents/4244/) подключение ИС к ЕСИА по протоколу SAML осуществляется.

                                Сроки вывода протокола SAML из эксплуатации не определены.
                                  +2
                                  Мы имели небольшой опыт работы и с SAML, и с OAuth в ЕСИА. И у SAML есть большое преимущество — можно очень просто получить ту организацию, от имени которой зашел пользователь. Ты получаешь эту организацию прямо среди SAML-утверждений.
                                  В OAuth это сделать гораздо сложнее. Нужно получить перечень всех организаций пользователя, у него спросить, от имени какой организации он хочет работать, а далее уже получить данные об этой организации. Иными словами, для самой системы здесь возникает доработка, которой не было бы в случае подключения по SAML,
                                  Так что если вы подключаете гос. организацию и вам нужно получить организацию пользователя, то подключайтесь по SAML, пока не поздно :)

                                  И спасибо большое, что не поленились написать в Минкомсвязи. Очень неприятно, когда продавец продукта тебе врет. Да и бизнес у него не очень идет — пропала ссылка, что они сидят в Ростове, повесили московский номер (мобильный?)… Сейчас продадут тебе «модуль», а завтра нужно будет что-то подкрутить — где найдешь эти Рога и Копыта?
                                    0
                                    Спасибо за настоящие аргументы.
                                    А не осталось ли у вас чеклиста, по которому выбирали вариант доступа? Хотелось бы посмотреть на остальные плюсы и минусы обоих способов.
                                      +1
                                      Честно говоря, это единственный важный пункт, который стоило добавить к ссылке из статьи (абзац «Если сравнивать 2 подхода, то по факту разницы между ними большой нет...»). У SAML действительно больше недостатков, и они там прописаны.

                                      Хотя еще один плюс, помимо кейса с организациями, могу предложить: подключение по SAML соответствует стандарту. Это не просто слова. Здесь два преимущества:
                                      1) Можно использовать готовые модули — SimpleSamlPHP, OIOSAML, что упрощает разработку. С OAuth такой фокус не пройдет, т.к. Минкомсвязи достаточно сильно исковеркало протокол. Когда мы оценивали разработку, то у нас получилось по цене сопоставимо с продуктом упомянутых ребят, подключающих к ЕСИА.
                                      2) После интеграции по SAML сайт можно будет подключить в будущем не к ЕСИА, а к другому IdentityProvider почти без доработок. Грубо говоря, сейчас вы подключили сайт к ЕСИА, а завтра вы решили внедрить единую систему входа для всех своих порталов. Большинство таких SSO-систем поддерживает SAML.
                                      Если еще что-то вспомню, напишу. И так многовато для понедельника :)
                                        0
                                        А какие несоответствия есть по OIDC? Я помню что там падало при указании скоупа openid :) Но скоро как раз по нему подключаться, так что собираю всю инфу заранее. Буду премного благодарен.
                                          0
                                          Извините, пропустил вопрос.
                                          Главная проблема — это то, что client_secret в понимании rfc6749 — это просто строка, тогда как при взаимодействии с ЕСИА client_secret — это подпись запроса. И здесь возникает целый пласт работы с ключами электронной подписи, подписанием каждого запроса и пр.
                                            0
                                            Ну они на OIDC, то есть используется по идее OIDC#ClientAuthentication. У них подпись самого запроса? Или подпись jwt?
                                              0
                                              В ЕСИА client_secret – это подпись запроса в формате PKCS#7 detached signature от значений нескольких параметров запроса (scope, timestamp, client_id, state).
                                                0
                                                Мдя уж. Сложно было им по спеке то сделать :(
                            –2
                            И еще одно обращение нашел.

                            Ваш запрос SCR#472512 переведен в статус Решен:
                            Описание решения: Развитие протокола SAML уже прекращено, вывод из эксплуатации рассматривается владельцем системы ФГИС ЕСИА -Минкомсвязью России. Сроки не определены.

                            Это был ноябрь 2016.
                              0
                              В регламенте сейчас об этом во множестве мест написано. Будет прекращено подключение с 1.1.2018.
                            0
                            https://github.com/fr05t1k/esia
                            оставлю это здесь, вдруг кому-нибудь пригодится, как мне в свое время.
                              0

                              Только надо уточнить, что saml предназначен только для госсистем. Да и то по спец связям. Иначе oauth.

                                0
                                Никаких спец. связей. Просто нужно быть государственной организацией.
                                0
                                Будь осторожны с сертификатами, у нас постоянно боком выходило из-за того что тестовый сертификат не правильно генерился
                                  0
                                  Что Вы имеете ввиду под «тестовый сертификат не правильно генерился»?
                                    0
                                    Кодировка нашего сертификата не проходила на ЕСИА -в Base64 обязательна
                                  0
                                  Эх… сам буквально недавно изучал вопрос возможности интеграции своего коммунального сервиса dom24x7.ru к ЕСИА, но увы и ах… пока это не возможно по крайней мере прямыми путями :(
                                    0
                                    А еще эта чудесная ЕСИА прячет ошибку авторизации в верстку страницы с ошибкой (не обычную, а например о мто что токен просрочен). И нигде об этом не написано. А еще чтобы получить данные об организациях пользователя нужно два редиректа на ЕСИА, что в свою очередь повлияло на то что мы отказались от OAuth и взяли SAML 2.0.
                                    Делал интеграцию авторизацию через ЕСИА на WebSphere Portal, самописный модуль (готовые модули в production? не-не)
                                      0
                                      В смысле в разметку? Можете пример привести? А то скоро то же интегрироваться с ними.
                                        0
                                        Была простая бага, на сервере где формировался запрос время отставало на 2 часа от «точного», ЕСИА отвечала «Ошибка авторизации», а если открыть верстку, то там будет 3-4 hidden инпута, где будет немного больше информации об ошибке, точнее о том что ошибка именно в проверки безопасности. При других багах на нашей стороне ошибки были также спрятаны в верстку, например о том что токен безопасности просрочен.
                                          0
                                          Именно в верстку или json? По спеке описание опционально. Например вот или вот. И ошибки могут быть либо сериализованы в json либо при некоторых flow в query string.
                                          А у них есть проблемы с серверным временем?
                                            0
                                            Говорю же, в HTML верстку, в hidden input. Это ошибка именно IdP, не протокола. Проблема с серверным временем была у меня, не у них.
                                              0
                                              Спасибо за информацию.
                                        +1
                                        Да, про то, что получить данные об организации получить проще и быстрее через SAML — подтверждаю. Написал об этом выше.
                                        0

                                        К сожалению, статья уже не актуальна:


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

                                        Only users with full accounts can post comments. Log in, please.