Forums

angle-left Back

Non-domain NTLM Authentication

RZ
Robert Zahm, modified 10 Years ago.

Non-domain NTLM Authentication

Junior Member Posts: 46 Join Date: 10/8/07 Recent Posts
I was able to get NTLM working so that an instance of IE from a domain account passes the username through without prompting the user. However, I ran into issues when trying this from non-domain instances of IE and other browsers such as FireFox. These browsers pop up username and password dialogs as they should. However, it doesn't matter what I enter in as the password, it always authenticates the username that I enter. This is obviously a very large security hole, am I doing something wrong?

Thanks,

Rob
RZ
Robert Zahm, modified 10 Years ago.

RE: Non-domain NTLM Authentication

Junior Member Posts: 46 Join Date: 10/8/07 Recent Posts
Anyone have any ideas on this? Am I doing something wrong, or is this a hole in the NTLM security component?
RZ
Robert Zahm, modified 10 Years ago.

RE: Non-domain NTLM Authentication

Junior Member Posts: 46 Join Date: 10/8/07 Recent Posts
Can anyone tell me if this sounds like an issue with my configuration, or if this is a bug?

Thanks,

Rob
Jorge Ferrer, modified 10 Years ago.

RE: Non-domain NTLM Authentication

LIFERAY STAFF Liferay Legend Posts: 2772 Join Date: 8/31/06 Recent Posts
Hi Robert,

I've never used this functionality but as nobody else in answering I'd like to, at least, try to guide you on how to find the root problem.

The NTLM functionality is implemented through two clases. The first one is NtlmFilter which can be configured through properties in portal(-ext).properties:

    ntlm.auth.enabled=false
    ntlm.auth.domain.controller=127.0.0.1
    ntlm.auth.domain=EXAMPLE


This filter reads the HTTP Authentication headers and act accordingly. If it decides the user should be authenticated it leaves an attribute in the request.

The second class is NtlmAutoLogin. This class is responsible for the login and tries to authenticate the user If it finds in the request the attribute left by the filter.

I hope this info. helps you get started debugging the problem.
Bruno Farache, modified 10 Years ago.

RE: Non-domain NTLM Authentication

LIFERAY STAFF Liferay Master Posts: 603 Join Date: 5/14/07 Recent Posts
Hi Robert, what you mean and you say "non-domain instances of IE"? The user is accessing outside the domain?
RZ
Robert Zahm, modified 10 Years ago.

RE: Non-domain NTLM Authentication

Junior Member Posts: 46 Join Date: 10/8/07 Recent Posts
Thanks for the info, we have worked around this issue for the time being, but I am hoping to be able to revisit it, as allowing proper logins will make life much simpler for us.

What I've found is that NTLM works great for IE browsers where the user has logged into the domain. For machines outside the domain (including non-domain machines, users logged in to machines using local accounts and for Firefox), I have found that it prompts me for a username and password, and then simply signs me in with the username without actually validating that the password is correct.

The "non-domain" machine isn't really a big deal, I was just questioning whether or not the password was actually being validated.

Thanks,

Rob
SW
Scott Dale Westbrook, modified 9 Years ago.

RE: Non-domain NTLM Authentication

New Member Posts: 14 Join Date: 2/11/08 Recent Posts
Unfortunately I am experiencing the same issue with using NTLM. Using an IE browser on the domain that has the Liferay portal (5.1.1) as a trusted or intranet site will login automatically once the user selects "Sign In" from the Dock menu without prompting.

However Firefox and Chrome will prompt for a username/password which isn't a problem. However any password is accepted and the user is logged in. If the user has never logged in before, their information is loaded via LDAP.

If the user logs in using the Sign In portlet, the user's credentials are validated correctly with LDAP.
Luca Costa, modified 9 Years ago.

RE: Non-domain NTLM Authentication

Junior Member Posts: 72 Join Date: 3/5/08 Recent Posts
Same problem on liferay 5.2.1 + LDAP + NTLM:
password is not checked.

problem is solved?

Luca
Jonas Yuan, modified 9 Years ago.

RE: Non-domain NTLM Authentication

Liferay Master Posts: 993 Join Date: 4/26/07 Recent Posts
Any update on this issue?
Jonas Yuan, modified 9 Years ago.

