Spring Security SAML坚持在SAML身份验证请求中请求Artifact绑定(ProtocolBinding属性):
<saml2p:AuthnRequest xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
AssertionConsumerServiceURL="http://sp.com/saml/SSO/alias/defaultAlias"
Destination="https://idp.com/idp"
ForceAuthn="false"
ID="a4acj06d42fdc0d3494h859g3f7005c"
IsPassive="false"
IssueInstant="2012-12-05T17:07:18.271Z"
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact"
Version="2.0"
>
如何配置POST绑定?谢谢您的解答!
--安德烈亚斯
3条答案
按热度按时间vlju58qv1#
感谢nobby和Sanjeev,我最近把这个应用到了一个类似的案例中,它让我走上了正确的道路。
作为Spring Security SAML 2扩展的新手,我不得不做一些额外的工作来应用WebSSOProfileOptions。本质上,要在SAML身份验证请求上获得HTTP-POST绑定,您需要将配置文件选项传递给
org.springframework.security.saml.websso.WebSSOProfileImpl#sendAuthenticationRequest()
方法。对于我们的配置,它与config in the Spring RC2 sample project非常相似,这意味着将Sanjeev的解决方案中描述的
WebSSOProfileOptions
bean传递给samlEntryPoint.defaultProfileOptions
属性(或在那里添加一个绑定属性)。问题是,这并没有导致AuthnRequest按照设置获取绑定属性。在我们的示例中,SAML元数据在HTTP-Artifact绑定的
AssertionConsumerService
上指定isDefault=true
。在RC 2版本的Spring Security SAML 2库中,这是org.springframework.security.saml.metadata.MetadataGenerator
的默认行为。这可以通过设置MetadataGenerator的
assertionConsumerIndex
属性来覆盖。vktxenjb2#
在
securityContext.xml
中可以设置sp启动的绑定。下面的示例使用了HTTP-POST绑定的值可以在
org.opensaml.common.xml.SAMLConstants
类中找到。9rygscc13#
对于任何希望使用Java而不是XML来实现的人:
以及: