Tags:
create new tag
, view all tags
Whilst installing TWikiOnWindowsWithIIS we noted that TWiki is inherently tied to Apache. This caused as problems as adding and looking up users needs to be implemented differently on IIS.

So, may I propose that we factor out from the register.pl script the calls to Apache?

As a first step, the routines:

  • htpasswdGeneratePassword
  • htpasswdExistUser
  • htpasswdAddUser

could to be moved to lib/TWiki/Apache.pm

Then have a base class UserList as an interface with routines:

  • addUser
  • userExists

And have generatePassword internal to Apache.pm

Then have both IIS.pm and Apache.pm implement UserList.pm and have register.pl use only the interface in UserList.pm and TWiki.cfg select whether we use IIS.pm or Apache.pm.

M.

-- MartinCleaver - 30 Oct 2001

Martin,

Ahhh...so that's the problem with setting up authentication with IIS! Have you implemented this?! Would really appreciate any pointers you could give me to get around the problem!

Thanks,

David

-- DavidHay - 30 Nov 2001

I'm just starting to get TWiki running on IIS right now, and one of the things I've already done is to comment out everything in register.pl that referred to htpasswd. That file does absolutely nothing if you're using IIS, and the only thing TWiki does with it is add and modify entries in it, presumably for the benefit of the non-existent apache. (I also commented out the "use Digest::SHA1" line, since for some reason that module isn't included in my installation, which is an older ActiveState build).

There are probably many ways to make authentication work using IIS and Windows, but here's what I've done so far. The assumption I'm working from is that you have all of your potential users already set up with Windows authentication, either as local users on the server or as users in a domain that the server can authenticate against. Given all that:

The first thing I tried was to restrict access to the TWiki directories using Windows ACLs. This didn't work as I had hoped. The scripts would run without any requests for username/password in the browser, but the scripts would fail with "The CGI application returned a bad set of headers", and the headers returned were "view.pl : access denied" or some such. The reason is that when the browser requests the script URL, IIS tries to run perl.exe as a CGI. When running the CGI it does a user context switch to the IWAM user. The IWAM user has permissions to run perl.exe (at least, it does on my system), so from IIS's perspective the CGI succeeds. But then perl.exe tries to open view.pl using the IWAM user context, and with the restrictive ACLs on the TWiki directory that attempt fails. But since IIS thinks the CGI call succeeded (since perl.exe ran successfully albeit returning invalid HTML headers), IIS won't request any additional username/password credentials from the browser.

So that didn't work. Next I set the ACLs on the TWiki directory so that Everyone had read/execute access (it would probably suffice to give the IWAM user read/execute access instead of Everyone). Then, in the IIS Control Panel (the "Internet Information Services" applet under "Administrative Tools" in Windows 2000) I disabled anonymous access (web site -> properties -> Directory Security -> Anonymous access and authentication control -> Edit -> Anonymous Access checkbox). I also checked "Basic authentication" and "Integrated Windows authentication".

This seems to work rather well for what I want to do, although I'll keep playing with it for the next few days. It requires anyone who wants to access the TWiki at all to have a valid username and password in the Windows domain, and the TWiki gets the username correctly. Registration works correctly, and while it doesn't do anything to the (useless) htpasswd file, it still sets up the right entries in the TWikiUsers topic and creates the users' topics under Main.

Hope this helps. This should probably all go in the TWikiOnWindows topic, but I'll have more to say there once I get more done on the actual installation.

-- TWikiGuest - 08 Dec 2001

Edit | Attach | Watch | Print version | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r4 - 2004-01-01 - SvenDowideit
 
  • Learn about TWiki  
  • Download TWiki
This site is powered by the TWiki collaboration platform Powered by Perl Hosted by OICcam.com Ideas, requests, problems regarding TWiki? Send feedback. Ask community in the support forum.
Copyright © 1999-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.