RE: Non-domain NTLM Authentication

Liferay Master Posts: 993 Join Date: 4/26/07 Recent Posts
Just testing, it popped up a window for inputs of user name and password in FireFox 3.0.7 and IE 7.0.

The password is not checked ....

It seems that the users are not imported properly ....
Luca Costa, modified 9 Years ago.

RE: Non-domain NTLM Authentication

Junior Member Posts: 72 Join Date: 3/5/08 Recent Posts
I have same problems, if you successfully connect with your AD,
(select AD, reset, test all three LDAP test button,
I can see users, if you cannot see them I thin your AD is different from standard, mine goes immediately well)

just check "import at startup" and restart server.
Now users and groups should be in your server (I know, not the best, but works).

Now the other 2 points will remain:
I cannot automatically get in with IE7/FF when I'm in the domain,
always I have a user /password request, and password is not checked.

Luca
jerin jacob, modified 9 Years ago.

RE: Non-domain NTLM Authentication

New Member Posts: 11 Join Date: 3/23/09 Recent Posts
Any Fix for Non-Domain NTLM authentication ???? or any way to get around this problem ???
Jonas Yuan, modified 9 Years ago.

RE: Non-domain NTLM Authentication

Liferay Master Posts: 993 Join Date: 4/26/07 Recent Posts
Hi Jerin,

This issue was fixed. You can refer to wiki page:

http://www.liferay.com/web/guest/community/wiki/-/wiki/Main/Integration+with+NTLM+plus+ADS

Hope that it helps.

Thanks

Jonas Yuan
RO
Roman Orfinyak, modified 9 Years ago.

RE: Non-domain NTLM Authentication

New Member Posts: 2 Join Date: 4/30/09 Recent Posts
Jonas Yuan:
Hi Jerin,

This issue was fixed. You can refer to wiki page:

http://www.liferay.com/web/guest/community/wiki/-/wiki/Main/Integration+with+NTLM+plus+ADS

Hope that it helps.

Thanks

Jonas Yuan


Jonas, which issue you're referring to as fixed? I still see the bug in Jira LPS-2032 as open.

Also would like to stress that the problem is really severe both for non-domain and for domain NTLM authentication. A user can login to a portal knowing only user names of other users even if he is using IE which is domain. This can be done if one goes to the Tools -> Internet Options -> Security -> Choose a zone in which your site is -> Custom Level -> At the bottom of the page choose the radio button 'Prompt for user name and password'.

This will tell IE to give you a user name/password dialog box each time you enter the site with NTLM authenticaton configured. Knowing the user names of users one can login to the site *SUPPLYING ANY PASSWORD*.

Any feedback from Liferay community would be welcome.

Regards,
Roman.
jerin jacob, modified 9 Years ago.

RE: Non-domain NTLM Authentication

New Member Posts: 11 Join Date: 3/23/09 Recent Posts
HI Roman ,
You are exactly into the problem I am facing ..................

Any work around for this ............... Is there any alternate way so that we fix it ...........

Thanks
cometta cometta cometta, modified 9 Years ago.

RE: Non-domain NTLM Authentication

Regular Member Posts: 109 Join Date: 4/26/09 Recent Posts
i though i the only one facing this. will update you all if i found anything. any update so far on this?
cometta cometta cometta, modified 9 Years ago.

RE: Non-domain NTLM Authentication

Regular Member Posts: 109 Join Date: 4/26/09 Recent Posts
trying to troubleshoot on this..
maybe we can disucss on this.. from information that i have. ntlmfilter using ntlmssp to get user credential . in order to fix this, we need to getPassword() and compare it right? each time i do getPassword(), i will get null . any findings you folks wanna share ?
cometta cometta cometta, modified 9 Years ago.

RE: Non-domain NTLM Authentication

Regular Member Posts: 109 Join Date: 4/26/09 Recent Posts
Hello Gurus,
after dig here and there... i think i came out a fix and i want to get feedback from all of you .

I edited ntlmfilter.java file , search for keyword "ntlm = NtlmSsp.authenticate(request, response, challenge);" then below this line, i add



  try{
            SmbSession.logon(uniAddress, ntlm);

           }
           catch( jcifs.smb.SmbException smbE){
               //only print brief error and skip
              _log.error("smbSession.logon error logon credential");
              return null;
           }



