【问题标题】:Pass through incoming claims通过传入的索赔
【发布时间】:2017-05-13 21:15:24
【问题描述】:

是否可以将 SAML 声明发送到 ADFS,然后让 ADFS 使用来自该传入声明的值来生成自己的声明?

基本上,我们需要发送 a) 关于用户的信息(相当简单),以及 b) 关于目标的信息(手头的问题)。目标由用户在 SSO 时选择。

有人建议我将动态数据存储在数据库中,然后将其拉入 ADFS,但如果用户尝试同时在两个窗口中打开两个目标,则存在产生问题的风险。

编辑:当用户 SSO 进入目标应用程序时,他们将被带到显示有关特定项目的信息的屏幕。我们需要提供用户需要查看的项目 - 用户将在源应用程序中选择该项目。

本质上,用户转到站点 A,点击项目 2,然后将他们 SSO 到站点 B,项目 2 在上下文中。如果用户选择了第 7 项,他们会在上下文中使用第 7 项 SSO 进入站点 B。此信息与用户无关,因为用户可以访问任何项目,但需要在 SAML 令牌中提供给站点 B。

【问题讨论】:

  • 是的,可以通过 ad fs 端的声明规则来实现。如果您提供更多详细信息,我们可以展示如何。高级场景可能需要为属性存储编写代码以与 ad fs 集成。
  • @maweeras:如果我知道您需要知道什么,我很乐意提供更多详细信息。有没有我可以回答的具体问题?
  • 您需要详细说明您的方案以及您想要做什么。用户在 SSO 时选择的目标是什么意思?什么是“关于目标的信息”。您设想的流程和最终结果是什么?基本上你提供的细节越多越好。
  • @maweeras:我添加了更多解释;让我知道这是否能回答问题。
  • 这不是我最初理解的问题。您似乎想向 AD FS 发送一些信息(不是 SAML 令牌,而是类似于查询字符串参数或 POST 正文中的其他内容),这会影响 AD FS 发出的令牌。 AD FS 能够根据某些规则发出声明,包括来自另一个 STS 的传入声明。但这不是你描述的那样。

标签: saml saml-2.0 adfs adfs2.0


【解决方案1】:

首先,“maweeras”非常权威。您可以相信答案/评论是正确的:-)。

正如 maweeras 所说:要将其放入 SAML 令牌中,您必须使用“声明规则”。麻烦在于将其放入索赔规则的输入集中。这可以是来自:a。特定于用户(您说您不希望这样,可以修复多个窗口,但确实很糟糕),b。另一个 SAML 令牌发行者,或 c。来自一些非常具体的 HTTP 标头。

如您指定,只有选项 c。遗迹。已经强硬,我必须警告你要非常谨慎,因为所有这些都可能产生特定的后果。有些人会说你在滥用他们。朝自己的脚开枪。

不是答案,而是提示。您没有在 SAML 令牌中指定为什么要使用它。如果可能的话,我会尝试将它放在从应用程序 A 到应用程序 B 的重定向的查询参数中。这将保留在 wctx 中(如果身份验证启动)。您可能已经必须在那里添加其他一些东西以确保用户将获得正确的 SSO(IdP、authnlevel 等)。如果您需要签名,请在将其填入重定向之前对其进行签名?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-28
    相关资源
    最近更新 更多