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



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

我花了一些时间试图弄清楚哪种方法是方法,但似乎混乱在我的脑海中越来越大。我要问的是我应该使用哪种策略来连接这些组件,或者是否有任何不必要的组件:

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

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

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

使用我的Tomcat SPNEGO AD扩展,其中包含Spring Sec垫片。

相关内容

  • 没有找到相关文章

最新更新