当前位置: 首页 > 知识库问答 >
问题:

如何将数据传递到SAML属性中?

令狐晟
2023-03-14

在使用PingFederate进行单点登录期间,我需要将数据从一个系统传递到另一个系统。

目前我的链接如下所示:

https://pingfederate.myexample.org/startSSO.ping?TargetResource=https%3A%2F%2Fwebapp.othercompany.org%3FkeepParam%3DkeepThisOnURLparamOne%3DvalueOne%26paramTwo%3DvalueTwo

目标资源,解码,如下所示:

https://webapp.othercompany.org?
    keepParam=keepThisOnURL
    &paramOne=valueOne
    &paramTwo=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&paramOne=valueOne&paramTwo=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一起做吗?

例如,除了偷偷将数据传递到目标资源中之外,还有其他方法可以将数据从浏览器请求传递到startSSO.ping中吗?

或者,如果它们只能追加到TargetResource,那么在复制到RelayState之前,是否可以修改该值(去除大多数参数)?

共有1个答案

徐鸿文
2023-03-14

参数被插入中继状态的原因是因为您对它们进行了URLEncoded,所以平美联储认为它们只是目标资源的一部分。

相反,您可以执行如下操作:

https://pingfederate.myexample.org/idp/startSSO.ping?
  paramOne=valueOne&
  paramTwo=valueTwo&
  TargetResource=https%3A%2F%2Fwebapp.othercompany.org%3FkeepParam%3DkeepThisOnURL

我应该指出两件事,第一件是一个止步符:

    < li >不支持通过在startSSO.ping调用中传递的参数来实现属性,并且在两个当前功能请求——PPQ-1141和PPQ-2815——中的至少一个被实现之前,这些属性不会正常工作。这两者目前都没有列入开发计划(低请求量),因此如果这对您的工作至关重要,请联系您的Ping客户经理,沟通您的需求。 < li >我应该指出,从运营的角度来看,这种整体方法可能没有太大的意义,因为它意味着您将依赖于IdP发起的交易,因为您无法通过SP发起的交易来实现这一点。

基于这些,我建议尝试构建另一个解决方案,通过它您可以设置这些属性,我知道这可能很困难——特别是如果它们只在运行时派生,而不是通过查询数据存储

 类似资料:
  • 问题内容: 好的,所以我想将一个非常基本的数组传递到jquery数据attrubute服务器端,如下所示: 然后像这样回撤: 为什么这似乎会警告’[‘而不是’a’(请参阅JSfiddle链接) JSFiddle链接: http : //jsfiddle.net/ktw4v/3/ 问题答案: 它将变量视为字符串,其第零个元素为。 发生这种情况是因为您的字符串不是有效的JSON,它应使用双引号而不是单

  • 问题内容: 我有一个主类,期望使用-D选项传递某些属性。我可以通过将其作为VM选项发送来在IDE中访问它。 我使用Maven并在尝试以下操作时将此应用程序打包到jar文件中: 要么 没有获取环境系统属性。 关于发生了什么的任何指示? 问题答案: 在。之前传递参数。如果在jar文件之后传递它们,它们将被解释为命令行参数并传递给in 。喜欢,

  • 我创建了一个新的电子应用程序。 在索引中。jsi使用节点文件系统加载数据 如果我试着使用require。JSIT之所以能够工作,是因为它运行在不同的线程上,而不是使用节点进行初始化,更像是一个实际的浏览器窗口。但有没有办法从索引中传递数据呢。js到main。js 我不知道我对这个问题的看法是否部分正确 如果您需要更多代码或信息,请询问!

  • 问题内容: 我有一个属性指令,其限制如下: 我需要传递两个属性;一个数字和一个函数/回调,使用对象在指令中访问它们。 如果指令是元素指令,那么我可以限制为: 但是,出于某种原因,我不再赘述,我需要将该指令作为属性指令。 如何将多个属性传递到属性指令中? 问题答案: 该指令可以访问在同一元素上定义的任何属性,即使该指令本身不是该元素也是如此。 模板: 指示: 如果attribute的值将被硬编码,则

  • 我有一个Thymeleaf表单,当用户登录时,它会将数据发送到数据库表。ThymeLeaf模板能够从其分配的控制器捕获登录用户的会话。将数据保存到数据库时。 我需要将表单数据与捕获的会话用户名一起提供,以便所述会话用户名也保存在数据库表中。但是我得到一个错误 组织。springframework。豆。NotReadablePropertyException:bean类[com.example.jo