Replies: 3 comments 7 replies
-
Managed the find the page that hinted at this being possible using mod_auth_kerb: |
Beta Was this translation helpful? Give feedback.
-
Really looking for some pointers, I have it working perfectly for Negotiate Kerberos but basic login only works perfectly in Mozzilla Firefox, both Google Chrome and Microsoft Edge don't honour the redirect to the dummy /login-basic URL that attempts to switch auth to only offering Basic via the static user file. RewriteEngine also doesn't work with ProxyPass so I split the virtual servers instead:
Debugging on Debian 11.3 (bullseye):
When the initial GET arrives it falls through to GSSAPI, which works perfectly with Negotiate Kerberos on a domain joined workstation via either Chrome, Edge or Firefox as a standard session in the user's logged in profile:
When testing via private/incognito windows, to use basic authentication against the static user file, it only works in Firefox:
Neither Edge nor Chrome honour the 401 redirect to the '/login-basic' dummy URL which initiates Basic authentication. All 3 browsers ask for credentials which are entered in the section marked with XXX. They don't send the next connection to '/login-basic' so they don't receive the basic auth offer. Chrome - incognito mode:
Microsoft Edge - InPrivate window:
|
Beta Was this translation helpful? Give feedback.
-
In summary, the above essentially works as intended in that SSO negotiates Kerberos successfully on Chrome, Edge and Firefox. Basic auth against a static 3rd party user file also works perfectly when I point browsers directly at the https://site1.company.com/login-basic URL. The only thing that isn't working is getting Chrome or Edge to honour the redirect to /login-basic when GSSAPI fails to negotiate Kerberos. I presume this to be a security feature in Chrome and Edge, looking for anyone with experience on how to change the ErrorDocument 401 line to get those browsers to redirect to the correct login URL. |
Beta Was this translation helpful? Give feedback.
-
I presume I'm essentially looking or a method for GSSAPI to include Basic in the list of offers but then passing control over to AuthType Basic? I believe mod_auth_kerb does this via the
KrbAuthoritative Off
feature?This is what I've pieced together so far, it currently works perfectly via Negotiate Kerberos providing staff a SSO experience in Edge, Chrome and Firefox (requires
about:config
network.negotiate-auth.trusted-uris
to include the URL without a trailing /). Samplenetwork.negotiate-auth.trusted-uris
entry:https://site1.company.com,https://site2.company.com
Mobile devices do not show a password popup, but a Chrome incognito window does and works if I enter an AD account as user@realm. Edge's InPrivate window lets me either login with my AD credentials or a certificate (YubiCo PIV mode). Only Firefox doesn't work at all when launched as a private window. I presume these are using my workstation's ability to interact with KDCs.
PS: Is there a way to prevent users typing in credentials via GSSAPI, we wish to go completely passwordless...
Apache config file:
PS: If I remove the If/Else logic and move the
AuthType Basic
section below theAuthType GSSAPI
section it works in reverse. In that I can then successfully use Basic auth against the static user file but GSSAPI isn't available anywhere else.Have also fiddled with the
GssapiBasicAuth
(then I have GSSAPI and AD BasicAuth working but no ability to use Kerberos for staff and a static file for external 3rd parties), can't perceive a difference withGssapiNegotiateOnce
.The
BrowserMatch
line initially appeared to kill any logins of any kind (Kerberos included), except for Chrome where I had relatively recently authenticated viaBasicAuth
. It's almost as if enabling theBrowserMatch
options gets Apache to use theAuthType Basic
handler without prompting the user to authenticate.Beta Was this translation helpful? Give feedback.
All reactions