@@ -8,6 +8,38 @@ This module has been built as a replacement for the aging mod_auth_kerb.
8
8
Its aim is to use only GSSAPI calls and be as much as possible agnostic
9
9
of the actual mechanism used.
10
10
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
+
11
43
Dependencies
12
44
------------
13
45
0 commit comments