Czy można dodać podstawowe uwierzytelnianie dostępu HTTP za pośrednictwem HAProxy?


Odpowiedzi:


36

Musiałem to zrobić dzisiaj dzisiaj (ponieważ IIS 7.5 dziwnie nie obsługuje uwierzytelniania na niczym innym niż konta użytkowników Windows lub AD!) ...

Oto cały kod

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

Udokumentowałem to nieco lepiej tutaj: http://nbevans.wordpress.com/2011/03/03/cultural-learnings-of-ha-proxy-for-make-benefit/


2
+1 Chciałem tylko dodać, że możesz również dodać ostatnie wiersze w frontenddefinicji, a nie backendjeśli chcesz. A realm xxxxczęść jest opcjonalna.
UpTheCreek

Zaimplementowałem to, ale tak się dzieje, że przy każdym kolejnym wywołaniu interfejsu API pojawia się okienko z prośbą o uwierzytelnienie. Czy w każdym razie jest to raz pytane, a następnie buforowane dla pozostałych połączeń? To byłoby bardzo pomocne.
shshnk,

2

Myślę, że jest to faktycznie możliwe, ale w tej chwili mogę znaleźć tylko przykład, który doprowadzi cię do połowy ...

http://haproxy.1wt.eu/download/1.4/doc/configuration.txt to twoja Biblia.

Sprawdź sekcję 3.4 (listy użytkowników)

Zaczyna się:

Możliwe jest kontrolowanie dostępu do sekcji frontend / backend / Listen lub statystyk HTTP, zezwalając tylko uwierzytelnionym i autoryzowanym użytkownikom. Aby to zrobić, konieczne jest utworzenie co najmniej jednej listy użytkowników i zdefiniowanie użytkowników.

W tej sekcji wyjaśniono, jak skonfigurować listę użytkowników. Przykład w tej sekcji jest dość wyczerpujący, więc skopiuj go, jeśli zajdzie taka potrzeba.

Następnie musisz dowiedzieć się, jak go zastosować ... Myślę, że odpowiedź leży w sekcji 7.5.3 (Dopasowywanie w warstwie 7)

Myślę, że może to być tak proste, jak użycie następującego polecenia w pliku 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.

Znów go nie testowałem, ale przeczytałem dokumentację, ponieważ sugerowanie jest możliwe.

Mam nadzieję, że to wystarczy, aby zacząć?


Dobry krzyk, chyba już się do tego przyzwyczaiłem!
Drogi

Chociaż patrząc na to jeszcze raz, wydaje się, że nie był aktualizowany od miesięcy ... Nie sprawdziłem konkretnych zmian między tym a ścianą tekstu, ale zakładam, że jest kilka.
Drogi

1
Ten „lepszy” link biblijny to 404 ”. Jeszcze lepiej byłoby haproxy.org/#docs . Znajdziesz tam manualne gadżety HTML / tekst.
Glenn Plas,

Linki do podręczników: cbonte.github.io/haproxy-dconv .
slm

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.