Como Adicionar Exceção de Domínio na Autenticação Básica com .htaccess


Se você já configurou a autenticação básica no seu servidor Apache com .htaccess, sabe que ela é uma maneira eficaz de proteger diretórios sensíveis. No entanto, pode surgir a necessidade de abrir uma exceção para um domínio específico, permitindo que ele acesse a área protegida sem precisar de autenticação.

Neste post, vou mostrar como adicionar uma exceção de domínio em seu arquivo .htaccess para que um domínio ou subdomínio específico possa acessar o conteúdo sem passar pela autenticação. Vamos direto ao ponto!

Cenário Comum de Autenticação Básica

Normalmente, o seu .htaccess para autenticação básica vai se parecer com isso:

AuthType Basic
AuthName "Área Restrita"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user

Com essa configuração, qualquer usuário tentando acessar o diretório será solicitado a fornecer um nome de usuário e senha.

A Necessidade de uma Exceção de Domínio

Agora, imagine que você tem um subdomínio, por exemplo, subdominio.exemplo.com, que precisa acessar o conteúdo sem a autenticação. Talvez esse subdomínio esteja sendo usado por uma aplicação interna que não pode lidar com autenticação. Felizmente, podemos contornar isso utilizando a diretiva SetEnvIf.

Adicionando a Exceção de Domínio no .htaccess

Vamos adaptar o .htaccess para permitir que o domínio subdominio.exemplo.com acesse o conteúdo sem ser solicitado a se autenticar:

SetEnvIf Host "^subdominio\.exemplo\.com$" allow_access

AuthType Basic
AuthName "Área Restrita"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user

# Configuração para permitir o acesso sem autenticação ao domínio especificado
Order Deny,Allow
Deny from all
Allow from env=allow_access
Satisfy any

Como Funciona?

  • SetEnvIf Host "^subdominio\.exemplo\.com$" allow_access: Esta linha verifica o domínio da solicitação. Se o domínio for subdominio.exemplo.com, define a variável de ambiente allow_access.
  • AuthType Basic e Require valid-user: Essas linhas continuam exigindo autenticação para qualquer outro usuário que tente acessar a área, exceto aqueles que se enquadram na exceção do domínio.
  • Order Deny,Allow e Deny from all: Inicialmente, todos os acessos são negados.
  • Allow from env=allow_access: Se a variável de ambiente allow_access estiver definida (ou seja, se o domínio for o que estamos permitindo), o acesso é concedido sem autenticação.
  • Satisfy any: Aqui, o Apache permite que qualquer uma das condições seja satisfeita. Ou o usuário passa pela autenticação, ou o domínio solicitado se encaixa na exceção.

Quando Usar Isso?

Essa abordagem é útil quando você deseja proteger um diretório com autenticação básica, mas precisa liberar o acesso para um subdomínio ou domínio específico sem comprometer a segurança de todo o diretório.

Por exemplo:

  • Aplicações internas que exigem acesso direto.
  • Subdomínios usados para monitoramento ou scripts automatizados que não podem lidar com prompts de autenticação.

Conclusão

Configurar exceções de domínio na autenticação básica pode ser necessário em alguns cenários, e o Apache permite isso de forma eficiente com o uso de variáveis de ambiente no .htaccess. Com a solução apresentada, você pode liberar domínios específicos sem remover a proteção da sua área restrita.

Rolar para cima