Apache: Autenticação básica para raiz, restrição de host no diretório

3

Eu quero restringir o acesso ao meu Apache HTTPD usando autenticação básica para todos os arquivos, exceto aqueles em um determinado diretório.

O seguinte funciona bem para configurar a autenticação básica para todo o servidor:

<Directory />
    AuthType Basic
    AuthName "Private"
    AuthUserFile /usr/local/apache/passwd/passwords
</Directory>

No entanto, também quero restringir o diretório /foo a um único host, independentemente da autenticação básica :

<Directory /foo>
    Order Deny,Allow
    Deny from all
    Allow from my-host.com
</Directory>

Ambas as configurações funcionam bem sozinhas, mas não consigo trabalhar em conjunto:

  • Por padrão (ou se eu usar Satisfy all na cláusula /foo ), os usuários precisam vir do host correto e ter credenciais válidas para acessar /foo
  • Se eu usar Satisfy any na cláusula /foo , os usuários poderão ter credenciais válidas ou vir do host certo

No entanto, quero que apenas pessoas de my-host.com tenham acesso a /foo sem autenticação básica . Conexões de outros hosts não devem ser permitidas mesmo com as credenciais corretas . Na verdade, essas conexões não devem ser solicitadas por credenciais de autenticação básicas.

O que estou perdendo?

    
por Florian Brucker 30.05.2012 / 14:51

1 resposta

1

Você pode tentar com um arquivo passwd vazio para / foo

<Directory /foo>
  Order Deny,Allow
  Deny from all
  Allow from my-host.com
  AuthType Basic
  AuthName "my-host only"
  AuthUserFile /usr/local/apache/passwd/empty
  Satisfy any
</Directory>
    
por 30.05.2012 / 16:48