-
Notifications
You must be signed in to change notification settings - Fork 889
Description
What should we add or change to make your life better?
Support proxy a server which are using NTLM Authentication.
Why is this important to you?
Azure DevOps Server, Windows Admin Center and other many Microsoft products are using NTLM/Kerberos Authentication, which cannot be reverse proxied by most servers directly.
NTLM Authentication appears to violate HTTP’s convention of “stateless” by using HTTP requests to authenticate underlying connections. So, once a connection is authenticated, all requests using that connection have to be aware that the underlying connection is authenticated and set headers accordingly: authentication takes multiple round-trips as well.
But it doesn't mean that a reverse proxy server is not able to support NTLM Authentication.
In nginx’s docs:
Allows proxying requests with NTLM Authentication. The upstream connection is bound to the client connection once the client sends a request with the “Authorization” header field value starting with “ Negotiate ” or “ NTLM ”. Further client requests will be proxied through the same upstream connection, keeping the authentication context.
In order for NTLM authentication to work, it is necessary to enable keepalive connections to upstream servers. The proxy_http_version directive should be set to “ 1.1 ” and the “Connection” header field should be cleared.
I hope that YARP can provide built-in NTLM support.