我正在尝试向公共IDP SSOCircle发送SAML请求。我导入了元数据并尝试对此URL进行身份验证:
https://idp.ssocircle.com/sso/idpssoinit?metaAlias=%2Fpublicidp&spEntityID=sp.bogdan.test
但是当我从我的应用程序发送此请求时,会显示以下错误:
发生错误原因:SAML请求无效。
这是我的要求: a link
这是我写的请求中的SAML消息:
<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="_3b7f937b-073d-4289-b2d1-35e786ebb524" Version="2.0" IssueInstant="2017-04-03T12:42:06Z" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" AssertionConsumerServiceURL="http://localhost:61344/Account/AssertionConsumerService">
<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">https://idp.ssocircle.com</saml:Issuer>
<samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent" AllowCreate="true"/>
<samlp:RequestedAuthnContext Comparison="exact">
<saml:AuthnContextClassRef xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
</saml:AuthnContextClassRef>
</samlp:RequestedAuthnContext>
</samlp:AuthnRequest>
答案 0 :(得分:1)
可能很简单,因为没有使用SSOCircle注册正确的断言消费者URL(http://localhost:61344/Account/AssertionConsumerService
)。但是你应该真正查看SSOCircle调试日志以了解更多信息。
答案 1 :(得分:0)
在您的示例中,您要发送 https://idp.ssocircle.com 作为AuthnRequest的颁发者。请求的颁发者不是 IDP ,而是 SP 。在你的情况下,它应该是 sp.bogdan.test