now, if the ntlm pop up appear , you enter wrong password, u will not be allow to log in . and foward to blank page . maybe forward to blank page is not a good idea. any suggestion ? maybe you folks can give me feedback . if this is the fix to the problem. can someone put this in SVN. your feedback is needed, so that i can comment something in issues.liferay.com on the bug reported
RO
Roman Orfinyak, modified 9 Years ago.

RE: Non-domain NTLM Authentication

New Member Posts: 2 Join Date: 4/30/09 Recent Posts
cometta cometta cometta:
Hello Gurus,
after dig here and there... i think i came out a fix and i want to get feedback from all of you .

I edited ntlmfilter.java file , search for keyword "ntlm = NtlmSsp.authenticate(request, response, challenge);" then below this line, i add
....


hi Cometta,

We actually also came to that fix. It is working for us now.
cometta cometta cometta, modified 9 Years ago.

RE: Non-domain NTLM Authentication

Regular Member Posts: 109 Join Date: 4/26/09 Recent Posts


portal-impl/src/com/liferay/portal/servlet/filters/sso/ntlm/NtlmFilter.java
cometta cometta cometta, modified 9 Years ago.

RE: Non-domain NTLM Authentication

Regular Member Posts: 109 Join Date: 4/26/09 Recent Posts
download the source code . i'm using 5.2.2
cometta cometta cometta, modified 9 Years ago.

Re: [Liferay Forums][5. Portal Framework] RE: Non-domain NTLM Authenticatio

Regular Member Posts: 109 Join Date: 4/26/09 Recent Posts
in production u will only find the class file. i not sure it inside with jar. but if you compile everything from source it should work . good luck




________________________________
From: Rathish R from liferay.com <no-reply@liferay.com>
To: "mb.239391.3299211@events.liferay.com" <mb.239391.3299211@events.liferay.com>
Sent: Thursday, June 11, 2009 12:54:26 PM
Subject: [Liferay Forums][5. Portal Framework] RE: Non-domain NTLM Authentication <mb.239391.3299211@events.liferay.com>

Hi Cometta,

I can download the source code and make the changes. But my concern is that i have the portal already deployed in production environment and in that package i am not able find the file ntlmfilter.java. Is this file located in any jar files?? Do i need to unpack any jar files in order to view this file??


Regards,

Rathish
--
Liferay Message Boards
http://www.liferay.com/web/guest/community/forums/-/message_boards/message/3299211
mb.239391.3299211@events.liferay.com
http://www.liferay.com
cometta cometta cometta, modified 9 Years ago.

RE: Non-domain NTLM Authentication

Regular Member Posts: 109 Join Date: 4/26/09 Recent Posts
try compile from source and try that on your development environment first. if that work. then shift to production
RR
Rathish R, modified 8 Years ago.

RE: Non-domain NTLM Authentication

Junior Member Posts: 48 Join Date: 2/26/09 Recent Posts
I have downloaded the source and made the changes in ntlmfilter.java file. How do i compile the source code?
RK
Roman Kuchvarskyy, modified 8 Years ago.

RE: Non-domain NTLM Authentication

New Member Posts: 6 Join Date: 6/22/09 Recent Posts
Do you have extension of your project?
If you have, you only must place this file on ext-impl/src/{file-path} and then run ant deploy target.
RK
Roman Kuchvarskyy, modified 9 Years ago.

RE: Non-domain NTLM Authentication

New Member Posts: 6 Join Date: 6/22/09 Recent Posts
Hi Cometta!

Your fix work but,

I have a problem with login. I can login via NTLM only first time. And then I get Access denied! exception.

First user login successful, and when I try login by another user I got this exception.

Have you any suggestion about such problem?
cometta cometta cometta, modified 9 Years ago.

RE: Non-domain NTLM Authentication

Regular Member Posts: 109 Join Date: 4/26/09 Recent Posts
pls provide error screenshot or console exception error code, also better if you can include your nltmfilter file so that someone able to help up
RK
Roman Kuchvarskyy, modified 8 Years ago.

