เป็นไปได้ที่จะเพิ่มการตรวจสอบสิทธิ์การเข้าถึง HTTP พื้นฐานผ่าน HAProxy?


25

ฉันได้ติดตั้ง HAProxy เรียบร้อยแล้วต่อหน้าเซิร์ฟเวอร์ HTTP ซึ่งฉันไม่สามารถควบคุมได้

เป็นไปได้ไหมที่จะกำหนดค่า HAProxy เพื่อเพิ่มSimple HTTP Authenticationให้กับเว็บไซต์ทั้งหมดโดยคำนึงถึงว่าฉันไม่สามารถกำหนดค่านี้ในแบ็กเอนด์ได้หรือไม่?

ขอบคุณ

ลาร์ส

คำตอบ:


36

ฉันต้องทำวันนี้ด้วยตัวเอง (เพราะ 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/


2
+1 แค่อยากจะเพิ่มว่าคุณยังสามารถเพิ่มบรรทัดสุดท้ายในfrontendคำนิยามมากกว่าที่backendคุณต้องการ และrealm xxxxส่วนที่เป็นตัวเลือก
UpTheCreek

ฉันใช้สิ่งนี้ แต่สิ่งที่เกิดขึ้นคือทุกครั้งที่ api โทรมาฉันจะได้รับป๊อปอัพเพื่อขอการรับรองความถูกต้องซึ่งทำให้ใช้งานไม่ได้ มีอยู่ที่ไหนมันถูกถามอีกครั้งแล้วเก็บไว้สำหรับการโทรที่เหลือ? นั่นจะเป็นประโยชน์มาก
shshnk

2

ฉันคิดว่ามันเป็นไปได้จริง แต่ตอนนี้ฉันสามารถหาตัวอย่างเพื่อให้ได้ครึ่งทาง ...

http://haproxy.1wt.eu/download/1.4/doc/configuration.txtเป็นพระคัมภีร์ของคุณ

ตรวจสอบหัวข้อ 3.4 (รายการผู้ใช้)

มันเริ่มต้น:

เป็นไปได้ที่จะควบคุมการเข้าถึงส่วนหน้า / แบ็กเอนด์ / ฟังหรือสถิติ 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.

อีกครั้งฉันยังไม่ได้ทดสอบ แต่นั่นคือสิ่งที่ฉันอ่านเอกสารตามคำแนะนำที่เป็นไปได้

ฉันหวังว่าจะเพียงพอสำหรับคุณที่จะเริ่มต้น?


สวัสดีค่ะฉันเดาว่าตอนนี้ฉันชินแล้ว!
ราคาแพง

แม้ว่าจะดูอีกครั้งดูเหมือนจะไม่ได้รับการอัปเดตในเดือน ... ฉันยังไม่ได้ตรวจสอบการเปลี่ยนแปลงเฉพาะระหว่างสิ่งนั้นกับผนังข้อความ แต่คิดว่ามีบางอย่าง
แพ่งราคา

1
ลิงค์พระคัมภีร์ที่ 'ดีกว่า' คือ 404 แม้จะดีกว่านี้haproxy.org/#docs ที่นั่นคุณพบสารพัด HTML / text
เกล็นพลาส

การเชื่อมโยงสำหรับการที่คู่มือ: cbonte.github.io/haproxy-dconv
slm

1

หากคุณต้องการทำสิ่งนี้เพื่อจุดประสงค์ในการตรวจสอบความถูกต้องของ

option httpchk

config โซลูชันที่เรียบง่ายนี้ใช้งานได้: https://stackoverflow.com/questions/13325882/haproxy-solr-healthcheck-with-authentication


1
ยินดีต้อนรับสู่ Server Fault! ในขณะที่สิ่งนี้อาจตอบคำถามในทางทฤษฎีมันก็ควรจะรวมส่วนสำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง
HopelessN00b
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.