[SPRING] SAMLException : 응답의 InResponseToField가 보낸 메시지와 일치하지 않습니다.
SPRINGSAMLException : 응답의 InResponseToField가 보낸 메시지와 일치하지 않습니다.
우리는 봄 보안 saml로 보호되는 응용 프로그램을 개발 중입니다.
인증은 정상적으로 작동하지만 프로덕션 환경에서는 다음 워크 플로에 하나의 문제가 있습니다.
이제 애플리케이션에서 다음과 같은 예외가 발생합니다.
org.opensaml.common.SAMLException : 응답의 InResponseToField가 보낸 메시지 arGdsZwJtHzTDjQP1oYqbjNO에 해당하지 않습니다.
이 워크 플로를 처리하여 사용자가 성공적으로 로그인 한 후 응용 프로그램을 사용할 수있는 방법은 무엇입니까? 귀하의 답변에 감사드립니다!
해결법
-
==============================
1.applicate 할 때 AuthnRequest가 생성되면 요청에 응용 프로그램이 유지하는 ID가 있습니다. IdP의 해당 응답에는 InResponseTo 속성이 동일한 ID 값으로 설정되어 있어야 응용 프로그램이 응답이 보낸 요청에 대한 것임을 확인할 수 있어야합니다.
applicate 할 때 AuthnRequest가 생성되면 요청에 응용 프로그램이 유지하는 ID가 있습니다. IdP의 해당 응답에는 InResponseTo 속성이 동일한 ID 값으로 설정되어 있어야 응용 프로그램이 응답이 보낸 요청에 대한 것임을 확인할 수 있어야합니다.
그러나 사용자가 요청 (www.login-server.com/adfs/ls/?SAMLRequest=xxx ...)이 포함 된 adfs 링크를 북마크에 추가하면 응용 프로그램은 해당 요청을 완전히 잊었습니다. 즉, 더 이상 요청 ID를 어딘가에 보관하지 않으며 응답을 확인할 수 없습니다.
해결책은 사용자에게 www.login-server.com/adfs/ls/?SAMLRequest=xxx ... 링크를 북마크하지 않도록 지시하는 것입니다. 대신 응용 프로그램에서 새 요청을 생성하고 ADFS로 보낼 수있는 링크를 책갈피에 추가해야합니다.
-
==============================
2.우리는 spring saml 설정을 다음과 같이 변경하여 문제를 해결했습니다.
우리는 spring saml 설정을 다음과 같이 변경하여 문제를 해결했습니다.
from https://stackoverflow.com/questions/45206873/samlexception-inresponsetofield-of-the-response-doesnt-correspond-to-sent-mess by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] @RestController로 봄 보안 - JSONish CustomAuthenticationProvider 응답 (0) | 2019.05.19 |
---|---|
[SPRING] 스프링 보안 변경 spring_security_login 폼 (0) | 2019.05.19 |
[SPRING] Android 웹 서비스 호출에서 HTTP 406 가져 오기 (0) | 2019.05.19 |
[SPRING] SQL 스크립트에서 다른 SQL 파일을 참조 할 수 있습니다. (0) | 2019.05.19 |
[SPRING] Spring Batch를 이용한 복잡한 XML; StaxEventItemWriter; Jaxb2Marshaller (0) | 2019.05.19 |