Có thể thêm xác thực truy cập HTTP cơ bản qua HAProxy không?


25

Tôi đã thiết lập thành công HAProxy trước máy chủ HTTP mà tôi không kiểm soát được .

Có thể định cấu hình HAProxy để thêm Xác thực HTTP đơn giản cho tất cả các trang web, lưu ý rằng tôi không thể định cấu hình này trên phụ trợ không?

Cảm ơn,

Lars

Câu trả lời:


36

Tôi đã phải tự làm việc này ngay hôm nay (vì IIS 7.5 thật sự không hỗ trợ xác thực bất cứ thứ gì ngoại trừ tài khoản người dùng Windows hoặc AD!) ...

Đây là tất cả các mã

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

Tôi đã ghi lại nó tốt hơn một chút ở đây: http://nbevans.wordpress.com/2011/03/03/cestation-learnings-of-ha-proxy-for-make-benefit/


2
+1 Chỉ muốn thêm rằng bạn cũng có thể thêm các dòng cuối cùng trong một frontendđịnh nghĩa thay vì backendnếu bạn muốn. Và realm xxxxmột phần là tùy chọn.
UpTheCux

Tôi đã thực hiện điều này nhưng điều xảy ra là trên mỗi cuộc gọi api tiếp theo tôi nhận được cửa sổ bật lên yêu cầu xác thực. Điều này làm cho nó không thể sử dụng được. Có cách nào mà nó được hỏi một lần sau đó được lưu trong bộ nhớ cache cho phần còn lại của các cuộc gọi không? Điều đó sẽ rất hữu ích.
shshnk

2

Tôi nghĩ điều này thực sự có thể, nhưng ngay bây giờ tôi chỉ có thể tìm thấy một ví dụ để giúp bạn đi được nửa đường ...

http://haproxy.1wt.eu/doad/1.4/doc/configuration.txt là kinh thánh của bạn.

Kiểm tra phần 3.4 (Danh sách người dùng)

Nó bắt đầu:

Có thể kiểm soát quyền truy cập vào các phần frontend / backend / lắng nghe hoặc thống kê http bằng cách chỉ cho phép người dùng được xác thực và ủy quyền. Để làm điều này, cần phải tạo ít nhất một danh sách người dùng và xác định người dùng.

Phần đó giải thích cách thiết lập danh sách người dùng. Ví dụ trong phần đó khá toàn diện để sao chép nếu bạn cần.

Tiếp theo, cần tìm ra cách áp dụng nó ... Tôi nghĩ rằng câu trả lời nằm trong phần 7.5.3 (Kết hợp ở Lớp 7)

Tôi nghĩ rằng nó có thể đơn giản như sử dụng sau đây trong một 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.

Một lần nữa, tôi đã không kiểm tra nó, nhưng đó là những gì tôi đọc tài liệu như đề xuất là có thể.

Tôi hy vọng đó là đủ để bạn bắt đầu?


Tiếng hét tốt, tôi đoán bây giờ tôi đã quen với nó!
đắt tiền

Mặc dù nhìn lại lần nữa, nó dường như không được cập nhật trong nhiều tháng ... Tôi đã không kiểm tra những thay đổi cụ thể giữa điều đó và bức tường văn bản nhưng cho rằng có một số.
đắt tiền

1
Đó là liên kết kinh thánh 'tốt hơn' là 404'ing. Thậm chí tốt hơn sẽ là haproxy.org/#docs này . Ở đó bạn tìm thấy các goodies HTML / văn bản hướng dẫn.
Glenn Plas

Liên kết để nhận hướng dẫn sử dụng: cbonte.github.io/haproxy-dconv .
slm

1

Nếu bạn đang tìm cách làm điều này cho mục đích xác thực một

option httpchk

cấu hình, giải pháp đơn giản hơn này hoạt động: /programming/13325882/haproxy-solr-healthcheck-with-authentication


1
Chào mừng bạn đến với Lỗi Máy chủ! Mặc dù điều này về mặt lý thuyết có thể trả lời câu hỏi, tốt hơn là nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo.
Vô vọngN00b
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.