nginx reverse proxy avec authentification Windows qui utilise l'authentification NTLM
Quelqu'un sait si il est possible de faire du reverse proxy avec authentification Windows qui utilise le protocole NTLM? Je ne peux pas le trouver n'importe quel exemple. Quelles devraient être les valeurs de more_set_headers champ?
location /{
proxy_http_version 1.1;
proxy_pass_request_headers on;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
more_set_input_headers 'Authorization: $http_authorization';
proxy_set_header Accept-Encoding "";
proxy_pass http://host/;
proxy_redirect default;
#This is what worked for me, but you need the headers-more mod
more_set_headers -s 401 'WWW-Authenticate: Basic realm="host.local"';
}
Si je accéder à l'hôte directement l'authentification de réussir si j'ai accès avec le proxy inverse, l'échec de l'authentification à chaque fois.
pour ceux qui sont nouveaux à nginx comme moi la more_set_input_headers et more_set_headers config lignes peut rendre votre nginx crash au premier abord (montrant Abandonnée en HTTP journaux) c'est parce que vous avez besoin pour installer les en-têtes-plus-nginx-module, plus d'infos ici github.com/openresty/headers-more-nginx-module#installation
OriginalL'auteur matheus | 2014-01-22
Vous devez vous connecter pour publier un commentaire.
Pour activer l'authentification NTLM pass-through avec Nginx -
-- Ramon
J'ai un très semblable, question pour cela, si vous avez le temps, et vous pouvez répondre, il n'y a actuellement une prime sur elle.
Vous dire que nous n'avez pas besoin de la version commerciale de nginx pour la prise en charge NTLM?
Cela a également travaillé pour nodejs express-ntlm
Le même n'est pas de travail pour moi. Pourquoi? À l'aide de tomcat dans le backend.
OriginalL'auteur Fizz
Autant que je sache, ce n'est actuellement pas possible avec nginx. J'ai étudié en profondeur me suis juste un peu tout à l'heure. Le problème de base est que l'authentification NTLM exigera le même socket être utilisé sur la demande subséquente, mais le proxy ne pas le faire. Jusqu'à ce que la nginx équipe de développement de l'offre de support pour ce problème, la façon dont j'ai géré ce fut en recourant à s'authentifier dans le reverse proxy lui-même. Je suis actuellement en train de faire cela à l'aide d'apache 2.2, mod_proxy, mod_auth_sspi (pas parfait, mais il fonctionne). Bonne chance! Désolé, nginx, je vous aime, mais nous pourrions vraiment utiliser un peu d'aide pour cette utilisation.
En gros, oui. Le client s'authentifie à apache en cours d'exécution mod_auth_sspi. apache procurations de la demande à un serveur lors de l'injection de l'id de l'utilisateur dans un en-tête de requête. c'est un mode de fonctionnement de siteminder par exemple. juste être sûr d'éviter l'accès direct à votre serveur d'arrière-plan. c'est une façon de le faire. mieux approches sont possibles. rediriger vers auth server, par exemple, et utiliser un oauth2 style jeton mécanisme.
OriginalL'auteur Tony Schwartz
Depuis, j'ai trouver une autre solution pour ce. Ce n'est pas le même que nginx faire le NTLM (ce qui serait sympa si la nginx équipe met en œuvre cette). Mais, pour l'instant, ce que je fais fonctionne pour nous.
J'ai écrit certains de code lua qui utilise un cookie crypté. Le cookie chiffré contient l'id de l'utilisateur, le temps qu'il a authentifié et l'adresse ip à partir de laquelle il a authentifié. Je suis à la fixation de ce genre de choses ici pour référence. Ce n'est pas poli, mais peut-être que vous pouvez utiliser pour développer votre propre système similaire.
Fondamentalement, la façon dont il fonctionne est:
accès.lua:
cordes.lua:
enc.lua:
exemple de conf nginx:
BeardedGeek, je suis juste en train de lire ce post. Si j'ai un peu de temps bientôt, je vais essayer de mettre ensemble, étape par étape, ou même juste le bundle.
au lieu de l'authentification à chaque demande unique, ce que j'ai à faire est de s'authentifier à l'accès à l'application, à partir de ce point sur l'application du cookie de session est utilisé. Qui accélère vraiment la chose entière.
OriginalL'auteur Tony Schwartz
Ok, nous avons écrit code lua pour nginx/openresty, ce qui résout ntlm reverse-proxy problème avec certains résoluble limites et sans besoin de commerciaux nginx version
OriginalL'auteur broomrider