mod_auth_kerb / apache 2.4 não autenticando para subpastas

0

Eu compartilho repositórios subversion usando mod_dav_svn e autenticação Kerberos mod_authz_kerb. Tudo isso funcionou e recentemente parou. Ele autentica o usuário para a pasta de nível superior do URL, mas não para quaisquer subpastas.

Aqui estão os erros no lado do cliente:

$ svn list https://myserver/svn/test
projectA/
projectB/
projectC/
projectD/

$ svn list https://myserver/svn/test/projectC
svn: E120190: Unable to connect to a repository at URL 'https://myserver/svn/test/projectC'
svn: E120190: Error running context: An error occurred during authentication

Depois de executar o primeiro comando do servidor, ele autenticou o usuário que está verificando o KDC:

[auth_kerb:debug] [pid 10694] src/mod_auth_kerb.c(1093): [client :57101] kerb_authenticate_user_krb5pwd ret=0 [email protected] authtype=Basic
[authz_svn:info] [pid 10694] [client :57101] Access granted: '[email protected]' OPTIONS (null)

Ao executar o segundo comando no servidor, acabei de receber:

[authz_svn:debug] [pid 10577] mod_authz_svn.c(449): [client :57072] Path to authz file is /opt/svn/generic_acl.conf
[authz_core:debug] [pid 10577] mod_authz_core.c(802): [client :57072] AH01626: authorization result of Require valid-user : denied (no authenticated user yet)
[authz_core:debug] [pid 10577] mod_authz_core.c(802): [client :57072]   AH01626:   authorization result of <RequireAny>: denied (no authenticated user yet)

Para o segundo comando, não recebo uma solicitação para a senha e o auth_kerb envolvidos de alguma forma.

A configuração do apache para isso está dentro de /etc/apache2/conf-enabled/subversion.conf:

<Location /svn/test>
    Dav svn
    SVNPath /srv/svn/test

    SVNListParentPath On
    SVNAutoVersioning On

    AuthName "DOMAIN.CA"
    AuthType Kerberos
    KrbMethodNegotiate On
    KrbMethodK5Passwd On
    KrbAuthoritative On
    KrbVerifyKDC On
    KrbAuthRealms DOMAIN.CA
    Krb5KeyTab /etc/krb5.keytab
    KrbServiceName HTTP

    AuthzSVNAccessFile /opt/svn/generic_acl.conf

    Require valid-user
</Location>

Eu reconfigurei a diretiva para usar a autenticação Basic / htpasswd e o LDAP no mesmo Active Directory configurado para o Kerberos. Essas duas configurações alternativas parecem funcionar. Parece que algo está quebrado com o recente módulo apache / kerberos.

Qualquer sugestão seria muito apreciada.

Estou usando o Ubuntu 14.04.3, apache 2.4.7-1ubuntu4.5, libapache2-mod-auth-curb 5.4-2.1

    
por Budric 31.08.2015 / 23:29

2 respostas

1

Você por acaso tem shibboleth nesse servidor. O Shibboleth parece quebrar a autenticação básica em que o usuário válido não funciona. Experimente

ShibCompatValidUser ativado em apache conf.

link

Para mim, o SVNParentPath parece não funcionar. Se eu usar o SVNPath, ele funciona como esperado (mas eu tenho que configurar uma entrada no conf do apache para cada repo)

E eu também acho que algo está quebrado. Eu atualizei para o Ubuntu 14.04 há alguns meses, mas só comecei a usar o repositório novamente agora.

    
por Spidey 19.09.2015 / 04:40
0

Para fazer o downgrade para a versão anterior, funciona:

aptitude install libapache2-mod-svn=1.8.8-1ubuntu3 libapache2-mod-svn=1.8.8-1ubuntu3 libsvn1=1.8.8-1ubuntu3 subversion=1.8.8-1ubuntu3

e coloque-os em espera (pelo menos até que a correção seja liberada):

aptitude hold libapache2-mod-svn libapache2-mod-svn libsvn1 subversion
    
por Pstryk 06.04.2016 / 11:22