Comment puis-je utiliser l'authentification NTLM avec Active Directory

Je suis en train de mettre en œuvre l'authentification NTLM sur un de nos sites internes et tout fonctionne. La seule pièce du puzzle, je n'ai pas est comment faire pour prendre les informations de NTLM et l'authentification avec Active Directory.

Il y a un bonne description de l'authentification NTLM et la le chiffrement utilisé pour les mots de passe, que j'ai utilisé pour implémenter cela, mais je ne suis pas sûr de la façon de vérifier si le mot de passe utilisateur est valide.

Je suis à l'aide de ColdFusion, mais une solution à ce problème peut être dans n'importe quel langage (Java, Python, PHP, etc).

Edit:

Je suis à l'aide de ColdFusion sur Redhat Enterprise Linux. Malheureusement nous ne pouvons pas utiliser IIS pour gérer cela et au lieu d'avoir à écrire ou d'utiliser un outil 3ème partie pour cela.


Mise à jour - j'ai eu ce travail et voici ce que j'ai fait

Je suis allé avec le JCIFS de la bibliothèque de samba.org.

Noter que la méthode ci-dessous ne fonctionne qu'avec NTLMv1 et NE PAS travail avec NTLMv2. Si vous ne parvenez pas à utiliser NTLMv1 vous pouvez essayer Jespa, qui prend en charge l'authentification NTLMv2, mais n'est 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 URLs correspondantes /admin/* va exiger l'authentification NTLM.