HAProxy를 통해 기본 HTTP 액세스 인증을 추가 할 수 있습니까?


25

내가 제어 할없는 HTTP 서버 앞에서 HAProxy를 성공적으로 설정 했습니다 .

백엔드에서이를 구성 할 수 없다는 점을 염두에두고 모든 사이트 에 단순 HTTP 인증 을 추가하도록 HAProxy를 구성 할 수 있습니까?

감사,

라스

답변:


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.

다시 한번, 나는 그것을 테스트하지 않았지만 그것이 제안하는 것이 가능하다고 문서를 읽었습니다.

시작하기에 충분하기를 바랍니다.


좋은 외침, 나는 지금 막 익숙해 졌다고 생각한다!
Pricey

다시 살펴 보았지만 몇 달 동안 업데이트되지 않은 것 같습니다 ... 나는 그 벽과 텍스트 사이의 특정 변경 사항을 확인하지 않았지만 일부 내용이 있다고 가정합니다.
Pricey

1
'더 나은'성경 링크는 404입니다. 이 haproxy.org/#docs 가 더 좋습니다 . 거기 당신은 HTML / 텍스트 수동 케이크를 찾을 수 있습니다.
Glenn Plas

설명서에서 얻기를위한 링크 : cbonte.github.io/haproxy-dconv .
slm

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.