在Java应用程序中使用NTLM身份验证
我想在我的Java应用程序中使用Windows NTLM认证来透明地认证Intranet用户。如果使用浏览器(单点登录),用户将不会注意到任何身份验证。
我发现了一些具有NTLM支持的库,但是不知道要使用哪个库:
- http://spnego.sourceforge.net/
- http://sourceforge.net/projects/ntlmv2auth/
- http://jcifs.samba.org/
- http://www.ioplex.com/jespa.html
- http://www.luigidragone.com/software/ntlm-authentication-in-java/
有什么建议从哪里开始?
回答:
在以上列表中,仅ntlmv2-auth和Jespa支持NTLMv2。Jespa是可行的,但具有商业意义。ntlmv2-auth我还没有尝试过,但是它基于Liferay的代码,我以前见过它可以工作。
“ ntlm-authentication-in-
java”仅是NTLMv1,它是旧的,不安全的,并且随着人们升级到更新的Windows版本,在越来越少的环境中工作。JCIFS曾经有一个NTLMv1
HTTP身份验证筛选器,但是在以后的版本中将其删除,因为它的实现方式相当于对不安全协议的中间人攻击。(’ntlm-authentication-in-
java’似乎也是如此。)
“ spnego”项目是Kerberos而不是NTLM。如果您要像IIS一样复制完整的IWA,则需要同时支持NTLMv2和Kerberos(“
NTLM”身份验证,“协商”身份验证,NTLMSSP-in-SPNego身份验证和NTLM-Masquerading-as-Negotiate身份验证)。
以上是 在Java应用程序中使用NTLM身份验证 的全部内容, 来源链接: utcz.com/qa/428447.html