nginx反向代理与使用NTLM的Windows身份验证

nginx反向代理与使用NTLM的Windows身份验证

问题描述:

任何人都知道是否可以对使用NTLM的Windows身份验证进行反向代理?我找不到任何例子. more_set_headers字段的值应该是什么?

Anyone knows if is possible to do reverse proxy with Windows authentication that uses NTLM? I cant find any example on this. What should be the values of more_set_headers field?

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"';
}

如果我直接访问主机,则身份验证成功;如果我使用反向代理访问,则每次身份验证都会失败.

If I access the host directly the authentication succeed if I access with the reverse proxy the authentication fail every time.

要通过Nginx启用NTLM传递-

To enable NTLM pass-through with Nginx -

upstream http_backend {
    server 2.3.4.5:80;
    keepalive 16;
}
server {
    ...
    location / {
       proxy_pass http://http_backend/;
       proxy_http_version 1.1;
       proxy_set_header Connection "";
    ...
    }
 }

-拉蒙