Skip to content

Support NTLM Authentication #166

@hez2010

Description

@hez2010

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type: IdeaThis issue is a high-level idea for discussion.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions