内部サイトの 1 つで NTLM 認証を実装しようとしていますが、すべてが機能しています。私が持っていないパズルの 1 つのピースは、NTLM から情報を取得し、Active Directory で認証する方法です。
これを実装するために使用したNTLMとパスワードに使用される暗号化についての適切な説明がありますが、ユーザーのパスワードが有効かどうかを確認する方法がわかりません。
私は ColdFusion を使用していますが、この問題はどの言語 (Java、Python、PHP など) でも解決できます。
編集:
Redhat Enterprise Linux で ColdFusion を使用しています。残念ながら、IIS を使用してこれを管理することはできません。代わりに、サード パーティ製のツールを作成または使用する必要があります。
更新-私はこれを機能させました。これが私がしたことです
samba.orgのJCIFS ライブラリを使用しました。
以下の方法は NTLMv1 でのみ機能し、NTLMv2 では機能しないことに注意してください。NTLMv1 を使用できない場合は、NTLMv2 をサポートしているがオープン ソースではないJespaを試すか、 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 認証が必要になります。