diretiva Apache Auth em cascata para diretórios alias

1

Eu tenho um bloco razoavelmente longo de diretivas de configuração de autorização dentro de um contexto Apache <Directory> em um arquivo de configuração de host virtual.
Ele possui credenciais LDAP e um filtro complexo que será chato de se reproduzir dentro do arquivo de configuração do vhost.

Aqui está um exemplo simplificado:

ServerName server.domain.com
DocumentRoot /var/www/server.domain.com

<Directory /var/www/server.domain.com/>
    AllowOverride FileInfo
    Options +ExecCGI

    # PASSWORD PROTECT
    AuthType Basic
    AuthBasicProvider ldap file
    AuthName "INTERNAL"
    AuthLDAPURL ldap://xxx
    AuthLDAPBindDN uid=xxx,cn=xxx
    AuthLDAPBindPassword xxx
    AuthzLDAPAuthoritative on
    AuthUserFile /var/www/server.domain.com/.htpasswd
    Require valid-user
</Directory>

Alias /alias1 /var/www/alias1.domain.com
<Directory /var/www/alias1.domain.com>
    # ?
</Directory>

Alias /alias2 /var/www/alias2.domain.com
<Directory /var/www/alias2.domain.com>
    # ?
</Directory>

Alias /alias3 /var/www/alias3.domain.com
<Directory /var/www/alias3.domain.com>
    # ?
</Directory>

</VirtualHost>

Agora, como a maioria das diretivas Auth* precisa ser usada em um contexto Directory ou .htaccess , tenho de repetir o total AuthType ... Require valid-user block para cada Alias que eu adiciono.

A única maneira de evitar isso é dividir a seção auth em um arquivo separado e fazer referência a isso usando Include .

Como solução, o Include funcionaria bem e seria fácil de manter.

Existe outra maneira de fazer isso que fornece um arquivo de configuração vhost mais limpo com menos repetição?
Apenas no caso de haver uma ótima maneira de fazer coisas como essa no Apache que eu não aprendi nos últimos 15 anos!

EDIT: Devo salientar que o motivo pelo qual estou usando Alias é para facilitar a implantação, não quero ter que recriar links simbólicos sempre que eu reconstruir esse diretório DocumentRoot . Eu percebo que usando links simbólicos e Location forneceria a cascata que eu estaria procurando para evitar a repetição.
O problema que tenho, suponho, tem mais a ver com o fato de que Alias requer um bloco Directory correspondente para poder restringir o acesso.

    
por batfastad 22.02.2014 / 00:52

1 resposta

0

Você pode usar mod_authn_alias para agrupar e reutilizar algumas das diretivas, mas não as Acho que ajudaria muito. Você ainda teria que repetir muitas das diretrizes.

Na minha experiência, a solução Include funciona bem e é fácil de manter.

Você poderia aplicar suas diretivas authnz a todos os / var / www? Isso eliminaria a necessidade de especificá-los separadamente para cada subdiretório. Se não, talvez você possa mover apenas os sites que precisam do authnz em um subdiretório, digamos / var / www / authnz, e aplicar as configurações apenas uma vez nesse diretório.

    
por 22.02.2014 / 10:13