gpt4 book ai didi

java - 来自 Java(Jetty 下的 Spring MVC)应用程序的 ADFS 身份验证和模拟

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:12:41 25 4
gpt4 key购买 nike

我有一个提供搜索服务的 Java 网络应用程序,在某些情况下需要检查结果的安全性。如果重要的话,它在 Spring MVC 中实现并在 jetty 下运行。

我有一位客户希望网络应用程序的身份验证:

  • 通过 Active Directory 联合身份验证服务 (ADFS) 而不是现有的内置机制来完成(以避免单独登录)。
  • 能够在搜索服务器上模拟远程用户,以便在搜索服务器上执行单独的应用程序执行安全检查(它本身对 ADFS 一无所知,但能够在以下情况下执行相关检查以相关用户身份运行)。

这可能吗?如果可能,如何实现?

(抱歉,如果 Windows 世界的术语有点不对 - 我不太了解,但希望至少意图是明确的)


关于我已经看过的拼图的一些注释:

  1. Impersonating a user from a Java Servlet ,这是我多年前提出的一个问题,内容大致相同,但没有 ADFS 要求——我不确定 ADFS 如何影响事物,但 Waffle(该问题的解决方案)似乎没有提供任何支持
  2. 我看过Java application with SSO (SAML) and ADFSHow do I talk to ADFS from Java? ,这似乎为 ADFS 身份验证提供了一种前进方式,但我不确定这是否与后续模拟兼容。
  3. 我看过 http://blogs.objectsharp.com/post/2010/09/10/Converting-Claims-to-Windows-Tokens-and-User-Impersonation.aspxhttps://msdn.microsoft.com/en-au/library/ee517278.aspx但我不确定:

    1. 如果我遵循上述 SAML 或 OAuth 路径,我将有权访问执行此操作所需的声明
    2. 是否可以在 Java 中实现它
  4. 我认为第二部分(模拟)与Impersonating ASP.NET claims identity to windows identity 大致相同。 ,只是我想从 Java 而不是 .Net 中完成。

最佳答案

你没有提到 ADFS 版本?

你有三个选择:

  • WS-Fed
  • SAML
  • OAuth2

在 Java 世界中,通常使用 SAML。这意味着 SAML 堆栈。

上面的 SO 链接包含我的回答,其中包含指向 SAML 堆栈列表的链接。

由于您已经在使用 Spring,因此 Spring Security 似乎很合适。

Spring Security SAML Extension

ADFS 目前不支持将 OAuth 排除在外的 OpenID Connect。

是的 - Spring Security 为您提供了 ADFS 生成的声明列表。

ADFS 确实通过 Identity Delegation 提供模拟.

不幸的是,这通常是通过 WCF 和 WIF(均为 .NET 结构)完成的。

关于java - 来自 Java(Jetty 下的 Spring MVC)应用程序的 ADFS 身份验证和模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35952280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com