Можно добавить базовую аутентификацию доступа HTTP через HAProxy?

Я успешно настроил HAProxy перед сервером HTTP, который я не могу контролировать.

Можно ли настроить HAProxy для добавления простой HTTP-аутентификации на все сайты, учитывая, что я не могу настроить это на бэкэнде?

Спасибо,

Lars

3 ответа

Решение

Я должен был сделать это сегодня сам (потому что IIS 7.5 причудливо не поддерживает аутентификацию против чего-либо, кроме учетных записей пользователей Windows или AD!)...

Вот весь код

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

Я задокументировал это немного лучше здесь: http://nbevans.wordpress.com/2011/03/03/cultural-learnings-of-ha-proxy-for-make-benefit/

Я думаю, что это действительно возможно, но сейчас я могу только найти пример, чтобы получить вас на полпути...

http://haproxy.1wt.eu/download/1.4/doc/configuration.txt - ваша библия.

Ознакомьтесь с разделом 3.4 (Списки пользователей)

Это начинается:

Можно управлять доступом к разделам frontend/backend/listen или http-статистике, разрешая только аутентифицированным и авторизованным пользователям. Для этого необходимо создать хотя бы один список пользователей и определить пользователей.

В этом разделе объясняется, как настроить список пользователей. Пример в этом разделе довольно исчерпывающий, поэтому скопируйте его, если нужно.

Далее нужно выяснить, как его применить... Я думаю, что ответ лежит в разделе 7.5.3 (Соответствие на уровне 7)

Я думаю, что это может быть так же просто, как использовать следующее в 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.

Опять же, я не проверял это, но это то, что я прочитал документацию, поскольку предположения возможны.

Надеюсь, этого достаточно, чтобы вы начали?

Если вы хотите сделать это в целях аутентификации

option httpchk

config, это более простое решение работает: https://stackoverflow.com/questions/13325882/haproxy-solr-healthcheck-with-authentication

Другие вопросы по тегам