gpt4 book ai didi

java - 结合 Kerberos、ADFS 和 Spring Security 的 SSO 身份验证

转载 作者:行者123 更新时间:2023-11-29 09:31:25 27 4
gpt4 key购买 nike

我目前正在分析几种替代方案来实现不需要用户凭据的身份验证机制。为什么不?因为我们讨论的是仅在(应该)驻留在 Kerberos 领域内的内部网络中使用的 Web 应用程序。

我花了一些时间试图找出哪种方法,但似乎我的脑海里越来越困惑。我要问的是我应该使用哪种策略来连接这些组件,或者是否有任何不必要的策略:

  1. Kerberos:这是(假设的)身份验证机制,用户在使用 Windows 配置文件登录时获得身份验证。我非常确定它是否为要检索的委托(delegate)人提供了明确的声明列表。
  2. ADFS:在我看来,联邦服务可以只是 Kerberos 的扩展,方法是将其票证包装到更标准的 SAML 协议(protocol)中。在我看来,一旦将 Web 应用程序暴露给外部网络,这就会派上用场。因此,我说我不需要它将应用程序集成到 SSO 机制中是否正确?或者它仍然需要作为一种集成方式。
  3. Oracle WebLogic:这是选定的将托管 Web 应用程序的应用程序服务器。似乎有一些方法可以将 WLS 配置为 Kerberos 领域的一部分。集成的要点是 key 表。在这里,我找到了一个旧示例,但似乎也需要在 WLS 12c 中完成或多或少相同的操作:http://www.ateam-oracle.com/kerberos-and-weblogic-server-on-windows-step-by-step/
  4. SPNEGO:这似乎是用于配置架构的标准协议(protocol),HTTP 协议(protocol)用于访问服务提供商(网络应用程序)。对我来说,它只是 Kerberos 的扩展,这在我的用例中是必需的,因为服务确实是通过 HTTP 访问的(Angular SPA + SpringBoot 通过 REST 进行通信)。
  5. SpringSecurity-Kerberos 扩展:SpringSecurity 提供了许多扩展,其中之一是支持 Kerberos 和 SPNEGO 的模块。现在有两个问题在我脑海中沸腾:
    • 我认为这是一个备选方案,以防无法集成在应用程序服务器 (Oracle WLS) 中处理。如果是这样,那将是更好的方法?
    • 在其文档中,Spring 提供了使用此扩展设置安全适配器的示例(主要集成点:仍然是 key 表)。但是如何检索用户详细信息呢?是否仍需要服务来连接到单独存储它们的 Active Directory?

我对替代方案和所有可以协同工作的组件感到非常困惑。我还没有找到此类用例流程的简明流程图,只有它们各自独立工作。那么,假设我们拥有上述所有组件,可以设计哪一种方法?

注意:另外,现在 Angular 层通过 SpringBoot 后端 View JWT 上的虚拟服务进行身份验证。如果可能的话,我希望将 JWT 保留在两者之间,但如果可以轻松检索和解析 Kerberos 票证以获得声明,它就会过时。

最佳答案

使用我的 Tomcat SPNEGO AD 扩展,它包含一个 Spring Sec shim。

关于java - 结合 Kerberos、ADFS 和 Spring Security 的 SSO 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55573820/

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