2014-07-17 6 views
8

보통 내 봄 SAML 기반 서비스 제공 업체 (SP) 구현이 잘 작동과 일치하지 않지만, 때때로이 오류가 반환받는 엔드 포인트는 SAML 응답

[2014-07-17 16:00:58.767] boot - 1078 DEBUG [http-bio-80-exec-1] --- BaseMessageDecoder:  Successfully decoded message. 
[2014-07-17 16:00:58.767] boot - 1078 DEBUG [http-bio-80-exec-1] --- BaseSAMLMessageDecoder: Checking SAML message intended destination endpoint against receiver endpoint 
[2014-07-17 16:00:58.768] boot - 1078 DEBUG [http-bio-80-exec-1] --- BaseSAMLMessageDecoder: Intended message destination endpoint: https://prismasp.cloud.reply.eu:443/MIUR_PRISMA-2.1-WEBUI/saml/SSO/alias/defaultAlias 
[2014-07-17 16:00:58.768] boot - 1078 DEBUG [http-bio-80-exec-1] --- BaseSAMLMessageDecoder: Actual message receiver endpoint: http://prismasp.cloud.reply.eu:443/MIUR_PRISMA-2.1-WEBUI/saml/SSO/alias/defaultAlias 
[2014-07-17 16:00:58.768] boot - 1078 ERROR [http-bio-80-exec-1] --- BaseSAMLMessageDecoder: SAML message intended destination endpoint 'https://prismasp.cloud.reply.eu:443/MIUR_PRISMA-2.1-WEBUI/saml/SSO/alias/defaultAlias' did not match the recipient endpoint 'http://prismasp.cloud.reply.eu:443/MIUR_PRISMA-2.1-WEBUI/saml/SSO/alias/defaultAlias' 
[2014-07-17 16:00:58.782] boot - 1078 DEBUG [http-bio-80-exec-1] --- SAMLProcessingFilter: Incoming SAML message is invalid 
org.opensaml.xml.security.SecurityException: SAML message intended destination endpoint did not match recipient endpoint 
... 

내가 사용을 (활성화 SSL톰캣 7봄 보안)을 HTTP 엄격한 전송 보안 (HSTS)의 기본 설정으로.

이 오류를 해결할 방법이 있습니까?


참고 : vdenotaris/spring-boot-security-saml-sample : 샘플 소스 코드는 Github에서에 있습니다.

+0

idp 끝점에 구성된 프로토콜에서 's'가 누락 된 것 같습니다. "https"를 기대하지만 "http"를받는 것으로 보입니다. –

+0

현재 구성은 정상적으로 작동하지만 위와 같이 오류가 발생하는 경우도 있습니다. 나는 그 문제가 다른 것이라고 생각하고있다. 어쩌면 수동으로 메타 데이터를 설정했는지, 어쩌면 특정 설정을 놓친 것일 수도 있습니다 (필자는 가정합니다). – vdenotaris

+0

링크를 통해 "Whitelabel Error Page"가 표시됩니다. 메타 데이터가 아닙니다. 또한 "정상적으로 작동합니다"라고 말하면 유선 상태입니다. 항상 작동하거나 작동하지 않아야합니다! 나는 그 의정서와 관련이 있다고 생각합니다. 어쩌면 때로는 http와 때로는 https에서 연결할 수 있습니다. 그리고 당신의 idp는 https를 기대합니다. –

답변

16

나는 당신의 문제가 무작위로 발생하는 이유를 모르지만 적어도 하나의 수정 방법은 현재 SAMLContextProviderImpl 대신 SAMLContextProviderLB을 구성하는 것입니다.

SAMLContextProviderLB은 일반적으로 스프링 SAML에 리버스 프록시 또는로드 밸런서에서 사용되는 공개 URL을 알리는 데 사용되지만,이 경우 스프링 SAML이 HTTPS를 사용한다고 생각하도록 할 수 있습니다. 자세한 내용은 Spring SAML manual의 9.1 장을 참조하십시오.

MetadataGenerator 콩을 적절하게 설정해야합니다. 그렇게하지 않으면 생성 된 메타 데이터가 http 또는 https를 사용하여 응용 프로그램에 처음 요청했는지 여부에 달려 있기 때문입니다. 다시 말하지만,이 모든 것은 documented입니다.

+0

예, 2,000 회에 도달하면 더 이상 평판이 올라가지 않습니다. 또한 편집 할 때 편집 내용이 승인 될 때까지 기다릴 필요가 없으며 다른 사람들이 제안한 편집 내용을 검토 패널에 액세스 할 수 있습니다. – TylerH

+0

(평소와 같이) 정말 고마워요. 자, 잘 작동합니다. – vdenotaris

관련 문제