Como configuro o mod_auth_cas para um VirtualHost?

5

Eu tenho o seguinte em /etc/apache2/httpd.conf :

Include /private/etc/apache2/passenger_pane_vhosts/*.conf

Eu tenho o seguinte em /etc/apache2/passenger_pane_vhosts/my_site.conf :

LoadModule auth_cas_module /usr/libexec/apache2/mod_auth_cas.so
CASCookiePath /tmp/mod_auth_cas/
CASVersion 2
CASDebug on
CASValidateServer off
CASAllowWildcardCert on
CASTimeout 86400
CASIdleTimeout 7200
CASLoginURL https://cas.mycompany.com/cas/login
CASValidateURL https://cas.mycompany.com/cas/serviceValidate
CASCookieDomain hattip-dev.mitre.org

LogLevel debug

<VirtualHost *:80>
  LogLevel debug
  ServerName hattip.local
  DocumentRoot "/path/to/rails_app/public"
  RailsEnv development
  <Location />
    AuthType CAS
    AuthName "MyCompany CAS"
    CASAuthNHeader MOD_AUTH_CAS_USER
    require valid-user
  </Location>
  <directory "/path/to/rails_app/public">
    Order allow,deny
    Allow from all
  </directory>
</VirtualHost>

O Apache vai começar bem, mas cada pedido para o meu aplicativo Rails retorna um 403 sem redirecionar para o meu servidor CAS. Não há informações relacionadas ao CAS nos registros, mesmo que CASDebug seja on e LogLevel seja debug em todos os lugares que eu possa pensar em configurá-lo.

PS: Eu tentei algumas variações da configuração acima, incluindo colocar as declarações mod_auth_cas dentro da definição <VirtualHost> , mas a maioria falha na inicialização. Eu também tentei excluir o bloco <Location> e mover essa autenticação para o bloco <Directory> : sem alteração.

Alguém sabe como posso fazer com que mod_auth_cas redirecione para o meu servidor CAS?

(movido de StackOverflow )

    
por James A. Rosen 21.09.2009 / 16:34

1 resposta

4

Entendi. A resposta foi combinar os blocos <Location> e <Directory> e adicionar uma diretiva Satisfy :

LoadModule auth_cas_module /usr/libexec/apache2/mod_auth_cas.so
CASCookiePath /tmp/mod_auth_cas/
CASVersion 2
CASDebug on
CASValidateServer off
CASAllowWildcardCert on
CASTimeout 86400
CASIdleTimeout 7200

LogLevel debug

<VirtualHost *:80>
  CASCookieDomain "myapp"
  CASLoginURL "https://cas.mycompany.com/cas/login"
  CASValidateURL "https://cas.mycompany.com/cas/serviceValidate"
  LogLevel debug
  ServerName "myapp"
  DocumentRoot "/path/to/rails_app/public"
  RailsEnv development
  <Location />
    Order deny,allow
    Deny from all
    AuthType CAS
    AuthName "MyCompany CAS"
    require valid-user
    Satisfy Any
  </Location>
</VirtualHost>
    
por 21.09.2009 / 16:56