SimpleSAMLphp как idp: метаданные не найдены - PullRequest
1 голос
/ 03 мая 2019

Я работаю над системой аутентификации 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 я использую этот плагин на стороне поставщика услуг.

1 Ответ

0 голосов
/ 14 мая 2019

Наконец-то решено. Отправленный мною запрос Authn содержал пустое поле «эмитента», и это было необходимо на стороне idp, поскольку simpleSAMLphp, похоже, хранит метаданные SP в массиве, подобном Metdata ['spName']. Поэтому, конечно, они не были записаны для пустой строки в качестве ключа.

...