以下是发送到ADFS的SAML请求
<?xml version="1.0" encoding="UTF-8"?>
<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="_84e533b7-4310-41de-8ec7-0af7afeb7979" Version="2.0" IssueInstant="2015-12-02T09:44:30Z" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Destination="https://XXXX.YYYY.ZZZZ/adfs/ls/" AssertionConsumerServiceURL="http://PPP.QQQ.RRR/SPDemo/Consume.aspx">
<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">http://XXXX.YYYY.ZZZZ/adfs/services/trust</saml:Issuer>
</samlp:AuthnRequest>
压缩并转换为Base64String后,它将重定向到ADFS。 使用SAML请求显示以下URL
服务器似乎需要签名的SAML请求,但我还没有提到需要签名SAML请求的任何地方。 SignedSamlRequestsRequired 属性也设置为false
那么,为什么ADFS 2.0要求签名的SAML请求?
是否需要执行任何操作以便不需要签名的SAML请求,或者如果需要,将签署SAML请求的签名值是什么?
答案 0 :(得分:1)
我能够解决它。
问题在于SAML请求中颁发者的设置错误。
设定适当的发行人后,即 http://PPP.QQQ.RRR/SPDemo ,如下面的SAML请求中所示,我可以在没有任何ADFS错误的情况下执行SP启动登录
<?xml version="1.0" encoding="UTF-8"?>
<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="_bd613bda-e506-4747-91c7-96a4d75c67fc" Version="2.0" IssueInstant="2015-12-03T05:51:52Z" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Destination="https://XXXX.YYYY.ZZZZ/adfs/ls/" AssertionConsumerServiceURL="https://PPP.QQQ.RRR/SPDemo//Consume.aspx">
<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">http://PPP.QQQ.RRR/SPDemo</saml:Issuer>
</samlp:AuthnRequest>
以前用过的错误发行者是 http://XXXX.YYYY.ZZZZ/adfs/services/trust