Authentification NTLM
NTLM est le plus complexe des protocoles d’authentification pris en charge par un serveur Web de base.
NTLM est le plus complexe des protocoles d’authentification pris en charge par un serveur Web de base tel que HttpClient. Il s’agit d’un protocole propriétaire conçu par Microsoft sans spécification accessible au public. Les premières versions de NTLM étaient moins sécurisées que l’authentification Digest en raison de défauts de conception. Cependant, ceux-ci ont été corrigés dans un service pack pour Windows NT 4 et le protocole est maintenant considéré comme plus sûr que l’authentification Digest.
L’authentification NTLM nécessite qu’une instance de NTCredentials soit disponible pour le nom de domaine du serveur ou les informations d’identification par défaut. Comme NTLM n’utilise pas la notion de domaines, HttpClient utilise le nom de domaine du serveur comme nom du domaine. De plus, le nom d’utilisateur fourni aux NTCredentials ne doit pas être précédé du domaine :
- Correct : adrian
- Incorrect : DOMAIN\adrian
Il existe des différences significatives dans le fonctionnement de NTLM par rapport à l’authentification de base et digest. Ces différences sont généralement gérées par HttpClient. Toutefois, une compréhension de ces différences peut vous aider à éviter les problèmes lors de l’utilisation de l’authentification NTLM.
- L’authentification NTLM fonctionne presque exactement de la même manière que toute autre forme d’authentification en termes d’API HttpClient. La seule différence est que vous devez fournir NTCredentials au lieu de UsernamePasswordCredentials (NTCredentials étend en fait UsernamePasswordCredentials afin que vous puissiez utiliser NTCredentials directement dans votre application, si nécessaire).
- Le domaine de l’authentification NTLM est le nom de domaine de l’ordinateur connecté. Cela peut être gênant car les serveurs ont souvent plusieurs noms de domaine. Seul le nom de domaine auquel HttpClient se connecte, tel que spécifié par HostConfiguration, est utilisé pour rechercher les informations d’identification. Lors du test initial de l’authentification NTLM, il est préférable de transmettre le domaine en tant que null, qui est utilisé par défaut.
- NTLM authentifie une connexion et non une demande. Vous devez donc vous authentifier chaque fois qu’une nouvelle connexion est établie et il est essentiel de garder la connexion ouverte pendant l’authentification. Pour cette raison, NTLM ne peut pas être utilisé pour s’authentifier à la fois auprès d’un serveur proxy et du serveur Web, ni avec des connexions HTTP 1.0 ou des serveurs Web qui ne prennent pas en charge les keep-alives HTTP.
Remarque :
Définissez ces propriétés à partir de la table Propriétés système
[sys_properties].| Propriété | Description | Exemples |
|---|---|---|
| glide.http.proxy_ntusername | Spécifiez le nom d’utilisateur utilisé pour authentifier le serveur proxy avec l’authentification NTLM.
|
nom d'utilisateur |
| glide.http.proxy_ntpassword | Spécifiez le mot de passe utilisé pour authentifier le serveur proxy avec l’authentification NTLM.
|
mot de passe |
| glide.http.proxy_nthost | Spécifiez le nom d’hôte utilisé pour authentifier le serveur proxy avec l’authentification NTLM.
|
nthost |
| glide.http.proxy_ntdomain | Spécifiez le domaine utilisé pour authentifier le serveur proxy avec l’authentification NTLM.
|
DOMAINE |