On Fri, 21 Dec 2007, Russ Allbery wrote:

I'm afraid that you're probably running into a fundamental limitation in
the HTTP protocol here.  I don't think it's possible to do what you want.

I'm not sure, let me add a little more info

The problem is that HTTP doesn't have a full-fledged SASL implementation
with multiple retries of mech negotiation.  It only does essentially one
round of negotiation.  When the browser connects and asks for a page,
mod_auth_kerb sends a Negotiate-Auth challenge asking whether it can do
SPNEGO.  If the browser can, it starts an SPNEGO exchange; if it can't, it
does Basic authentication.

This is unfortunate, but unlikely to change :(

The problem with your situation is that the browser *can* do SPNEGO and
*does* have Kerberos tickets, so at the initial challenge, it selects the
SPNEGO route since to the best of its knowledge that's correct.  It then
does an SPNEGO->GSSAPI->Kerberos v5 authentication, and then the server
rejects it at the point when that negotiation is complete due to a bad
realm.

Not quite... my browser is capable of SPNEGO, but did not have a ticket
Therefore, the browser<->server auth should've been in basic mode.

mod-auth-kerb, however failed the request since the realm wasn't on its
list of approved realms...  That is what I'd like to have changed, such
that if the realm isn't listed, the module (if configured to do so),
delegates the auth request instead of issuing the error and failing
auth.

Most other users of the site will not even have SPNEGO enabled (assuming
they're on Firefox, IE I think does it by default).

It's yet another problem caused by the fact that HTTP was designed as a
stateless protocol and therefore implements all stateful things such as
proper authentication very poorly.

:(

--
Rick Nelson
Linux - Das System fuer schlaue Maedchen ;)
                -- banshee



--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to