Aller au contenu

ntlm: Module NTLM NGINX

Installation

Vous pouvez installer ce module dans n'importe quelle distribution basée sur RHEL, y compris, mais sans s'y limiter :

  • RedHat Enterprise Linux 7, 8, 9 et 10
  • CentOS 7, 8, 9
  • AlmaLinux 8, 9
  • Rocky Linux 8, 9
  • Amazon Linux 2 et Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-ntlm
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-ntlm

Activez le module en ajoutant ce qui suit en haut de /etc/nginx/nginx.conf :

load_module modules/ngx_http_upstream_ntlm_module.so;

Ce document décrit nginx-module-ntlm v1.19.4 publié le 04 mai 2024.


Le module NTLM permet de proxy les requêtes avec l'authentification NTLM. La connexion en amont est liée à la connexion client une fois que le client envoie une requête avec la valeur du champ d'en-tête "Authorization" commençant par "Negotiate" ou "NTLM". Les requêtes suivantes du client seront proxyées à travers la même connexion en amont, conservant le contexte d'authentification.

Comment utiliser

Syntaxe : ntlm [connections];
Par défaut : ntlm 100;
Contexte : upstream

upstream http_backend {
    server 127.0.0.1:8080;

    ntlm;
}

server {
    ...

    location /http/ {
        proxy_pass http://http_backend;
        # les 2 paramètres suivants sont nécessaires pour que le keepalive fonctionne correctement
        proxy_http_version 1.1;
        proxy_set_header Connection "";
    }
}

Le paramètre connections définit le nombre maximum de connexions aux serveurs en amont qui sont conservées dans le cache.

Syntaxe : ntlm_timeout timeout;
Par défaut : ntlm_timeout 60s;
Contexte : upstream

Définit le délai d'attente pendant lequel une connexion inactive à un serveur en amont restera ouverte.

Tests

Pour exécuter les tests, vous devez avoir nodejs et perl installés sur votre système.

## installer le framework de test
cpan Test::Nginx

## définir le chemin vers votre emplacement nginx
export PATH=/opt/local/nginx/sbin:$PATH

prove -r t

GitHub

Vous pouvez trouver des conseils de configuration supplémentaires et de la documentation pour ce module dans le dépôt GitHub pour nginx-module-ntlm.