httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Hayo Schmidt <str...@hayo.de>
Subject Re: [users@httpd] Authorization header without password for basic authentication on a reverse proxy
Date Fri, 24 Feb 2006 22:58:41 GMT
Thanks a lot to all who helped me.

Here is the solution i found with your support:       

    # Set up reverse proxy
    # needs: mod_proxy
    ProxyRequests Off
    ProxyPass /folder http://backend-server
    ProxyPassReverse /folder http://backend-server

    #
    # Configuration of access protection.
    #
    <Location /folder>
        # needs: mod_ldap,mod_auth,mod_auth_ldap
        Order deny,allow
        Allow from all
        ## Auth LDAP Configuration (example)
        AuthLDAPURL 
ldap://ldaphost:389/CN=Users,DC=DOMAIN,DC=local?sAMAccountName?sub?(objectClass=user)
        AuthLDAPBindDN cn=Administrator,cn=Users,dc=DOMAIN,dc=local
        AuthLDAPBindPassword secret
        Require valid-user
        AuthType Basic
        AuthName "Extranet Login"

        #*** Pass the User without Password ***
        # needs: mod_headers; mod_rewrite

        # remove authorization header (username:password)
        RequestHeader unset authorization

        # configure user id format
        # Distinguished Name [On]; UserID (sAMAccountName) [Off]
        AuthLDAPRemoteUserIsDN Off

        #the following does not work, passed user is always 'null'
        #RequestHeader set authorization %{REMOTE_USER}e
        # -> Workaround with rewrite
        RewriteEngine On
        RewriteCond %{REMOTE_USER} (.*)
        RewriteRule .* - [E=R_U:%1]
        RequestHeader add X-Remote-User %{R_U}e
    </Location>

The user authenticates against a Microsoft Active Directory when he 
accesses the /folder through the reverse proxy.
The authorization header set by the browser is removed.
Instead either the Windows login name (sAMAccountName) or the 
Distinguished Name of the user is passed to the backend server as clear 
text in X-Remote-User request header.

I am not sure if the solution always works with special characters (like 
ä,  ö, é ). You will have to test that in your environment.
Does someone know a failsafe solution to that, like base64 encoding the 
X-Remote-User in Apache?

Regards,
Hayo Schmidt

Boyle Owen schrieb:

>>-----Original Message-----
>>From: Hayo Schmidt [mailto:strato@hayo.de] 
>>Sent: Donnerstag, 9. Februar 2006 12:16
>>To: users@httpd.apache.org
>>Subject: [users@httpd] Authorization header without password 
>>for basic authentication on a reverse proxy 
>>
>>I have set up a reverse proxy (mod_proxy) on Apache 2.0.53 on 
>>SuSE Linux 
>>9.3. The reverse proxy successfully handles basic authentication and 
>>then forwards to the protected web server. The authentication 
>>is handled 
>>by mod_auth_ldap against a M$ Active Directory Server.
>>
>>The user and password are transferred by standard apache 
>>functionality 
>>in a http request header parameter called 'authorization'. 
>>The value of 
>>the parameter looks something like this:  'Basic 
>>WErwSrweW4Dsaf3_'. The 
>>first means basic authentication, the latter is 
>>'<userid>:<password>' in 
>>a Base64-encoded format. I trust the authentication on Apache 
>>and would 
>>like to remove this unencrypted password, so that only the userid is 
>>transferred to the web server. It is a security issue not to disclose 
>>the password to anyone behind the reverse proxy.
>>
>>Is there any configuration where this can be set?
>>    
>>
>
>It is the browser that forms the "Authorization" header. The apache proxy simply forwards
the header (along with all the other headers in the request) to the backend server. 
>
>If you don't want to pass this header in the proxy-backend network, you could protect
the realm in the proxy and have it open in the backend; eg:
>
>In proxy:
>
><Location /path/to/realm>
>  Auth directives
>  Require valid-user
></Location>
>
>ProxyPass /path/to/realm http://backend-server
>ProxyPassReverse /path/to/realm http://backend-server
>
>In backend:
>
>- remove Auth directives
>
>
>Rgds,
>Owen Boyle
>Disclaimer: Any disclaimer attached to this message may be ignored. 
>
>
>  
>
>>In case it cannot be configured: Which module of apache 
>>handles setting 
>>the authorization header? I did not find anything in the 2.0 sources 
>>(mod_proxy.c; mod_proxy_util.c; 
>>mod_proxy_http.c;mod_auth_ldap.c....). 
>>Are there useful changes with Apache 2.2?
>>
>>Hayo Schmidt
>>
>>---------------------------------------------------------------------
>>The official User-To-User support forum of the Apache HTTP 
>>Server Project.
>>See <URL:http://httpd.apache.org/userslist.html> for more info.
>>To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
>>   "   from the digest: users-digest-unsubscribe@httpd.apache.org
>>For additional commands, e-mail: users-help@httpd.apache.org
>>
>>
>>    
>>
>Diese E-mail ist eine private und persönliche Kommunikation. Sie hat keinen Bezug zur
Börsen- bzw. Geschäftstätigkeit der SWX Gruppe. This e-mail is of a private and personal
nature. It is not related to the exchange or business activities of the SWX Group. Le présent
e-mail est un message privé et personnel, sans rapport avec l'activité boursière du Groupe
SWX.
> 
> 
>This message is for the named person's use only. It may contain confidential, proprietary
or legally privileged information. No confidentiality or privilege is waived or lost by any
mistransmission. If you receive this message in error, please notify the sender urgently and
then immediately delete the message and any copies of it from your system. Please also immediately
destroy any hardcopies of the message. You must not, directly or indirectly, use, disclose,
distribute, print, or copy any part of this message if you are not the intended recipient.
The sender's company reserves the right to monitor all e-mail communications through their
networks. Any views expressed in this message are those of the individual sender, except where
the message states otherwise and the sender is authorised to state them to be the views of
the sender's company.
>
>---------------------------------------------------------------------
>The official User-To-User support forum of the Apache HTTP Server Project.
>See <URL:http://httpd.apache.org/userslist.html> for more info.
>To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
>   "   from the digest: users-digest-unsubscribe@httpd.apache.org
>For additional commands, e-mail: users-help@httpd.apache.org
>
>
>  
>


Mime
View raw message