O proxy reverso do Apache continua exigindo credenciais básicas de autenticação

1

Estou configurando o Apache na frente do Hawtio - um console de gerenciamento de JVM hospedado pelo Karaf. Embora o Hawtio seja atendido pelo Jetty e protegido pela implementação do JAAS do Karaf, queremos que o Apache adicione o Basic Auth para que possamos protegê-lo adicionalmente - por exemplo, de ataques de força bruta com Fail2Ban.

No entanto, apesar dos seguintes conselhos, como este e this , a autenticação básica do Apache continua aparecendo em vez de pedir as credenciais apenas uma vez. A página de login do Hawtio é carregada após dois pedidos de credenciais, mas depois de inserir os detalhes do log de Hawtio, o Apache continua aparecendo na sua página de login. Cheguei a entrar nas credenciais vinte vezes, mas ainda pede mais!

Eu estou sentindo falta de algo óbvio?

Aqui está minha configuração: -

<VirtualHost *:80>
  ServerAdmin admin@localhost
  ServerName hawtio.mydomain.com

  ErrorLog ${APACHE_LOG_DIR}/error.log
  LogLevel warn

  CustomLog ${APACHE_LOG_DIR}/access.log combined

  # suppress rule checking for Hawtio stuff
  SecRuleRemoveById 950901 960010 970003 970014 981257 981318 981407 981205 981222 981240 981220

  <Location />
    ProxyPass http://application-server:8765/
    ProxyPassReverse http://application-server:8765

    AuthUserFile /etc/users
    AuthName "Restricted area"
    AuthGroupFile /dev/null 
    AuthType Basic
    Require valid-user

    RequestHeader unset Authorization
  </Location>

</VirtualHost> 

Eu tentei várias variações, inclusive com o grupo <Proxy> em vez de <Location /> , mas sem sucesso. De acordo com esta postagem , adicionei RequestHeader unset Authorization para ver se era Jetty que estava reclamando, mas nem a presença nem a ausência dessa diretiva fazem diferença.

O site funciona perfeitamente se eu remover as diretivas básicas de autenticação.

Obrigado por qualquer indicação.

    
por Jeremy Gooch 03.01.2014 / 16:45

1 resposta

1

Você precisa definir um cookie ou armazenar em cache as credenciais de alguma forma. Eu vi isso ao configurar o Apache com senhas de uso único. mod_auth_radius suporta AuthRadiusCookieValid. Não tenho certeza do que você usaria aqui.

    
por 14.01.2014 / 18:37