PingFederate不会在其响应中发送回relayState

时间:2017-09-04 11:11:11

标签: saml-2.0 pingfederate

我使用PingFederate作为Idenity Provider。我的应用程序(服务提供商)将RelayState发送到PingFederate。但是在成功验证后,我没有收到RelayState。

通过RelayState,我的理解是它在PingFederation端成功进行身份验证时ServiceProvider所需的状态信息。

如果我错了,请纠正我。

2 个答案:

答案 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。