【问题标题】:Integrate Windows Authentication spring security集成 Windows 身份验证 spring 安全性
【发布时间】:2017-06-18 00:27:19
【问题描述】:
  • 根据需要在 windows 环境中成功尝试 waffle 工作,但我的应用程序服务器托管在 *nix 环境中。
  • 所以华夫饼解决方案不符合我的要求。

  • 与 Waffle 无法满足我的要求相比,尝试过的 kerberos 解决方案很难配置。

我的要求 - 当用户点击我的 Web 应用程序的 URL 时,他/她将通过 windows 身份验证进行身份验证,或者如果可能的话可以获得 远程用户 或客户端名称(windows 帐户名称)来自请求对象。

任何建议都会有所帮助。

【问题讨论】:

  • 恕我直言,您需要一个 LDAP/Active Directory integration
  • @LaurIvan: LDAP 身份验证已经实现,但目前我需要的是实现 windows 身份验证,无需输入用户名/密码即可登录应用程序,当前 windows 登录用户名。

标签: spring-security jboss single-sign-on spring-oauth2 spring-security-kerberos


【解决方案1】:

如果您只有一个普通的 AD(没有 ADFS),那么唯一的选择是使用 SPNEGO (spring-security-kerberos) 为您的应用程序获取“自动登录”(SSO)。 UserPrincipalName 将在 Kerberos 令牌中提供。生成密钥表文件(用于您的应用程序/服务)时,请务必使用“/crypto all”并注意 KeyVersionNumber(因为“ktpass”会更新/增加 AD 中的密钥版本)。但是,客户端必须能够为您的应用获取服务票证(即 Windows 客户端必须是域的一部分)。另请注意,当客户端无法获得 Kerberos 服务票证时,IE 可能会退回到呈现 NTLM 令牌。 AD 和浏览器配置/行为比服务器端更具挑战性。

【讨论】:

  • 我通过引用此 URL incepttechnologies.blogspot.in/p/weblogic.html 使用 ADFS 完成配置 身份验证成功,但从主体名称获取匿名用户。
  • 您为身份验证提供程序配置了哪个UserDetailsService
  • 导入 org.springframework.security.core.userdetails.UserDetailsS​​ervice;
  • 介意我问如何获得它:“UserPrincipalName 将在 Kerberos 令牌中提供。”?
  • 您可能会发现以下主题很有趣...stackoverflow.com/questions/4508555/…
【解决方案2】:

使用参考链接实现所需

  1. http://kb.kaminskiengineering.com/node/89
  2. NTLM Authentication in a Web Application (java) 其他想要获得更高安全性的人也可以使用 kerberos-spengo,因为 spring security 不再支持我使用的上述方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-24
    • 2011-05-04
    • 2012-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-30
    • 2015-09-15
    相关资源
    最近更新 更多