Did you know that the basic authentication in IIS authenticate HTTP connections, not HTTP requests?
It is well known that Windows Integrated Authentication (NTLM and SPNEGO) authenticates HTTP connections, not each HTTP request, but it has come to my attention that this has been also applicable to HTTP basic authentication on IIS. This bug breaks most HTTP reverse proxies / intermediaries who do some kind of sharing / aggregation of backend HTTP connections.
When this bug applies to an Orenosp environment, you could see one or many of the following problems:Orenosp version 0.8.0 will include a fix to work around this problem still maintaining aggregated backend connections.
Orenosp maintains a central pool of cached backend connections to improve performance. All backend connections are stored in this pool except for connections on which Windows Integrated Authentication (NTLM/SPNEGO) activity was observed. Those NTLM/SPNEGO connections are treated differently in that they are attached to the client connection, not to the central pool.
One way to combat this bug would be for Orenosp to treat all IIS connections as NTLM/SPNEGO connections and do not cache them globally. However, doing so would kill great performance win in Orenosp. Since basic authentication is simple and clearly defined (unlike NTLM/SPNEGO authentication), Orenosp can group basic-auth'ed connections into each authenticated users and restrict reuse scope within that. In another words, Orenosp will use (server, username) pair, rather than just (server), as the cache key. This will be implemented in 0.8.0 and enabled for all basic-auth'ed backend connections. This will be effective for all kinds of backend servers, not just for IIS.
---quote--- When your browser establishes a connection with a Web site by using Basic or Windows Integrated authentication, it does not fall back to Anonymous during the rest of that session with the server. If you try to connect to a Web page that is marked for Anonymous only after authenticating, you are denied. (This may or may not hold true for Netscape). ---