我使用PingFederate作为Idenity Provider。我的应用程序(服务提供商)将RelayState发送到PingFederate。但是在成功验证后,我没有收到RelayState。
通过RelayState,我的理解是它在PingFederation端成功进行身份验证时ServiceProvider所需的状态信息。
如果我错了,请纠正我。
答案 0 :(得分:0)
您使用的是什么版本的PingFederate?
由于您从SP获得中继状态,因此您应该看到向PingFed端点发布了AuthNRequest。
您可以使用带有SSO-Tracer或SAML-Tracer的Firefox来验证您是否已将状态发布到Ping并查看回复的响应。
答案 1 :(得分:-3)
PingFederate似乎以不同但非标准的方式处理RelayState。以下是供参考的链接:
https://documentation.pingidentity.com/pingfederate/pf84/index.shtml#concept_idpEndpoints.html
IdPEndPoint URL中的可选参数TargetResource或TARGET作为参数。其值必须是URL和URL编码。
与SAML2规范http://docs.oasis-open.org/security/saml/v2.0/
不同我正在使用HTTP POST绑定,这就是规范所说的
3.5.3 RelayState
RelayState数据可以包含在SAML协议消息中 通过此绑定传输。值不得超过80个字节 长度并且应该由创建实体的实体保护完整性 消息独立于可能存在或可能不存在的任何其他保护 在消息传输期间。鉴于空间,签名是不现实的 限制,但因为价值暴露于第三方篡改, 实体应该确保该值没有被篡改 使用校验和,伪随机值或类似方法。如果是SAML 请求消息附带RelayState数据,然后是SAML 响应者必须使用绑定返回其SAML协议响应 还支持RelayState机制,它必须放置确切的数据 它收到请求后进入相应的RelayState 响应中的参数。如果SAML中不包含此类值 请求消息,或者是否正在生成SAML响应消息 没有相应的请求,SAML响应者可以包括 RelayState数据由接收者根据使用情况解释 双方之间的简介或事先协议。
WSO2似乎回应我们作为RelayState值发送给它的任何内容。
BTW我正在使用PingFederate 8.2.11。