Проблемы при реализации 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) вручную (пользовательское решение).