在使用PingFederate进行SSO期间,我需要将数据从一个系统传递到另一个系统。
当前我的链接如下所示:
https://pingfederate.myexample.org/startSSO.ping?TargetResource=https%3A%2F%2Fwebapp.othercompany.org%3FkeepParam%3DkeepThisOnURLparamOne%3DvalueOne%26paramTwo%3DvalueTwo
解码后的TargetResource如下所示:
https://webapp.othercompany.org?
keepParam=keepThisOnURL
¶mOne=valueOne
¶mTwo=valueTwo
pingfederate处理完请求后,它最终会向其他公司发布帖子,将整个TargetResource复制到RelayState、params和all中:
POST https://sso.othercompany.org
SAMLResponse: {paramOne: valueOne; paramTwo: valueTwo} //(in actual saml format)
RelayState: https://webapp.othercompany.org?keepParam=keepThisOnURL¶mOne=valueOne¶mTwo=valueTwo
我的目标是以某种方式将paramOne和paramTwo传递到SAML属性中,但是
不要把那些参数带到RelayState
,仅保留keepParam=keepThisOnURL:
POST https://sso.othercompany.org
SAMLResponse: {paramOne: valueOne; paramTwo: valueTwo} //(in actual saml format)
RelayState: https://webapp.othercompany.org?keepParam=keepThisOnURL
这可能与PingFederate有关吗?
E、 g.,是否有其他方法将数据传递到startSSO。除了潜入TargetResource之外,还能从浏览器请求中ping吗?
或者,如果它们只能附加到TargetResource,那么在复制到RelayState之前,是否可以修改该值(去掉大多数参数)?