Como posso desabilitar a autenticação do Kerberos somente para a raiz do meu site?

1

Eu tenho autenticação baseada em Kerberos e quero desativá-la apenas na URL raiz: http://mysite.com/ . E eu quero que continue a funcionar bem em qualquer outra página como http://mysite.com/page1 .

Eu tenho essas coisas no meu .htaccess:

AuthType Kerberos
AuthName "Domain login"
KrbAuthRealms DOMAIN.COM
KrbMethodK5Passwd on
Krb5KeyTab /etc/httpd/httpd.keytab
require valid-user

Desejo desativá-lo somente para o URL raiz. Como solução alternativa, é possível desativar o uso de .htaccess na configuração do host virtual. Infelizmente eu não sei como fazer isso.

Parte do meu vhost.conf:

    <Directory /home/user/www/current/public/>
            Options -MultiViews +FollowSymLinks
            AllowOverride All
            Order allow,deny
            Allow from all
    </Directory>

UPD. Estou usando o Apache / 2.2.3 (Linux / SUSE)

Eu tentei usar essa versão do .htaccess:

SetEnvIf Request_URI ^/$ rootdir=1
Allow from env=rootdir
Satisfy Any
AuthType Kerberos
AuthName "Domain login"
KrbAuthRealms DOMAIN.COM
KrbMethodK5Passwd on
Krb5KeyTab /etc/httpd/httpd.keytab
require valid-user

Infelizmente, essa configuração ativa o Kerberos AuthType para todos os URLs. Eu tentei colocar as primeiras 3 linhas

SetEnvIf Request_URI ^/$ rootdir=1
Allow from env=rootdir
Satisfy Any

depois do bloco principal, mas isso não me ajudou.

    
por petRUShka 02.07.2012 / 20:03

3 respostas

2

Eu movi a configuração mod_auth_kerb para vhost.conf. E usei a diretiva Location para desativar a autorização em alguns URLs.

    # root_url
    <LocationMatch "(^\/$|^$)">
            Satisfy Any
    </LocationMatch>
    <Location /incidents/last>
            Satisfy Any
    </Location>

    <Directory /home/user/www/>
            Options -MultiViews +FollowSymLinks
            AllowOverride None
            Order allow,deny
            Allow from all
            AuthType Kerberos
            AuthName "Domain login"
            KrbAuthRealms DOMAIN.COM
            KrbMethodK5Passwd On
            Krb5KeyTab /etc/httpd/httpd.keytab
            require valid-user
    </Directory>

Isso resolveu meu problema.

    
por 05.07.2012 / 10:46
0

Como você faz isso vai depender se você está usando o Apache 2.2 ou o Apache 2.4. Eu não testei estes, então é totalmente possível que não funcione ou precise de alguns ajustes.

Para o 2.2, podemos usar SetEnvIf para definir uma variável se eles forem solicitando / e use Allow from e Satisfy any para controlar o acesso. Toda a sua configuração existente deve permanecer como está:

SetEnvIf Request_URI ^/$ rootdir=1
Allow from env=rootdir
Satisfy Any

Com o 2.4, há alterações na autenticação e autorização . Agora temos um conjunto de <Require> blocos que você pode incluir em qualquer controle de acesso para ajustar a autorização:

SetEnvIf Request_URI ^/$ rootdir=1

<RequireAny>
  AuthType Kerberos
  AuthName "Domain login"
  KrbAuthRealms DOMAIN.COM
  KrbMethodK5Passwd on
  Krb5KeyTab /etc/httpd/httpd.keytab
  Require valid-user
  Require env rootdir=1
</RequireAny>

O bloco <RequireAny> significa que qualquer um das diretivas Require deve corresponder para que a autorização seja bem-sucedida. Também há <RequireAll> e <RequireNone> blocos.

    
por 03.07.2012 / 11:32
-1

Tente AllowOverride Nenhum Ele irá desativar o .htacess

    
por 02.07.2012 / 22:08