Я работаю над системой аутентификации SSO с использованием протокола SAML2. Поскольку у меня еще нет реальной информации о IDP, мне нужна была тестовая среда, поэтому я использовал образ докера это, который работал как шарм. Я могу без проблем получить к нему доступ через localhost:8080, а также войти в систему с тестовой учетной записью.
Но затем, когда я пытаюсь войти в свой SP (веб-сайт, над которым я работаю), хотя меня хорошо перенаправляют на idp в localhost:8080/simplesaml/saml2/idp/SSOService.php, я получаю сообщение об ошибке, сообщающее, что метаданные не найдены. вот трассировка стека:
SimpleSAML_Error_MetadataNotFound: METADATANOTFOUND('%ENTITYID%' => '\'\'')
Backtrace:
3 lib/SimpleSAML/Metadata/MetaDataStorageHandler.php:300 (SimpleSAML_Metadata_MetaDataStorageHandler::getMetaData)
2 lib/SimpleSAML/Metadata/MetaDataStorageHandler.php:320 (SimpleSAML_Metadata_MetaDataStorageHandler::getMetaDataConfig)
1 modules/saml/lib/IdP/SAML2.php:330 (sspmod_saml_IdP_SAML2::receiveAuthnRequest)
0 www/saml2/idp/SSOService.php:19 (N/A)
Кто-нибудь сталкивался с таким же? Потому что я действительно не понимаю, где SimpleSAMLphp пытается получить эти метаданные.
ПРИМЕЧАНИЕ :
Я могу вручную найти метаданные в localhost:8080/simplesaml/saml2/idp/metadata.php
Это старый проект, над которым я работаю, и это форк Symfony 1, поэтому я не могу использовать более свежие плагины. Поэтому для SSO я использую плагин это на стороне поставщика услуг.


Наконец решено. Отправленный мной запрос аутентификации содержал пустое поле «эмитент», и это поле было необходимо на стороне idp, поскольку кажется, что simpleSAMLphp хранит метаданные SP в массиве, таком как Metdata['spName']. Так что, конечно, у них не было записи для пустой строки в качестве ключа.
Взгляните на ссылки, которые я разместил, об образе докера, который я использовал, и о плагине для создания запроса saml, все подробно описано в их документе. Для метаданных SP на стороне idp вам действительно не нужно создавать файл метаданных xml в этом случае, поскольку образ докера может использовать переменные среды. Это просто POC, не то, что я бы запускал в производстве.
Спасибо. Модуль, который я использую, требует метаданных SP в конечной точке.
Если вам не нужно что-то, что изменится, вы всегда можете использовать этот инструмент для создания ваших метаданных sp: samltool.com/sp_metadata.php
Решение должно быть включено в ответ, а не в нестабильные внешние ссылки/документы.
Как именно вы установили метадату в свой SP / отправили ее в IDP?