2016-11-30 5 views
0

스프링 SAML 확장자PingFederate을 IDP 서버로 사용하고 있습니다. 이제 글로벌 로그 SP (서비스 제공 업체)로부터 시작하면 SP 세션이 아닌 IDP 서버 세션 만 무효화됩니다. 전역 로그인 후에도 다시 로그인을 시도하면 (SP가 시작된 경우) 사용자 로그인 자격 증명을 묻지 않고 직접 로그인 할 수 있습니다. SAML 단일 세션에서 relayState 매개 변수를 포함하는 방법 Spring SAML 확장자를 사용하는 로그 아웃 요청

나는 그것을 잘 (PingFederate에서 제공하는 데모 SP 응용 프로그램)가 작동 중이면 다른 SP 응용 프로그램이 있지만 SAML 단일 로그 아웃 요청에 RelayState 값 매개 변수가없는 것으로 나타났습니다. securityContext.xml 파일에 relayState 속성을 추가하려고했지만 (아래 스 니펫 참조) 여전히 relayState는 로그 아웃 요청 매개 변수의 일부가 아닙니다.
<bean id="samlEntryPoint" class="org.springframework.security.saml.SAMLEntryPoint"> 
    <property name="defaultProfileOptions"> 
     <bean class="org.springframework.security.saml.websso.WebSSOProfileOptions"> 
      <property name="relayState" value="http://192.168.1.73:8080/adeptia"/> 
      <property name="includeScoping" value="true"/> 
     </bean> 
    </property> 
</bean> 

날 RelayState 값 매개 변수를 사용하는 것입니다 무엇 가능한 값을 그리고 어떻게 SAML 로그 아웃 요청에 포함하는 것을 알려 주시기 바랍니다.

답변

0

SingleLogoutProfileImpl - 방법 sendLogoutRequest을 확장하여 릴레이 상태를 전달할 수 있어야합니다. 값을 얻으려면 context.setRelayState()으로 전화 한 다음 super를 사용하여 나머지 로직을 수행 할 수 있습니다.

응답 단계에서 릴레이 값은 컨텍스트 개체 인 processLogoutResponse에서 다시 사용할 수 있습니다.

스프링 SAML에서 단일 로그 아웃 중에 릴레이를 전송하는 데 명시적인 기능은 없습니다.