Live Server에서 OneLogin Saml 인증이 작동하고 AWS로드 밸런서 설정에 문제가 있습니다. 문제는 AWS 와일드 카드 HTTPS 인증서를 사용하여 포트 80과 443 모두에서 수신 대기하는 클래식로드 균형 조정기가 있다는 것입니다. 로드 밸런서는 두 포트를 내 서버의 포트 80으로 전달하고 HTTP_X_FORWARDED_PROTO 헤더를 추가합니다.AWS로드 밸런서가있는 Onelogin SAML
부하 분산 장치가 아닌 일반 Dev 서버를 사용할 때 SAML 인증이 정상적으로 작동합니다. 나는 적절한 응답을 되찾고있다. 그러나 살기 위해 살짝 누르면 SAML 응답은 RELAY STATE없이 빈 POST 사전을 반환합니다.
POST가 비어있는 이유는 무엇입니까?
내 설정은 다음과 같습니다 데브 서버에서 SAML 커넥터
- 파이썬 사회적 인증은
- 나는 방화벽 뒤에 내 라이브 서버를 사용하여 응답이 비어
SSL 인증서 나로드 밸런서가 443을 추가 헤더가있는 포트 80에서 서버로 전달하는 것과 관련이 있다고 생각합니다.
def _create_saml_auth(self, idp):
"""Get an instance of OneLogin_Saml2_Auth"""
config = self.generate_saml_config(idp)
request_info = {
'https': 'on' if self.strategy.request_is_secure() else 'off',
'http_host': self.strategy.request_host(),
'script_name': self.strategy.request_path(),
'server_port': self.strategy.request_port(),
'get_data': self.strategy.request_get(),
'post_data': self.strategy.request_post(),
}
if 'HTTP_X_FORWARDED_PROTO' in self.strategy.request.META:
request_info['https'] = 'on' if self.strategy.request.META.get('HTTP_X_FORWARDED_PROTO') == 'https' else 'off'
request_info['server_port'] = self.strategy.request.META.get('HTTP_X_FORWARDED_PORT')
을하지만 여전히 Onelogin에서 SAML 응답에 empyy의 POST 사전을 반환하지 : 나는 전달 된 헤더를 분석하여 인증 요청을 만들어이 문제를 해결했습니다. 하지만 intial url은 HTTPS로 제대로 생성됩니다.
비슷한 문제가있는 사람이 있습니까? 나는 붙어있어 Onelogin이 일하기를 좋아할 것입니다.
감사합니다.
건배,
필
이 스레드를 검토하십시오 : https://github.com/onelogin/python-saml/issues/75#issuecomment-108647017 – smartin