我是SP。我正在尝试帮助 IdP 适当地向我发送(未经请求的 SSO)SAML 断言。但发生的情况是 SAML 没有签名。
在我的日志中,回调阶段启动后,它会引发一条错误消息:
ERROR -- omniauth: (saml_degreed) Authentication failure! invalid_ticket: OneLogin::RubySaml::ValidationError, Found an unexpected number of Signature Element. SAML Response rejected
当我从终端复制他的 SAML 消息并对其进行 64base 解码时,我看到的是从 element <saml:Issuer>
到 element的跳转<saml:Subject>
。没有<Signature>
元素。
当我告诉他我收到的消息中没有<Signature>
元素时,他(通过电子邮件)向我发送了他应该发送的消息,带有<Signature>
元素。
我这边(SP)有什么事情要做吗?在我的元数据文件下方找到。我已经尝试将 WantAssertionsSigned 以及 AuthnRequestsSigned 更改为“true”,但仍然失败。
<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
cacheDuration="PT604800S"
entityID="https://qa.mypage.com">
<md:SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat>
<md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Location="https://qa.mypage.com/students/auth/saml_test/callback"
index="1" />
</md:SPSSODescriptor>
</md:EntityDescriptor>