@@ -8,6 +8,38 @@ This module has been built as a replacement for the aging mod_auth_kerb.
88Its aim is to use only GSSAPI calls and be as much as possible agnostic
99of the actual mechanism used.
1010
11+
12+ Negotiate, Client Specific Behavior, and External Clients
13+ ---------------------------------------------------------
14+ The mod_auth_gssapi httpd plugin relies on Microsoft's IANA registered
15+ [www-authenticate: Negotiate](https://www.iana.org/assignments/http-authschemes/http-authschemes.xhtml)
16+ auth scheme to provide Kerberos and NTLM authentication to web browsers.
17+ The negotiation process is client driven and the default process is to
18+ attempt Kerberos first, then fall back onto NTLM.
19+ If NTLM is not desired it must be disabled client-side. Many browsers
20+ such as recent versions of Firefox default to disabling NTLM and require
21+ opt-in (regardless of OS). However. many browsers behave differently on
22+ Windows, defer to the Windows Authentication subsystem, and therefore still
23+ use an NTLM fallback per the original Microsoft specification in
24+ [RFC4559](https://www.ietf.org/rfc/rfc4559.txt) by default. Browsers which
25+ default to NTLM fallback on Windows include chromium based browsers such as
26+ Chrome and Edge as well as older browsers such as IE.
27+
28+ If NTLM is enabled client side and Kerberos auth fails then the browser will
29+ prompt the user with a username and password dialog that looks similar to an
30+ HTTP Basic auth form, regardless of whether the server is configured to handle
31+ NTLM. This often confuses and frustrates users and admins. It may be
32+ possible to disable NTLM fallback if an admin has control of every user OS and
33+ user browser, but in that scenario (corporate network/intranet) the admin has
34+ presumably correctly configured Kerberos so fallback is unlikely to occur. The
35+ larger issue is if you have an external facing auth server and therefore no
36+ control over all clients some of whom may be on Windows using a browser that
37+ delegates to the Windows Authentication subsystem. Neither Kerberos nor NTLM
38+ are designed to work in a public Internet scenario and therefore using IP-based
39+ request filtering on the auth server to conditionally prompt only internal
40+ managed Kerberos clients (corporate intranet) users with
41+ `www-authenticate: Negotiate` is a reasonable solution.
42+
1143Dependencies
1244------------
1345
0 commit comments