2016-10-06 6 views
0

현재 HAProxy의 http-request auth 작업을 사용하여 리소스에 대한 액세스를 조건부로 제한합니다. Apache 환경 변수 HTTP_AUTH_USER을 에뮬레이트하여 성공적인 승인과 관련된 사용자 이름을 백엔드로 전달되는 요청의 헤더에 추가하고 싶습니다.HAProxy는 기본 인증과 관련된 사용자 이름을 얻습니다.

나는 작업과 관련된 그룹을 http_auth_group을 통해 얻을 수 있지만 오히려 사용자 이름을 가지고있을 것입니다.

이 작업을 웹 서버로 옮길 수는 있지만 프록시를 통해 2 곳에서 할 수있을 때 적은 수의 사용자 이름과 암호를 관리하지 않을 것입니다.

+1

['http_auth_group' 가져 오기] (http://cbonte.github.io/haproxy-dconv/1.6/configuration.html#7.3.6-http_auth_group)는 그룹을 인수로 사용합니다. 문서에 따르면 사용자 이름을 반환합니다. 이 가져 오기를'http-request set-header'와 함께 사용해 보았습니까? –

+0

Michael,'http-request add-header X-Username % [http_auth_group (GROUP_NAME)] '이 (가) 트릭을 한 것 같습니다. 감사! – glennstar

답변

2

http_auth_group layer 7 sample fetch은 언뜻보기에는 조금 혼란 스럽지만 "group"이라는 단어가 나타나 그룹을 반환한다는 의미입니다. 사실, 요청을 특정 그룹의 구성원 자격 증명으로 인증하지 않으면 그룹을 인수로 사용하고 값을 반환하지 않습니다.이 경우 사용자 이름을 반환합니다.

따라서 그룹의 구성원이 요청을 인증했는지 또는 사용자 이름을 추출했는지 판단하기위한 진실성을 테스트하는 두 가지 목적이 있습니다. 그래서 ...

http-request set-header X-Username %[http_auth_group(GROUP_NAME)] 

이 ... (이미있는 경우) 들어오는 요청에 어떤 X-Username: 헤더 (대소 문자 구분)를 제거하고, 인증 된 사용자의 사용자 이름과 새로운 X-Usernane: 헤더를 채 웁니다, 그렇지 않으면 공백 값 (구성에서 익명 요청을 허용하는 경우).

그것은 사용하는 것이 중요 set-header, 하지add-header, 헤더를 추가하면 보안 위험을 제시 들어오는 요청에 일치하는 헤더를 제거하지 않기 때문. 특정 이유가없는 한 항상 설정하십시오.

+0

트래픽이 도착할 수있는 다른 경로 (주 IP 주소)가 있고 그에 따라 백엔드가 그에 따라 다른 작업을 수행하기 때문에 현재 설정에 'del-header'가 있습니다. 보안 위험에 대해 훌륭한 점을 밝힐 때마다 투표하십시오. – glennstar