2014-04-21 2 views
0

우리는 응용 프로그램 EAR이 비 SSL HTTP Listener로 구성된 appServer에 배포되는 웹 응용 프로그램 아키텍처를 사용하고 있습니다. 모든 요청은 F5 Load Balancer -> Web Server -> App Server를 통해 라우팅됩니다.Opensso with F5로드 밸런서 구성 문제

Load Balancer에서 모든 HTTP 요청이 포트 443에 설정된 Https로 전달되는 iRule을 설정했으며 애플리케이션이 정상적으로 작동합니다. 이제 OpenSSO 연합 솔루션과 SAML 기술을 사용하여 SSO를 구현하려고합니다. 우리는 앱 서버에 비 SSL http 리스너 구성으로 opensso를 배치했습니다.

url xhttp : // domain_name/opensso (dummy protocol) URL을 사용하여 opensso에 액세스하려고하면 xhttps : // domain_name/opensso로 Load Balancer에 설정된 iRule에 따라 리디렉션됩니다. 그러나 opensso의 나타나는 구성 페이지에서 서버 URL은 xhttps : // domain_name 대신 xhttp : // domain_name으로 채워집니다. 마찬가지로 opensso 구성을 통해 모든 URL 속성을 채우는 데 동일한 방법이 사용됩니다. 그래서 ssoadm GUI를 사용하여 메타 데이터를 생성하려고하면 양식 작업 속성에서 url은 'http'로 형성되고 요청 방법은 Opensso 규칙에 따라 'POST'로 전달됩니다. 그러나로드 밸런서 규칙에 따라 'https'로 리디렉션되면 Request 메소드가 게시물 대신 'GET'으로 전달되고 opensso 유효성 검사가 실패하고 'HTTP Post Protocol이 필요합니다'라는 오류가 발생합니다.

문제는 기본적으로 opensso URL 속성이 "http"대신 "https"로 채워 져야합니다. 여기서 잘못된 설정이 무엇인지 알고 싶습니다. 이 문제를 어떻게 해결할 수 있을까요? 감사.

답변

0

그 대답은 실제로 응용 프로그램 서버가 아니라 응용 프로그램 자체에 있다고 생각합니다. HTTP가 아닌 HTTPS 체계로 URL을 생성하는 것은 서블릿에 프록시가되고 있음을 나타내야합니다. 톰캣 또는 유도체를 사용하는 경우

, 다음과 같은 포함하도록 server.xml을 수정할 수 있습니다

proxyPort="443" 
proxyName="www.domain_name.com" 
scheme="https" 
secure="true" 
+0

어떤 SSL 인증서가 위의 구성 작업에 앱/웹 서버에 설치 될 수 있나요 (307) 위치 응답? 현재로서는 Load Balancer에만 SSL 인증서를 설치했습니다. – Robin

+0

그럴 필요는 없습니다. –

0

당신이 307 HTTP 상태 코드와 HTTPS로 리디렉션 부하 분산을 구성 할 수 원래 요청 메소드를 사용하도록 클라이언트에 알립니다. POST가 원래의 요청 메소드 인 경우 리디렉션 후에 클라이언트는 GET 대신 POST를 계속 사용합니다.

HTTP를 : "https://[HTTP::host][HTTP::uri]"