spring-security-saml是否处理SPN格式的受众限制?

时间:2015-10-21 15:38:03

标签: spring-security saml-2.0 spring-saml

我们正在使用spring-security-saml2-core 1.0.1.RELEASE对在Azure云中运行的ADFS进行身份验证。

身份验证失败,因为Azure正在等待'spn:'到授权响应的EntityId部分<AudienceRestriction>的开头。这会导致类org.springframework.security.saml.websso.WebSSOProfileConsumerImpl失败,因为它希望受众群体字符串与EntityId完全匹配。

例如,如果SP EntityIdca58424a-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。

这是一个已知问题,是否有任何修复方法?

1 个答案:

答案 0 :(得分:0)

我通过预先挂起的spn:将此工作发送到了网络应用配置中EntityID的开头。当这传递给Azure时,它必须在比较EntityID之前检查并删除字符串。