Проблема : «Это сообщение об ошибке, которое я получаю:«
Encountered error during federation passive request.
Exception details:
Microsoft.IdentityModel.Protocols.XmlSignature.SignatureVerificationFailedException: MSIS0038: SAML Message has wrong signature. Issuer: 'urn:test:dag:dagtest'.
Разрешение :
Случай 1 : AuthnRequest не обязательно подписан.
Разрешение для случая 1 : в свойствах Обновления 1 SAML2 вы можете снять флажок Подписать AuthnRequest.См. Невозможно войти в систему с помощью единого входа с использованием SAML (Multi-SSO) и ADFS 2.0 (ошибки 364 и 303) .
Случай 2 : AuthnRequest должен бытьподписан.
В вашем случае ваш SP подписывает AuthnRequest, но IdP SAML (т. Е. Microsoft ADFS) не может использовать ваш открытый сертификат / ключ SP для проверки подписи AuthnRequest.
Разрешение для варианта 2 : необходимо указать URL-адрес метаданных SAML SP для IdP SAML (т. Е. Microsoft ADFS), чтобы
Microsoft ADFS могла загружать метаданные SAML SPизвлеките открытый сертификат / ключ SP из метаданных SP, а затем используйте открытый сертификат / ключ SP для проверки подписанного AuthnRequest.
Подвопрос"Я работаю над настройкой своего SP сIdP. Они дали мне ссылку на свои метаданные. Я смог заставить приложение SAML Sample работать. Я переключил образец метаданных с метаданными IdP, но, похоже, у меня проблема с сертификатом подписи ».
Ответ :
Пример приложения SAML работает, поскольку они загрузили файл метаданных SAML SP примера приложения SAML в свой SAML IdP.
Два типичных подхода дляНастройка SAML SP с SAML IdP, в зависимости от различных требований SAML IdP, перечислены ниже.
(1) Вам необходимо создать закрытый ключ SAML SP и открытый сертификат / ключ для собственного приложения SP, сгенерировать SAML SPФайл метаданных (который включает в себя только открытый сертификат / ключ), затем у вас есть две опции
(Вариант I) загрузить файл метаданных SP в SAML IdP.
(Вариант II) предоставить URLфайла метаданных SP, затем IdP SAML (например, Microsoft ADFS) может загрузить файл метаданных SP с URL-адреса.
(2) Некоторые IdP SAML требуют, чтобы администраторы вручную загружали открытый сертификат / ключ SAML SP, иотправьте entityID и AssertionConsumerService URL SAML SP.
Вопрос : «Я попытался создать свое собственное хранилище ключей иимпорт данных сертификата x509 из файла метаданных IdP, но я получаю сообщение об ошибке с неверной подписью. "
Ответ :
(1) Обычно SAML SP требуетсясоздайте другой ключ и сертификат, которые отделены от SAML IdP.Другими словами, открытый сертификат / ключ, переносимый SAML SP и SAML IdP, должен отличаться, как показано в примере метаданных SAML SP "sp-example-org.xml" и предоставленном образце SAML IdP "idp-metadata.xml". Shibboleth IdP и SP testbed в репозитории GitHub.
Как собрать и запустить Shibboleth SAML IdP и SP с использованием контейнера Docker в репозитории GitHub предоставляет инструкцию по созданиюSAML IdP и SAML SP с использованием Shibboleth SAML IdP, OpenLDAP и Shibboleth SAML SP.
(I) shibboleth-sp-testapp / shibboleth-sp / предоставляет пример ключа SAML SP и сертификата, сгенерированного OpenSSL.
sudo openssl req -x509 -sha256 -nodes -days 3650 -newkey rsa:2048 -subj "/CN=sp.example.org" -keyout /etc/ssl/private/sp.example.org.key -out /etc/ssl/certs/sp.example.org.crt
(II) shibboleth-idp-dockerized / ext-conf / credentials / предоставляет пример ключей и сертификатов SAML IdP.
(III) shibboleth-idp-dockerized / ext-conf/ metadata / предоставляет пример соответствующего файла метаданных SAML IdP и файла метаданных SAML SP.
Вопрос : «Я также пытался создать хранилище ключей изфайл сертификата напрямую, но я получаю сообщение об ошибке, что мне не хватает закрытого ключа. "
Ответ :
Файл метаданных IdP включает только открытый сертификат / ключ, но не НЕ включает закрытый ключ.
Таким образом, вы можете NOT создать собственное хранилище ключей, импортировав данные сертификата x509 из файла метаданных IdP.
Вопрос : «Мне не дали никаких ключей или файлов сертификатов непосредственно от IdP, мне сказали, что все необходимые мне данные находятся в файле метаданных».
Ответ
Они верны. Все необходимые данные были в файле метаданных IdP.
Файл метаданных IdP содержит только открытые сертификаты, а НЕ закрытые ключи.
Вы можете вручную извлечь открытый сертификат / ключ из метаданных IdP, а затем создать открытый файл сертификата, используя шаблон, предоставленный
шибболет-IDP-dockerized / доб-конф / Учетные / IDP-signing.crt . Обратите внимание, что обычно вам НЕ нужно создавать открытый файл сертификата IdP SAML, потому что большинство SP SAML (например, Shibboleth SAML SP) извлекает открытый сертификат из файла метаданных IdP, когда это требуется (как описано в разделе «Два типичных подхода для настройки»). SAML SP с SAML IdP, в зависимости от различных требований SAML IdP "в разрешение выше).