J'essaie d'implémenter l'authentification NTLM sur l'un de nos sites internes et tout fonctionne. La seule pièce du puzzle que je n'ai pas est comment prendre l'information de NTLM et s'authentifier avec Active Directory.Comment utiliser l'authentification NTLM avec Active Directory
Il existe un good description of NTLM et le encryption used for the passwords, que j'ai utilisé pour implémenter cela, mais je ne suis pas sûr de savoir comment vérifier si le mot de passe de l'utilisateur est valide. J'utilise ColdFusion mais une solution à ce problème peut être dans n'importe quelle langue (Java, Python, PHP, etc.).
Edit:
J'utilise ColdFusion sur Redhat Enterprise Linux. Malheureusement, nous ne pouvons pas utiliser IIS pour gérer cela et au lieu d'écrire ou d'utiliser un outil tiers pour cela.
Mise à jour-je suis arrivé ce travail et voici ce que je faisais
Je suis allé avec le JCIFS library from samba.org.
Notez que la méthode ci-dessous ne fonctionne qu'avec NTLMv1 et NE FONCTIONNE PAS avec NTLMv2. Si vous ne parvenez pas à utiliser NTLMv1 vous pouvez essayer Jespa, qui prend en charge NTLMv2 mais pas open source, ou vous pouvez utiliser Kerberos/SPNEGO.
Voici mon 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>
Maintenant toutes les URL /admin/*
nécessitera l'authentification NTLM.