Skip to content

Commit fd4905a

Browse files
slominskirsimo5
authored andcommitted
Doc Negotiate and caveats
Fixes #294 Signed-off-by: slominskir <[email protected]>
1 parent 796000a commit fd4905a

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

README

+32
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,38 @@ This module has been built as a replacement for the aging mod_auth_kerb.
88
Its aim is to use only GSSAPI calls and be as much as possible agnostic
99
of 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+
1143
Dependencies
1244
------------
1345

0 commit comments

Comments
 (0)