【发布时间】:2008-08-22 11:55:45
【问题描述】:
我正在尝试在我们的一个内部站点上实施 NTLM 身份验证,并且一切正常。我不知道的一个难题是如何从 NTLM 获取信息并使用 Active Directory 进行身份验证。
有一个good description of NTLM和encryption used for the passwords,我用来实现这个,但我不确定如何验证用户的密码是否有效。
我正在使用 ColdFusion,但此问题的解决方案可以使用任何语言(Java、Python、PHP 等)。
编辑:
我在 Redhat Enterprise Linux 上使用 ColdFusion。不幸的是,我们不能使用 IIS 来管理它,而是必须为此编写或使用 3rd 方工具。
更新 - 我得到了这个工作,这就是我所做的
我选择了JCIFS library from samba.org.
请注意,以下方法仅适用于 NTLMv1,不适用于 NTLMv2。如果无法使用 NTLMv1 可以试试Jespa,它支持 NTLMv2 但不是开源的,也可以使用Kerberos/SPNEGO.
这是我的 web.xml:
<web-app>
<display-name>Ntlm</display-name>
<filter>
<filter-name>NtlmHttpFilter</filter-name>
<filter-class>jcifs.http.NtlmHttpFilter</filter-class>
<init-param>
<param-name>jcifs.http.domainController</param-name>
<param-value>dc01.corp.example.com</param-value>
</init-param>
<init-param>
<param-name>jcifs.smb.client.domain</param-name>
<param-value>CORP.EXAMPLE.COM</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>NtlmHttpFilter</filter-name>
<url-pattern>/admin/*</url-pattern>
</filter-mapping>
</web-app>
现在所有匹配 /admin/* 的 URL 都需要 NTLM 身份验证。
【问题讨论】:
标签: http authentication coldfusion active-directory ntlm