É possível adicionar autenticação básica de acesso HTTP via HAProxy?


Respostas:


36

Eu tive que fazer isso hoje mesmo (porque o IIS 7.5 estranhamente não oferece suporte à autenticação em nada além de contas de usuário do Windows ou AD!) ...

Aqui está todo o código

userlist UsersFor_AcmeCorp
  user joebloggs insecure-password letmein

backend HttpServers
  .. normal backend stuff goes here as usual ..
  acl AuthOkay_AcmeCorp http_auth(UsersFor_AcmeCorp)
  http-request auth realm AcmeCorp if !AuthOkay_AcmeCorp

Documentei um pouco melhor aqui: http://nbevans.wordpress.com/2011/03/03/cultural-learnings-of-ha-proxy-for-make-benefit/


2
+1 Só queria adicionar que você também pode adicionar as linhas finais em uma frontenddefinição, e não backendse desejar. E a realm xxxxpeça é opcional.
UpTheCreek

Eu implementei isso, mas o que acontece é que, em todas as chamadas subsequentes da API, recebo o pop-up solicitando autenticação. Isso o torna inutilizável. Existe alguma maneira em que é solicitado uma vez em cache para o restante das chamadas? Isso seria muito útil.
shshnk

2

Eu acho que isso é realmente possível, mas agora só posso encontrar um exemplo para levá-lo a meio caminho ...

http://haproxy.1wt.eu/download/1.4/doc/configuration.txt é a sua Bíblia.

Confira a seção 3.4 (Listas de usuários)

Começa:

É possível controlar o acesso às seções de front-end / back-end / listen ou estatísticas http, permitindo apenas usuários autenticados e autorizados. Para fazer isso, é necessário criar pelo menos uma lista de usuários e definir usuários.

Essa seção explica como configurar uma lista de usuários. O exemplo nessa seção é bastante exaustivo, então copie isso, se necessário.

Em seguida, precisamos descobrir como aplicá-lo ... Acho que a resposta está na seção 7.5.3 (Correspondência na camada 7)

Eu acho que pode ser tão simples quanto usar o seguinte em um ACL:

http_auth(userlist)
http_auth_group(userlist) <group> [<group>]*
  Returns true when authentication data received from the client matches
  username & password stored on the userlist. It is also possible to
  use http_auth_group to check if the user is assigned to at least one
  of specified groups.

Mais uma vez, não testei, mas é o que li na documentação, pois é possível sugerir.

Espero que seja o suficiente para você começar?


Bom grito, acho que agora estou acostumado!
Caro

Apesar de analisá-lo novamente, parece não ter sido atualizado há meses ... Não verifiquei alterações específicas entre isso e a parede do texto, mas suponho que exista alguma.
Caro

11
Esse link 'melhor' da Bíblia é 404'ing. Melhor ainda seria este haproxy.org/#docs . Lá você encontra itens manuais em HTML / texto.
Glenn Plas

Links para obter os manuais: cbonte.github.io/haproxy-dconv .
Slm

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.