Проблемы при реализации SSO с использованием Django SAML2 Auth и AzureAD

Ошибка, которую выдает приложение, следующая:

ERROR:saml2.sigver:check_sig:

ERROR:saml2.response:correctly_signed_response: Failed to verify signature

ERROR:saml2.entity:Signature Error: Failed to verify signature

ERROR:saml2.client_base:XML parse error: Failed to verify signature

И похоже, что это проблема Windows. Кто-нибудь знает, как я должен это реализовать? Команда, используемая для проверки XML, следующая:

C:\Windows\xmlsec1.exe --verify --enabled-reference-uris empty,same-doc --enabled-key-data raw-x509-cert --pubkey-cert-pem C:\Users\me\AppData\Local\Temp\tmp8wssc6_f.pem --id-attr:ID urn:oasis:names:tc:SAML:2.0:assertion:Assertion --node-id _579304c7-f1c4-5918-83ee-4b33c5df1e00 --output C:\Users\me\AppData\Local\Temp\tmpw9lbnowc.xml C:\Users\me\AppData\Local\Temp\tmpcg9l7jik.xml

И он возвращает b"".

Заранее спасибо.

Ваш вопрос немного расплывчат. Похоже, что вы отправили authenrequest и получили ответ, а приложение на вашей стороне выдает ошибку проверки подписи. Если это верно, то у вас, скорее всего, нет правильного cacert от провайдера идентификации, определенного в вашем приложении.

Вопросы о SAML и проверке подписей XML действительно нуждаются в оригинальном xml в идеале в base64, чтобы можно было попытаться проверить подпись.

Для тех, кто может столкнуться с этой проблемой в будущем: Windows OS (все еще не знаю точно, вызвана ли проблема особенностью ОС, я не смог проверить это в других средах), pysaml2 и django-saml2-auth не очень хорошо обрабатывают самоподписанные сертификаты. Я мог бы решить проблему, просто форкнув pysaml2/django-saml2-auth и передавая загруженные cert-файлы от IdP (.pem) вручную (пользовательское решение).

Вернуться на верх