通过传入的声明

Pass through incoming claims

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

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

有人建议我将动态数据存储在数据库中,然后将其提取到 ADFS 中,但是如果用户试图在两个 windows同时

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

基本上,用户转到站点 A,单击项目 2,这会将他们 SSO 到站点 B,并在上下文中使用项目 2。如果用户改为选择项目 7,他们将在上下文中使用项目 7 单点登录到站点 B。此信息与 用户 无关,因为用户可以访问任何项目,但需要在 SAML 令牌中将其提供给站点 B。

首先"maweeras"很权威。你可以相信 has answer/comment 是正确的 :-).

正如 maweeras 所说:要将其加入 SAML 令牌,您必须使用 "claims rules"。问题在于将其放入声明规则的输入集中。这可以是来自:特定于用户(你说你不想要那个,多个 windows 可以修复,但这确实很糟糕),b。另一个 SAML 令牌发行者,或 c.来自一些非常具体的 HTTP headers.

正如你所指定的,只有选项c。遗迹。已经很强硬,我必须警告你要非常小心,因为所有这些都可能已经产生了特定的后果。有些人会说你在虐待他们。搬起石头砸自己的脚

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