Frage Möglichkeit, grundlegende HTTP-Zugangsauthentifizierung über HAProxy hinzuzufügen?


Ich habe HAProxy erfolgreich vor einem HTTP-Server eingerichtet, den ich habe keine Kontrolle über.

Ist es möglich, HAProxy zum Hinzufügen zu konfigurieren? Einfache HTTP-Authentifizierung zu allen Seiten, unter Berücksichtigung, kann ich dies nicht auf dem Backend konfigurieren?

Vielen Dank,

Lars


25
2018-02-24 14:31


Ursprung




Antworten:


Ich musste das heute selbst tun (weil IIS 7.5 bizarr eigentlich nichts gegen die Authentifizierung von Windows-Benutzerkonten oder AD unterstützt!) ...

Hier ist der ganze Code

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

Ich habe es hier ein bisschen besser dokumentiert: http://nbevans.wordpress.com/2011/03/03/cultural-learnings-of-ha-proxy-for-make-benefit/


35
2018-03-03 20:37



+1 wollte nur hinzufügen, dass Sie auch die letzten Zeilen in einem hinzufügen können frontend Definition statt backend falls Sie es wollen. Und das realm xxxx Teil ist optional. - UpTheCreek
Ich habe das implementiert, aber was passiert, ist, dass ich bei jedem folgenden API-Aufruf das Popup nach Authentifizierung frage. Dies macht es unbrauchbar. Gibt es dort, wo es einmal gefragt wird, dann für den Rest der Anrufe zwischengespeichert? Das wäre sehr hilfreich. - shshnk


Ich denke, das ist tatsächlich möglich, aber im Moment kann ich nur ein Beispiel finden, um dich zur Hälfte zu bringen ...

http://haproxy.1wt.eu/download/1.4/doc/configuration.txt ist deine Bibel.

Check out Abschnitt 3.4 (Benutzerlisten)

Es beginnt:

Es ist möglich, den Zugriff auf Frontend / Backend / Listen-Abschnitte zu steuern oder zu http stats, indem nur authentifizierte und autorisierte Benutzer zugelassen werden. Dazu müssen mindestens eine Benutzerliste angelegt und Benutzer definiert werden.

In diesem Abschnitt wird erläutert, wie Sie eine Benutzerliste einrichten. Das Beispiel in diesem Abschnitt ist ziemlich erschöpfend, also kopieren Sie es, wenn Sie müssen.

Als nächstes müssen Sie herausfinden, wie Sie es anwenden ... Ich denke, die Antwort liegt in Abschnitt 7.5.3 (Matching auf Layer 7)

Ich denke, es könnte so einfach sein wie die folgenden in einem 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.

Auch hier habe ich es nicht getestet, aber das ist, was ich in der Dokumentation gelesen habe.

Ich hoffe, das reicht, um loszulegen?


2
2018-02-24 16:47



Guter Schrei, ich denke, ich bin jetzt nur daran gewöhnt! - PriceChild
Obwohl ich es nochmal angeschaut habe, scheint es seit Monaten nicht aktualisiert worden zu sein ... Ich habe nicht nach bestimmten Änderungen zwischen dieser und der Wand des Textes gesucht, sondern angenommen, dass es welche gibt. - PriceChild
Diese 'bessere' Bibelverknüpfung ist 404 '. Noch besser wäre das haproxy.org/#docs . Dort finden Sie HTML / Text Handbuch Goodies. - Glenn Plas
Links für den Zugriff auf die Handbücher: cbonte.github.io/haproxy-dconv. - slm


Wenn Sie dies zum Zweck der Authentifizierung eines suchen

option httpchk

config funktioniert diese einfachere Lösung: https://stackoverflow.com/questions/13325882/haproxy-solr-healthcheck-with-authentication


1
2018-03-27 21:30



Willkommen bei Serverfehler! Während dies theoretisch die Frage beantworten könnte, es wäre vorzuziehen um die wesentlichen Teile der Antwort hier einzubeziehen und den Link als Referenz bereitzustellen. - HopelessN00b