You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by "johns@msli.com" <jo...@msli.com> on 2007/09/18 00:40:43 UTC

[users@httpd] debugging mod_authnz_external with apache-2.2

Upgrading my subversion server from apache-2.0 to 2.2 I decided to try
replace from mod_auth_pam with  mod_authnz_external+pwauth+pam

pwauth works, apache works, but mod_authnz_external doesn't

The apache log shows this error when I try to log in: 
                                    
                  ==> /var/log/apache2/error.log <== 
   [Sun Sep 16 19:01:00 2007] [error] [client 192.168.50.96] Invalid
                     AuthExternal keyword (pwauth) 
    [Sun Sep 16 19:01:00 2007] [error] [client 192.168.50.96] access
   to /DataMart/ failed, reason: verification of user id 'johns' not
                              configured 
                                    
What does it mean? 

I built pwauth to use pam & allow 2 users to run it (apache and jstile),
and command line tests succeed. 
                                    
  echo 'PWAUTH_SERVERUIDS="81,1000"' >> /etc/make.conf  # Must specify
                      UIDs allowed to run pwauth 
        echo 'www-apache/pwauth pam' >> /etc/portage/package.use 
     echo 'www-apache/pwauth ~x86' >> /etc/portage/package.keywords 
                        emerge www-apache/pwauth 
                         vi  /etc/pam.d/pwauth 
                                 #%PAM-1.0 
                   auth    required        pam_winbind.so 
                   account required        pam_winbind.so

Test pwauth as non-root user, testing Active Directory account. 
                                    
                              su - jstile 
                            /usr/sbin/pwauth 
                                   johns 
                              <good password> 
                                 echo $? 
                        0  # this means good passwd 
                            /usr/sbin/pwauth 
                                   johns 
                                    foo 
                                 echo $? 
                        1   # this means bad passwd

This gives me confidence the problem is not with pwauth. 

Install mod_authnz_external. 
                                    
               echo 'www-apache/mod_authnz_external ~x86'
                   >> /etc/portage/package.keywords 
   emerge --update --newuse --deep -ta www-apache/mod_authnz_external

Append '-D AUTHNZ_EXTERNAL' to APACHE2_OPTS in /etc/conf.d/apache2. 
Resulting line: 
                                    
      APACHE2_OPTS="-D INFO -D LANGUAGE -D SSL -D DEFAULT_VHOST -D
SSL_DEFAULT_VHOST -D SUEXEC -D SVN -D SVN_AUTHZ -D DAV -D DAV_FS -D PHP5
                          -D AUTHNZ_EXTERNAL"

I edited /etc/apache2/modules.d/10_mod_authnz_external.conf, 
and uncomment/changed 2 lines: 
                                    
                AddExternalAuth  pwauth /usr/sbin/pwauth 
                    SetExternalAuthMethod  pwauth pipe

Then for the apache configs. 
The file /etc/apache2/httpd.conf 
loads default modules, 
loads /etc/apache2/modules.d/*.conf 
loads /etc/apache2/vhosts.d/*.conf 
I have one vhost for port 80, one for 443, and one for common items. 
                                 Code:
                        00_default_ssl_vhost.conf 
                          00_default_vhost.conf 
                           default_vhost.include

The file /etc/apache2/modules.d/10_mod_authnz_external.conf contains: 
                                    
                      <IfDefine AUTHNZ_EXTERNAL> 
                    <IfModule !mod_authnz_external.c> 
     #LoadModule authnz_external_module modules/mod_authnz_external.so 
                                 LoadModule
authnz_external_module /usr/lib/apache2/modules/mod_authnz_external.so 
                               </IfModule> 
                              </IfDefine> 
                   <IfModule mod_authnz_external.c> 
               AddExternalAuth  pwauth /usr/sbin/pwauth 
                  SetExternalAuthMethod  pwauth pipe 
                              </IfModule>

The file /etc/apache2/modules.d/47_mod_dav_svn.conf contains: 
                                    
   LoadModule dav_svn_module /usr/lib/apache2/modules/mod_dav_svn.so 
 LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so 
                         <Location /DataMart> 
                                 DAV svn 
                       SVNPath /svn/repos/DataMart 
                      SVNIndexXSLT "/svnindex.xsl" 
                             AuthType Basic 
               AuthName "Subversion Repository: DataMart" 
                       #AuthBasicAuthoritative Off 
                       AuthBasicProvider external 
                           AuthExternal pwauth 
                           Require valid-user 
                AuthzSVNAccessFile /svn/acls/DataMart.acl 
                              </Location>

Finall I restart apache. 
                                    
                      /etc/init.d/apache2 restart

I can access both the 443 and 80 default pages, so Apache is serving
pages. 

When "AuthBasicAuthoritative Off" is uncommented and I access DataMart,
I am prompted for a password over and over, which generates the apache
logs: 
                                    
                  ==> /var/log/apache2/error.log <== 
   [Sun Sep 16 19:01:00 2007] [error] [client 192.168.50.96] Invalid
                     AuthExternal keyword (pwauth) 
    [Sun Sep 16 19:01:00 2007] [error] [client 192.168.50.96] access
   to /DataMart/ failed, reason: verification of user id 'johns' not
                              configured 
                                    

When "AuthBasicAuthoritative Off" is commented out and I access
DataMart, apache logs show: 
                                    
                  ==> /var/log/apache2/access.log <== 
   192.168.60.30 - johns [17/Sep/2007:14:19:54 -0700] "GET /DataMart/
     HTTP/1.1" 500 540 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US;
              rv:1.8.1.6) Gecko/20070815 Firefox/2.0.0.6" 
                                    
                  ==> /var/log/apache2/error.log <== 
   [Mon Sep 17 14:19:54 2007] [error] [client 192.168.60.30] Invalid
                     AuthExternal keyword (pwauth)

I am using Gentoo Linux with the following package versions:
  www-apache/mod_authnz_externa 1.3.0
  app-admin/apache-tools-2.2.6
  www-servers/apache-2.2.6


---------------------------------------------------------------------
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