RE: Non-domain NTLM Authentication

New Member Posts: 6 Join Date: 6/22/09 Recent Posts
Hi cometta,
Here is a screenshot of my exception and NTLMFilter.txt.
The exception throws after I try to login for the second time by another user. At first logon method login successful.
Maybe the problem is on the domain configuration?
cometta cometta cometta, modified 8 Years ago.

RE: Non-domain NTLM Authentication

Regular Member Posts: 109 Join Date: 4/26/09 Recent Posts
i place logon at wrong place


ntlm = NtlmSsp.authenticate(request, response, challenge);

//*** modified start
try{
SmbSession.logon(uniAddress, ntlm); //ref:http://article.gmane.org/gmane.network.samba.java/501

}
catch( jcifs.smb.SmbException smbE){
//only print brief error and skip
_log.error("smbSession.logon error logon credential");
return null;
}

//*** modified end


session.setAttribute("NtlmHttpAuth", ntlm);
RK
Roman Kuchvarskyy, modified 8 Years ago.

RE: Non-domain NTLM Authentication

New Member Posts: 6 Join Date: 6/22/09 Recent Posts
Hi Cometta,

I found what are causing my Access denied exeception. The problem is that I connect to th IPC$ share. And It allowed only one connection. My domain is located on Windows 2003 server. Do you have the same problem?
RK
Roman Kuchvarskyy, modified 8 Years ago.

RE: Non-domain NTLM Authentication

New Member Posts: 6 Join Date: 6/22/09 Recent Posts
Can anybody help me with my problem?
The problem is, that I can Login only first time via NTLM. Second user(another user) couldn't login(but can if login first time). I user Windows 2003 server and tomcat.
cometta cometta cometta, modified 8 Years ago.

RE: Non-domain NTLM Authentication

Regular Member Posts: 109 Join Date: 4/26/09 Recent Posts
1. did u tried the code that i post on my previous post?
2. hope someone will respond on this. give some feedback to this user
RK
Roman Kuchvarskyy, modified 8 Years ago.

RE: Non-domain NTLM Authentication

New Member Posts: 6 Join Date: 6/22/09 Recent Posts
Yes I tried. Your fix work. But only for first user. If I go in my server(Win 2003) and kill the session to IPC$ the next user can login.
cometta cometta cometta, modified 8 Years ago.

RE: Non-domain NTLM Authentication

Regular Member Posts: 109 Join Date: 4/26/09 Recent Posts
so for i test 2-3 users login same times without problem.. any feedback from other members?
cometta cometta cometta, modified 8 Years ago.

RE: Non-domain NTLM Authentication

Regular Member Posts: 109 Join Date: 4/26/09 Recent Posts
by the way i'm using tomcat 6.0.18 +oracle 10g
Lisa Simpson, modified 8 Years ago.

RE: Non-domain NTLM Authentication

Liferay Legend Posts: 2034 Join Date: 3/5/09 Recent Posts
Just to toss 2 cents in, why not shim the authentication path with something like CAS? It would certainly seem easier than all this stuff that all of you are doing now.
SK
Sultee khan, modified 7 Years ago.

RE: Non-domain NTLM Authentication

Regular Member Posts: 148 Join Date: 10/31/09 Recent Posts
I tried your update and FF is now working but IE is showing a login box too, which was not the case before. I am on 5.2.3 and using IE8. For me an idea solution will be that the pop up login box not show up in IE and FF both. Any suggestion ?
Thanks
Victor Zorin, modified 8 Years ago.

RE: Non-domain NTLM Authentication

Liferay Legend Posts: 1197 Join Date: 4/14/08 Recent Posts
Surprised that this is not fixed yet, because working solution was suggested by cometta a long time ago, works across IE, domain and non-domain FFs without problems. Public patch can be found here. Source code is inside zip/jar file.

Edited: For auto-sign-in in FF, do not forget to extend configuration parameter 'network.automatic-ntlm-auth.trusted-uris' with the comma-separated list of NTLM domains (using about:config screen)
jerin jacob, modified 8 Years ago.

RE: Non-domain NTLM Authentication

