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.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
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