From: kmra...@rockwellcollins.com [mailto:kmra...@rockwellcollins.com] 
> > Did you read my email above? Let me explain again. Server advertises
> > supported authentication schemes, for example Microsoft IIS:
> > [[[
> > C: GET / HTTP/1.1
> > S: HTTP/1.1 401 Authorization Required
> > S: WWW-Authenticate: NTLM
> > S: WWW-Authenticate: Negotiate
> > S: WWW-Authenticate: Basic
> > ]]]
> > 
> > Then client decide which authentication scheme to use. Serf tries to
> > Negotiate, then Basic. But with proposed patch serf will try
> > Negotiate, then Basic and then NTLM again, which is wrong because NTLM
> > authentication already handled inside Negotiate protocol. This is one
> > of the reasons why I vetoed this patch.
> > 
> > My point is that serf should use NTLM *only* if server doesn't
> > advertise support Negotiate.
> 
> The problem is that most clients will choose Kerberos instead of 
> NTLM during the Negotiate phase (which they should because it is 
> considered more secure), but there may be things that cause 
> Kerberos to fail, such as mis-configure SPNs in active directory 
> or a mis-configured Java VM options on the client.  In most of 
> these cases NTLM "just works", but the serf client never tries it 
> like neon did.  This is why most installations will be set to 
> offer NTLM only and not Negotiate. 
> 
> As stated, the correct action is to have Serf use NTLM if that 
> is the only thing the server offers.  Not just fail like 
> it does today. 

+1

[Quoting Ivan]
> > I'm going to try to plug NTLM properly in the current serf auth
> > architecture on the next week.

+10

I have a slightly cleaned up version of the original patch on
http://b.qqn.nl/f/serf-ntlm.patch
for if you would like to use that patch as a starting point.
(I plugged some memory and handle leaks in the old ra_serf code that I
copied and wrapped errors to apr errors instead of the generic APR_EGENERAL)

        Bert
> 
> Kevin R.
>

Reply via email to