我们正在使用WSO2 IS进行SAML 2.0 SSO实现,其中服务提供程序是使用组件空间库在C#中实现的。在用户针对SSO登录页面进行身份验证后,它将被重定向到具有SAML响应的服务提供者,该响应被压缩然后进行base64编码。使用组件空间库的C#客户端在SAML共振的base64解码之后需要一个XML字符串,这与WSO2响应不同。此标准是以压缩形式发送SAML响应吗?是否有用于此压缩的标准算法?
这是WSo2中的错误吗?
答案 0 :(得分:0)
IS 4.1.0使用4.0.7标记用于sso / saml提供程序实现。假设你使用4.1.0,你可以在这里找到压缩/编码/ marhsalling:
http://svn.wso2.org/repos/wso2/carbon/platform/tags/4.0.7/components/identity/org.wso2.carbon.identity.sso.saml/4.0.7/src/main/java/org/wso2/carbon/identity/sso/saml/util/SAMLSSOUtil.java
其他发行版使用相似或相同的实现,在这种情况下,您必须浏览wso2-jungle。我想你必须为c#找到一个opensaml库,它可以帮助你进行unmarshall过程。据我所知,你已经知道如何解压缩和解码响应,所以只有unmarshall丢失了。
答案 1 :(得分:0)
是的,这是IS 4.1.0中的一个已知错误,并在最新版本中修复:IS 4.5.0
根据SAML规范,不应压缩使用POST绑定的响应,只能进行base64编码。