1

야쿠 세히핑을 피하기 위해 최대한 많은 컨텍스트를 제공하려고 노력할 것입니다.인증을 제거하기 위해 Apache에 프록시 구성

우리는 공용 인터넷에서도 제공되는 내부 애플리케이션을 보유하고 있습니다. 이 응용 프로그램은 IBM i에서 여러 인스턴스의 Apache에서 실행됩니다. 이러한 인스턴스의 대부분은 말하자면 '환영 페이지'역할을하는 인스턴스 하나를 제외하고 http 기본 인증을 필요로합니다. 이 '시작 페이지'에는 인증이 없지만 사용자가 앱의 다른 부분 (예 : 인증 및 다른 Apache 인스턴스에서 실행)으로 이동할 수있는 링크가있는 탐색 허브의 역할을합니다.

또한 별도의 서버에서 실행되는 Confluence (wiki 응용 프로그램)에 저장된 설명서가 있습니다. 이 위키 응용 프로그램은 인증을 요구하지 않고 문서를 표시 할 수 있지만 인증하면 문서를 편집 할 수 있습니다 (물론 권한이 있다고 가정 할 때). 그러나 핵심은 인증을 요구하지 않고 문서가 표시된다는 것입니다.

내 문제는 Confluence의 문서가 내부적으로나 인터넷을 통해 액세스 할 때도 주 응용 프로그램 내에서 액세스 할 수 있기를 원하지만 문서가 다소 민감하므로 액세스 할 수 없기를 바랍니다. 큰 인터넷.

우리가 생각해 낸 해결책은 리버스 프록시를 사용하는 것이 었습니다. 주 응용 프로그램의 /help/에 대한 요청이 컨플릭트 응용 프로그램에 프록시되도록 주 응용 프로그램에서 Apache 인스턴스를 구성했습니다. 따라서 Confluence 응용 프로그램은 인터넷에 직접 노출되지 않습니다.

그러나 여기에서 문제가 시작됩니다.

우리가 인증을 필요로하지 않는 기본 응용 프로그램 아파치 인스턴스를 통해 /help/ 단지 프록시, 다음 문서가 문제없이 주요 응용 프로그램에서 사용할 수있는 경우 - 그러나 당신이 인증을 필요로하지 않기 때문에, 그것은 모든 사람에게 사용할 수 인터넷도 마찬가지입니다.

인증을 요구하는 주 응용 프로그램 Apache 인스턴스를 통해 '/ help /'를 대신 프록시하면 기본 인증 정보가 주 응용 프로그램 서버에서 Confluence 서버로 전달 된 것처럼 인증을 받게됩니다 왜냐하면 메인 어플리케이션을 사용하는 모든 사람들이 Confluence 서버에 계정을 가지고 있지 않기 때문입니다. (그런 경우에는 정상적으로 작동하지만 대다수의 사용자는 Confluence 계정을 갖지 않습니다.) 그래서

(이 시점에서 가능한 야크 면도 경고), 당신이 서버 B에 서버 A에서 프록시 구성을 설정하면, HTTP 기본 인증을 처리 할 때 것처럼 보인다 및 설정 http A 기본 인증을 요구하는 프록시 A를 서버에 연결하면 인증 정보는 서버 B로 바로 전달되며이 시나리오에서는 서버 B가 인증 정보를 예상하지 않으므로 불만을 제기합니다.

이 문제에 대한 나의 해결책은 인증을 필요로하는 Apache 인스턴스를 사용하여 프록시에 대한 인증을 /help/으로 요구하지만 다른 서버 (서버 C)에 /help/ 프록시를 사용하는 것입니다. 이 서버 C는 인증을 요구하지 않지만 인터넷에 노출되지 않습니다. 그리고 서버 C는 실제 Confluence 서버에 /help/을 프록시하도록 구성됩니다.

proxy-chain-auth - 기본적으로 프록시 체인이있는 경우 인증 정보가 체인을 따라 자동으로 보내지지 않음을 나타내는 환경 변수입니다.

아아, 작동하지 않았습니다. 서버 C가 실제로 인증 정보를 프록시 한 것으로 나타 났던 인증 오류가 발생했습니다. 비록 내가 proxy-chain-auth을 설정하지 않았더라도.

내 야쿠 쉐이 여행입니다.

Confluence에 저장된 설명서에 일종의 인증이 필요하지만 Confluence가 아닌 기본 응용 프로그램에서 인증을 받도록 구성하고 싶습니다.

(인터넷을 통해 액세스 할 필요가 없어도 Confluence 서버는 아무 문제없이 네트워크에있는 누구든지 볼 수 있기 때문에 문제가되지 않았 음).

내 질문에 충분히 만족할 수 있기를 바랍니다. 주된 목표를 달성하기 위해 다른 방향으로 향하고 있음에도 불구하고 주 응용 프로그램 (또는 그 문제에 대해서는 Confluence)을 변경할 수 없다는 경고가 있습니다. HTTP 기본 인증을 사용하지 못하도록합니다.

아이디어가 있으십니까?

추신. Confluence 서버에서 문서를 가져 오려면 실제로 REST API를 사용하여 페이지 내용을 검색합니다. 관련성이 있는지는 모르지만 그럴 경우 명확하게 작성하려고합니다.

답변

2

문제에 대한 해결책은 매우 간단했습니다.

인증을 필요로하지 않는 두 번째 프록시의 경우 인증 헤더를 제거하도록 Apache 구성을 변경해야했습니다.

RequestHeader unset Authorization 

이렇게하면 인증 정보가 두 번째 프록시에서 Confluence로 전달되지 않습니다.