Qual é a maneira mais fácil de criar um proxy HTTP que adiciona autenticação básica às solicitações?

4

Estou tentando usar um serviço fornecido por um servidor que requer autenticação HTTP básica, mas o aplicativo que estou usando não suporta autenticação. O que eu gostaria de fazer é criar um proxy que permita que meu aplicativo sem autenticação conecte-se por meio do proxy (que adicionará as informações de autenticação) ao servidor que requer autenticação. Tenho certeza de que isso pode ser feito, no entanto estou sobrecarregado com o número de proxies lá fora e não consegui encontrar uma resposta como fazer isso.

Basicamente parece que tudo que eu quero fazer é ter um proxy para veicular esta URL:

http://username:password@remoteserver/path

como este URL:

http://proxyserver/path

Eu posso executá-lo no Linux, mas também se eu puder executá-lo também no Windows. Código aberto ou pelo menos livre é uma obrigação. Uma grande vantagem é se é bastante simples de configurar.

    
por joshdoe 23.02.2011 / 14:44

2 respostas

3

Autenticação Básica normalmente é uma String Codificada em Base64 de "nome de usuário: senha" e uma "Autorização" de Cabeçalho HTTP.

Adicionando o seguinte a um Apache2 vHost, você deve estar bem:

<Location /path>
    RequestHeader set Authorization "Basic <base64string>"
</Location>

ProxyPass /path http://backend/path
ProxyPassReverse /path http://backend/path

Você pode codificar com base64 a parte "username: password" no link (por exemplo) . O exemplo acima precisa de mod_headers e mod_proxy (deve estar disponível para ambos - Linux e Windows - com o Apache2.

    
por 23.02.2011 / 15:37
0

Você também pode modificar solicitações (adicionar / alterar cabeçalhos) em alguns outros pacotes, como o WinGate no Windows.

Se você vir uma caixa de diálogo pop-up do navegador, isso geralmente significa que você está recebendo uma resposta 407 de um proxy ou 401 do servidor final, não é necessariamente uma indicação do uso da autenticação básica HTTP.

Você pode registrar os campos de desafio de autenticação ou apenas usar o wireshark para ver o que está acontecendo.

    
por 09.05.2016 / 02:09