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

问题描述 投票:1回答:1

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

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

  1. Kerberos:这是(假设的)身份验证机制,用户在登录Windows配置文件时进行身份验证。如果它确实提供了要检索的委托人的明确的索赔清单,我非常确定。
  2. ADFS:在我看来,通过将其票证包装到更标准的SAML协议中,联合身份验证服务可以只是Kerberos的扩展。在我看来,一旦将Web应用程序暴露给外部网络,这可能会有所帮助。因此,我是否正确地说我不需要它将应用程序集成到SSO机制中?或者仍然需要它作为整合的手段。
  3. Oracle WebLogic:这是将托管Web应用程序的所选应用程序服务器。似乎有办法将WLS配置为Kerberos领域的一部分。整合的主要方面是keytab。在这里,我发现了一个老例子,但在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扩展:SpringSecurity提供了许多扩展,其中一个是支持Kerberos和SPNEGO的模块。现在我脑子里浮现出两个问题: 我认为这是一种替代方案,以防在应用程序服务器(Oracle WLS)中处理集成。如果是这样,哪种方法更好? 在其文档中,Spring提供了使用此扩展设置安全适配器的示例(主要集成点:仍然是keytab)。但是检索用户详细信息呢?是否仍然需要服务才能连接到分别存储它们的Active Directory?

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

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

java spring-boot kerberos adfs spnego
1个回答
-2
投票

使用包含Spring Sec垫片的Tomcat SPNEGO AD扩展。

© www.soinside.com 2019 - 2024. All rights reserved.