栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Linux上使用Java对Active Directory进行身份验证

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Linux上使用Java对Active Directory进行身份验证

可以使用3种身份验证协议在Linux或任何其他平台上的Java和Active Directory之间执行身份验证(并且这些协议不仅限于HTTP服务):

Kerberos-Kerberos提供单点登录(SSO)和委派,但Web服务器也需要SPNEGO支持才能通过IE接受SSO。

NTLM-NTLM通过IE(和其他浏览器,如果配置正确)支持SSO。

LDAP-LDAP绑定可用于简单地验证帐户名和密码。

还有一种叫做“ ADFS”的东西,它使用SAML为网站提供SSO,并调用Windows SSP,因此实际上,这实际上是使用上述其他协议之一的一种round回方式。

每种协议都有其优势,但是根据经验,为了获得最大的兼容性,通常应该尝试“像Windows一样”。那么Windows做什么呢?

首先,两台Windows计算机之间的身份验证支持Kerberos,因为服务器不需要与DC通信,并且客户端可以缓存Kerberos票证,从而减少了DC的负载(并且Kerberos支持委派)。

但是,如果认证双方都不具有域帐户,或者如果客户端无法与DC通信,则需要NTLM。因此,Kerberos和NTLM不会互斥,并且Kerberos不会淘汰NTLM。实际上,NTLM在某些方面比Kerberos更好。请注意,同时提及Kerberos和NTLM时,我还必须提及SPENGO和集成Windows身份验证(IWA)。IWA是一个简单术语,基本上意味着Kerberos或NTLM或SPNEGO协商Kerberos或NTLM。

使用LDAP绑定作为验证凭据的方法效率不高,并且需要SSL。但是直到最近,实现Kerberos和NTLM还是很困难,因此一直使用LDAP作为临时身份验证服务。但是在这一点上通常应该避免。LDAP是信息目录,而不是身份验证服务。将其用于预期目的。

那么,如何在Java中尤其是在Web应用程序的上下文中实现Kerberos或NTLM?

像Quest Software和Centrify这样的许多大公司都有专门提到Java的解决方案。由于它们是公司范围内的“身份管理解决方案”,因此我无法对此发表评论,因此,从查看其网站上的营销活动来看,很难确切说明正在使用什么协议以及如何使用这些协议。您需要联系他们以获取详细信息。

在Java中实现Kerberos并不困难,因为标准Java库通过org.ietf.gssapi类支持Kerberos。但是,直到最近出现了一个主要障碍-IE不会发送原始Kerberos令牌,而是发送SPNEGO令牌。但是,使用Java 6,已经实现了SPNEGO。从理论上讲,您应该能够编写一些可以验证IE客户端的GSSAPI代码。但是我还没有尝试过。多年来,Sun的Kerberos实施都是一个错误的喜剧,因此,基于Sun在该领域的往绩,在您掌握SPENGO的实现之前,我不会做出任何承诺。

对于NTLM,有一个名为JCIFS的免费OSS项目,该项目具有NTLM HTTP身份验证Servlet过滤器。但是,它使用中间人方法通过与NTLMv2不兼容的SMB服务器(逐渐成为必需的域安全策略)来验证凭据。因此,JCIFS的HTTP筛选器部分计划被删除。请注意,有许多衍生产品使用JCIFS来实现相同的技术。因此,如果您看到其他声称支持NTLM SSO的项目,请检查详细信息。

使用Active Directory验证NTLM凭据的唯一正确方法是通过带有安全通道的NETLOGON使用NetrLogonSamLogon DCERPC调用。Java中是否存在这样的东西?是。这里是:

http://www.ioplex.com/jespa.html

Jespa是100%Java NTLM实现,支持NTLMv2,NTLMv1,完全完整性和机密性选项以及上述NETLOGON凭据验证。它包括HTTP SSO筛选器,JAAS LoginModule,HTTP客户端,SASL客户端和服务器(具有JNDI绑定),用于创建自定义NTLM服务的通用“安全提供程序”等。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/454490.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号