我们正在使用spring-security-saml2-core 1.0.1.RELEASE
对在Azure云中运行的ADFS进行身份验证。
身份验证失败,因为Azure正在等待'spn:'
到授权响应的EntityId
部分<AudienceRestriction>
的开头。这会导致类org.springframework.security.saml.websso.WebSSOProfileConsumerImpl
失败,因为它希望受众群体字符串与EntityId
完全匹配。
例如,如果SP EntityId
为ca58424a-3338-4ac2-81ec-fe4a822f7fcd
并且auth请求成功,则Azure会在受众限制响应中的EntityId中返回此信息:
<Conditions NotBefore="2015-10-21T14:24:41.745Z" NotOnOrAfter="2015-10-21T15:24:41.745Z">
<AudienceRestriction>
<Audience>spn:ca58424a-3338-4ac2-81ec-fe4a822f7fcd</Audience>
</AudienceRestriction>
</Conditions>
不确定为什么Azure会这样做,但这个Azure blog确实提到了使用SPN格式的Azure。
这是一个已知问题,是否有任何修复方法?
答案 0 :(得分:0)
我通过预先挂起的spn:
将此工作发送到了网络应用配置中EntityID
的开头。当这传递给Azure时,它必须在比较EntityID
之前检查并删除字符串。