【问题标题】:How are attributes mapped between .NET (ADFS / WIF) and Java (Federation).NET (ADFS / WIF) 和 Java (Federation) 之间的属性如何映射
【发布时间】:2011-03-13 22:20:48
【问题描述】:

假设有两家公司:A.NET 是一家 .NET 商店,B.Java 是一家 Java 商店。 每家公司的用户都需要访问另一家公司的网站,因此两家公司使用 ADFS 和 Oracle 身份联合或 OpenSSO 联合来建立联合。

在 .NET 世界中,属性作为 IClaimsPrincipal 和 IClaimsIdentity 中的声明进行访问。

在 Java 世界中,属性作为 HTTP 标头访问。

联邦基础设施是否自动执行此映射,即

如果 A.NET 用户访问 B.Java 站点,他们是否将其属性作为声明?

如果 B.Java 用户访问 A.NET 站点,他们是否将其属性作为标题获取?

【问题讨论】:

    标签: adfs adfs2.0 opensso wif


    【解决方案1】:

    假设您可以在双方都使用 WS-Federation,那么在这两种情况下,您要处理的主要工件都是 SAML 令牌。

    通常,您的联合基础架构完全独立于应用程序堆栈。在任何一种情况下,ADFS 都会颁发 SAML 令牌(对于 Java 应用程序和 .NET 应用程序)。 OIF 还必须为两组用户颁发 SAML 令牌。

    在 .NET 世界中,WIF 将 SAML 令牌解析/验证等方式转换为 .NET 对象模型,该模型表示其中的信息(声明、颁发者等)。该对象模型是 ClaimsPrincipal(以及所有相关的接口和类型)。您将不得不查看 java 世界上的 WIF 等价物。但无论哪种情况,输入都是 SAML 令牌。

    在您的场景中,两个 STS 中都可能存在令牌转换:

    对于 .NET 应用程序:

    1- B 公司的用户在 OIF 上进行身份验证并获得 A 公司的 SAML 令牌 2- 用户将令牌发送到 ADFS 3- ADFS 从 B 读取令牌,验证并发出新令牌(可能且很可能添加/转换/删除声明) 4- 用户将转换后的令牌发送到应用 A

    A 中的用户访问 B 上的 java 应用程序的顺序完全相同。请注意,在这种情况下存在双向信任(A 公司信任 B 的发行人,反之亦然)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-19
      • 2015-04-29
      • 2022-11-23
      • 2019-01-09
      • 2011-12-20
      • 1970-01-01
      • 1970-01-01
      • 2011-05-25
      相关资源
      最近更新 更多