Comments 15
При использовании криптографических алгоритмов GOST первоначальный редирект на ЕСИА получается длиной примерно 5000+ символов. Вы не пытались как-то уменьшить это значение? Некоторым браузерам не нравятся такие длинные ссылки.
Там не пять тыщ, а где-то две. Можно добавить параметр типа "-noattr", сколько-то сэкономит. Пробовал "-nocert", но удалённая система хочет сертификаты в подписи. Поэтому только noattr.
Можно попробовать поиграться с самим сертификатом, попытавшись сделать его обрезанную версию. Напр. вот такой тулзой: https://github.com/pornin/DDer
Однако спецификация сертификатов нам говорит, что практически всё в нём required.
Гигантский размер скорее всего связан с utf в subject'е, который никак не поменяешь т.к. отпечаток сертификата/ключа на него завязан.
Добавил подписывателям -noattr
в релизе 1.1.2.
Ах да! Никто не требует, чтобы редирект был именно GET'овым.
POST'ом тоже всё прекрасно работает.
URL — это адрес удалённой системы. По-умолчанию боевой. Чтобы использовать тестовый, подставляете 'https://esia-portal1.test.gosuslugi.ru'.
Сертификат — это публичный сертификат с ключом для проверки подписи токена. По-умолчанию боевой (идёт в комплекте). Я не понимаю, почему минсвязь его в PEM-виде до сих не добавила в методичку. Надеюсь осознают и добавят.
На данный момент по факту только RSA в подписи токена используется, хотя в методичке пишут, что и GOST возможен.
protected $remoteUrl = 'https://esia.gosuslugi.ru';
protected $remoteCertificatePath = self::RESOURCES.'esia.prod.cer';
За ключ в комплекте отдельное спасибо, не нашел упоминаний в Методических рекомендациях, хотя сама документация написана хорошо.
На сколько я знаю — да. Это два разных мира, хоть и пересекаются местами. И вообще самл депрекейтить собираются — в методичке тоже это написано.
Вот здесь для самла серт лежит (это из методички): https://esia-portal1.test.gosuslugi.ru/idp/shibboleth
Для прода: https://esia.gosuslugi.ru/idp/shibboleth
Если вы используете ключи GOST и скомпилировали PHP с шифрами ГОСТ
подскажите, а как PHP скомпилировать с шифрами ГОСТ?
Интеграция с ЕСИА на базе oauth2-client (PHP)