[Zope] apache authentication with proxy -- remote user mode

zope-mailinglist zope-mailinglist@mopa.at
Fri, 23 Aug 2002 09:27:00 +0200


Dieter Maurer wrote:
> zope-mailinglist writes:
>  > the apache server authenticates succesfully
>  > and in the z2.log file i see that the remote_user variable is passed 
>  > over, but zope always wants to switch back to normal user authentication 
>  > and wants credentials. (btw. the user is existent in the root user folder)
>  > 
>  > is it possible, that this is a proxy problem, do i need to pass 
>  > additional information?
> I think it is possible.
> 
> You need to put Zope in "_remote_user_mode".
> Look at "AccessControl/User" for how to do that...
> 
> 
> Dieter

thanks for your reply

sorry, forgot to state that zope already runs in _remote_user_mode
the problem seems to be that zope looks in request.environ['REMOTE_USER']
which is not present in the zope process, only in the apache process -- 
seems that remote_user_mode is only for cgi mode, where apache passes 
its environment variables to the cgi.

i found out that i need request._auth
this is the base64 encoded user:pw string
i tried it out by changing the source of User.py like this:

replace:
name = request.environ.get('REMOTE_USER', None)
with:
name = self.identify(request._auth)[0]

... and it works, but that can only be a temporary solution.
the problem is that if i do this, users can easily be faked by just 
using another apache proxy which authenticates users with the same name.
therefore a domain restriction needs to be applied.
maybe this is a new feature for zope such as "proxy_authentication_mode".

i think i have to subclass UserFolder and User and then provide the 
apropriate validate method

is there another solution?

tia, bernd