web-dev-qa-db-ja.com

HAProxyを介して基本的なHTTPアクセス認証を追加できますか?

私は制御できないHTTPサーバーの前にHAProxyを正常にセットアップしました。

Simple HTTP Authentication をすべてのサイトに追加するようにHAProxyを構成することは可能ですか?これをバックエンドで構成できないことに注意してください?

おかげで、

ラース

25
Lars Schneider

今日自分でこれを行わなければなりませんでした(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/

36
nbevans

これは実際には可能だと思いますが、今のところ、あなたを途中まで連れて行くための例しか見つけることができません...

http://haproxy.1wt.eu/download/1.4/doc/configuration.txt は聖書です。

セクション3.4(ユーザーリスト)を確認してください。

始まるよ:

認証および承認されたユーザーのみを許可することで、フロントエンド/バックエンド/リッスンセクションまたはhttp統計へのアクセスを制御できます。これを行うには、少なくとも1つのユーザーリストを作成し、ユーザーを定義する必要があります。

そのセクションでは、ユーザーリストの設定方法について説明します。そのセクションの例は非常に網羅的であるため、必要に応じてコピーしてください。

次に、それを適用する方法を理解する必要があります...答えはセクション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.

繰り返しますが、私はそれをテストしていませんが、可能であることを示唆しているので、ドキュメントを読みました。

あなたが始めるのにそれで十分だと思いますか?

2
Pricey

認証を目的としてこれを行う場合は、

option httpchk

設定、このより簡単なソリューションは機能します: https://stackoverflow.com/questions/13325882/haproxy-solr-healthcheck-with-authentication

1
Dan Richelson