New Member Posts: 11 Join Date: 3/23/09 Recent Posts
ya ... worked .. great .... Is there any way to login with out NTLM settings ???
Victor Zorin, modified 8 Years ago.

RE: Non-domain NTLM Authentication

Liferay Legend Posts: 1197 Join Date: 4/14/08 Recent Posts
If NTLM auth does not pass, you should be redirected to login page automatically.
That's normal behavior. We use both sign-in processes simultaneously.
Michael Wang, modified 8 Years ago.

RE: Non-domain NTLM Authentication

Junior Member Posts: 29 Join Date: 9/23/09 Recent Posts
We had tried the methods above, but Still No Luck and having the same issue when using the 5.2.4 version ,are there any updates on how to fix the bug ? Somebody,pl Help.....
Victor Zorin, modified 8 Years ago.

RE: Non-domain NTLM Authentication

Liferay Legend Posts: 1197 Join Date: 4/14/08 Recent Posts
having the same issue...

Hi Michael. Usually single thread touches on many issues and flavors of those, what's the exact problem in this particular setup?
Michael Wang, modified 8 Years ago.

RE: Non-domain NTLM Authentication

Junior Member Posts: 29 Join Date: 9/23/09 Recent Posts
Dear Victor,

Thanks for your concerns.The problem is that I can Login only first time via NTLM. Second user(another user) couldn't login(but can if login first time). I use Windows 2003 server and tomcat. Can you help me with the problem?

Thanks,
Victor Zorin, modified 8 Years ago.

RE: Non-domain NTLM Authentication

Liferay Legend Posts: 1197 Join Date: 4/14/08 Recent Posts
Need more info about sequence of events:
- is it from the same desktop or different? For example:
step 1. You log in to desktop
step 2. You log in to portal
step 3. you log out from desktop
step 4. another person logs in to desktop with different credentials
step 5. another person con not log in to portal
... something like that

Do you have proxy on your network? If you do, disable until investigation is complete.
Michael Wang, modified 8 Years ago.

RE: Non-domain NTLM Authentication

Junior Member Posts: 29 Join Date: 9/23/09 Recent Posts
Dear Victor,

Thanks for the kindly help, we didn't used any proxy on our network,we followed your ideas and the result are :

There are users A , B and C

1. User A login desktop then login portal. Successed!

2. User B login desktop then login portal. Failed.

3, User C login desktop and login portla used user A account, sucessed!
Michael Wang, modified 8 Years ago.

RE: Non-domain NTLM Authentication

Junior Member Posts: 29 Join Date: 9/23/09 Recent Posts
Hello Victor,

Any updated advise on the problem ?
Victor Zorin, modified 8 Years ago.

RE: Non-domain NTLM Authentication

Liferay Legend Posts: 1197 Join Date: 4/14/08 Recent Posts
Michael , sorry for the delay. Had to go through some painful releases.
On your NTLM issue, there must be something simple, though hard to figure out what's going on without seeing your system setup.

If I start asking detailed questions one by one, there could about ten 2-way interactions on the forum, which may take 10 days (one per question/answer).
So may be it is a good time for you to roll up your sleeves and learn how to resolve such situations quickly. That's what I usually do:
- create a Java project in Eclipse, that is configured to produce a single jar file
- set library path to point to liferay impl and service jars
- create a replica of a class which your would like to debug, e.g. in this case you would want to know what's going on when NTLM is executed, so you have to create a cut-and-paste copy of class com.liferay.portal.security.auth.NtlmAutoLogin, but with your own package name, e.g. com.myoffice.portal.security.auth.NtlmAutoLogin
- insert your own debugging statements into it
- build, create your own jar, put it into classpath
- modify your portal-ext.propeties file, by copying line auto.login.hooks=... from portal.properties
- in this line change the class com.liferay.portal.security.auth.NtlmAutoLogin to com.myoffice.portal.security.auth.NtlmAutoLogin
- so when NTLM is executed, your own class will be executed instead of liferay' one
- run the portal and see which way it is going

Once you are set like this and feel comfortable, the entire debugging and build process for future problems and investigations may only take 30 minutes.

You can certainly do such builds in ext environment, but I found that it is much easier to do it this way, probably because I used this style on liferay installations before ext environment existed, (e.g. 4 years ago)