Hi David!

Thank you for your questions.

FIRST AN APOLOGY TO THE READERS:
The proposed patch file misses the most important, a new java class 
NTLMAuthenticator.java: I will make available in a corrected patch FRIDAY
(I am not back to my office before).

For my goals:
> > * centralize the parameterization of user authentication at the  
> > container level;
The WCA (Web Container Authentication) main advantage is that all applications 
may have a consistent, coherent security enforcement.
This comes from a central, common configuration in server.xml (Tomcat 
Container) removing many chores from the application itself.

Authorizations based on this authentication is very well expressed in the 
web.xml file of each application.

So I preferred to modify slightly Tomcat rather than modify each different 
applications (each propose a different security schemas when they are not using 
container based authentication).

> Do you mean that you want intranet users to have their local MAD login  
> propagated automatically to the tomcat server with  no explicit tomcat  
> login required?
YES !

>  If so.... the "official" way to support this is via  
> the JASPI spec (jsr 196) and (IIUC) a SPNEGO server authentication  
> module such as that at http://spnego.ocean.net.au/ (jboss might have  
> another one???)
I spent a few weeks trying the different alternatives. All complex and I did 
not achieve a real success.
Even JCIFS NTLM filter was not working correctly in our network.

So the proposed patch is lot simpler (nearly no configuration) and it works 
(for us).

Have a nice week,

Christophe

----- Original Message -----
From: David Jencks [mailto:[EMAIL PROTECTED]
To: Tomcat Developers List [mailto:[EMAIL PROTECTED]
Subject: Re: NTLMAuthenticator for Apache Tomcat 6.0.18 (Intranet within a 
Microsoft domain)


> I'm a little confused about your goals....
> 
> On Nov 10, 2008, at 11:41 AM, Christophe Dupriez wrote:
> 
> > Hi Tomcat Developpers!
> >
> > I wanted to:
> 
> What do you mean by this and how is this expressed?
> 
> > * have a simple NTLM authentication for intranet users;
> > * be able to run Tomcat in a Microsoft Active Directory network  
> > where the server is secured (absolutely no login allowed to regular  
> > users)
> 
> Do you mean that you want intranet users to have their local MAD login  
> propagated automatically to the tomcat server with  no explicit tomcat  
> login required?  If so.... the "official" way to support this is via  
> the JASPI spec (jsr 196) and (IIUC) a SPNEGO server authentication  
> module such as that at http://spnego.ocean.net.au/ (jboss might have  
> another one???)
> 
> At this point tomcat does not have  a jaspi implementation although I  
> expect it to be a part of javaee 6, and I'm mostly interested in  
> trying to understand what you are trying to do rather than suggesting  
> an implementation strategy.
> 
> thanks
> david jencks
> 
> >
> > There is a Microsoft “specification” (bug?) by which all LDAP binds  
> > are evaluated on the Domain Server (like if the user was attempting  
> > to login on the Domain Server).
> > It would be better to have binds evaluated as if they were  
> > originating from the LDAP client machine (the Tomcat Server).
> >
> > To circumvent this, I have been obliged to remove the binding (the  
> > password checking) but to ensure that it is NTLM (and nothing else)  
> > which provides the username.
> > The users are therefore automatically logged with the username used  
> > to log on their PC.
> >
> > The attached patch is for current Apache Tomcat sources (6.0.18).
> >
> > It adds:
> > An NTLM Authenticator: nothing to configure except in the web.xml of  
> > each application:
> >    <login-config>
> >        <auth-method>NTLM</auth-method>
> >        <realm-name>ThisIsApassword</realm-name>
> >    </login-config>
> > The realm-name is the “password” which ensures that authentication  
> > is done by NTLM and no other method.
> > A very long password is strongly recommended.
> > A modified JNDI Realm with new parameters:
> > preAuthenticatedPassword=”ThisIsApassword”
> > This to suppress password checking if preAuthenticatedPassword is  
> > provided.
> > userIdentification=”userPrincipalName” provides a standardized  
> > username, whatever the retrieved user name (case of complex  
> > userSearch patterns)
> > userNamePrefix and userNameSuffix
> > This to suppress a prefix and/or a suffix from username before  
> > returning it to the application: good to suppress domain  
> > identification, etc.
> > When you user complex userSearch pattern, this can be very useful.  
> > Example:
> > userSearch="(|(sAMAccountName={0})([EMAIL PROTECTED]) 
> > (userPrincipalName={0}))"
> > userIdentification="userPrincipalName" userNamePrefix=”domain\”
> [EMAIL PROTECTED] 
> > ”
> >
> > Hopes this can be useful to the community!
> >
> > Please do not hesitate to ask me if something can be done to make  
> > this contribution perennial.
> >
> > Wishing you a very nice day,
> >
> > Christophe Dupriez
> > Centre Antipoisons - Antigifcentrum
> > C/o Hôpital Central de la Base Reine Astrid
> >    Rue Bruyn - 1120 Bruxelles - Belgique
> > tel 32-(0)2.264.96.36 fax 32-(0)2.264.96.46
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to