Como Corrigir Erro de Autenticação no ownCloud: Solução para o Erro de Cabeçalho de Autorização (web autentica, cliente não)

Ao configurar o ownCloud em um servidor com Apache, muitos usuários podem se deparar com um erro de autenticação no cliente, embora o acesso via web funcione perfeitamente. Esse problema geralmente ocorre quando o cabeçalho de autorização não é passado corretamente pelo servidor web para o ownCloud.

O erro mais comum nesse cenário é:

No 'Authorization: Basic' header found. Either the client didn't send one, or the server is misconfigured.

Isso significa que o ownCloud não está recebendo o cabeçalho de autorização que é necessário para autenticar a requisição.

Quando o Apache recebe requisições de clientes WebDAV ou outras requisições de autenticação, ele pode não repassar o cabeçalho Authorization corretamente para o ownCloud, resultando no erro mencionado acima.

A solução consiste em configurar o Apache para passar corretamente o cabeçalho Authorization para o ownCloud. Para isso, adicionamos o seguinte comando na configuração do Apache:

SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1

Esse comando garante que o Apache armazene o valor do cabeçalho Authorization em uma variável de ambiente e o repasse para o ownCloud.

Para aplicar a solução, abra o arquivo de configuração do Apache (geralmente encontrado em /etc/apache2/sites-available/ ou /etc/httpd/conf.d/). Localize o bloco de configuração do seu site/servidor, que geralmente estará dentro de uma diretiva <VirtualHost *:443>. Adicione o comando SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1 dentro desse bloco. A configuração final ficará assim:

<IfModule mod_ssl.c>
  <VirtualHost *:443>
    DocumentRoot "/var/www/OwnCloud"
    ServerName owncloud.exemplo.com.br
    <Directory "/var/www/OwnCloud">
      Options None
      Require all granted
    </Directory>

    # Passar cabeçalhos de autenticação
    SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1

    SSLCertificateFile /etc/letsencrypt/live/exemplo.com.br/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/exemplo.com.br/privkey.pem
    Include /etc/letsencrypt/options-ssl-apache.conf
  </VirtualHost>
</IfModule>

Depois de adicionar a configuração, reinicie o Apache para aplicar as mudanças:

systemctl restart apache2

Após aplicar essa alteração, as requisições de autenticação feitas pelo ownCloud passarão o cabeçalho Authorization corretamente, resolvendo o erro de autenticação e permitindo que os clientes (Windows, Linux, etc.) conectem sem problemas.

Conclusão

Esse pequeno ajuste no Apache pode ser a chave para resolver o erro de cabeçalho de autenticação no ownCloud. Garantir que o Authorization seja passado corretamente para o servidor é fundamental para o bom funcionamento do serviço. Se você estiver enfrentando problemas semelhantes, basta adicionar essa linha no seu arquivo de configuração do Apache, e você deve ver os clientes funcionando corretamente.

Rolar para cima