2014-11-14 2 views
0

우리는 Spring SAML 확장을 사용하는 응용 프로그램을 가지고 있으며 SSOCircle에 대해 localhost에서 실행되는 SP로 설정했습니다. 우리는 이제 고객의 테스트 환경에 배치했으며 고객의 IDP와 함께 작동하도록 노력하고 있습니다.SAML DNS 확인 문제

http://myapp-test.acme.com:8080/myapp/saml/SSO으로 대체하여 메타 데이터를 IDP에 제공했습니다.

인증 후에, 우리는 로그에서 볼 :

o.s.s.s.m.MetadataGeneratorFilter - 생성 된 기본 개체의 기본 URL http://someappserver.acme.com:8080/myapp 첫 번째 서버 요청의 값을 기준으로.

org.opensaml.common.SAMLException : 오아시스 : 이름 : TC : SAML : 의도 된 목적지 http://myapp-test.acme.com:8080/myapp/saml/SSO 프로필 항아리에 대한 엔드 포인트 URL이 일치하지 않는 2.0 : 프로파일 : SSO를 : 브라우저에서

을 브라우저 창에서 요청이 http://someappserver.acme.com:8080/myapp/saml/SSO으로 변경되었습니다.

그래서 http://myapp-test.acme.com:8080/myapp/saml/SSO 우리가이 문제를 처리하기 위해 우리의 코드/구성을 변경할 수있는 방법

http://someappserver.acme.com:8080/myapp/saml/SSO

로 해결? 필자는 메타 데이터를 앱 서버에 하드 코딩해야한다고 생각하지 않습니다.

답변

3

서비스 공급자 메타 데이터의 URL은 서비스 제공 업체가 IDP로부터 SAML 메시지를받는 실제 URL과 일치해야합니다. 이 경우 두 가지가 다릅니다.

이 속성을 설정하지 않고, 봄 SAML은 entityBaseURL을 정의하고에 따라 그것으로 메타 데이터를 생성
<bean id="metadataGeneratorFilter" class="org.springframework.security.saml.metadata.MetadataGeneratorFilter"> 
    <constructor-arg> 
     <bean class="org.springframework.security.saml.metadata.MetadataGenerator"> 
      <property name="entityBaseURL" value="http://myapp-test.acme.com:8080/myapp"/> 
     </bean> 
    </constructor-arg> 
</bean> 

:

당신은 예를 들어, 올바른 URL로, 재산 entityBaseURL를 제공하여 securityContext.xml 변경 콩 metadataGeneratorFilter를 업데이트 할 수 있습니다 먼저 요청을받습니다. 응용 프로그램이 여러 URL에서 사용할 수있는 경우 IDP가 실제로 메시지를 보내는 URL과 다른 URL 일 수 있습니다.

응용 프로그램 서버에서 볼 수있는 내부 URL이 발신자가 사용하는 URL과 다른 경우 (DNS 확인과 같이) (예 : DNS 확인과 같이) Spring SAML이 특정 공용 URL 뒤에 배포 된 것으로 생각하도록 강제 할 수 있습니다 에 콩 contextProvider :

<bean id="contextProvider" class="org.springframework.security.saml.context.SAMLContextProviderLB"> 
    <property name="scheme" value="http"/> 
    <property name="serverName" value="myapp-test.acme.com"/> 
    <property name="serverPort" value="8080"/> 
    <property name="includeServerPortInRequestURL" value="true"/> 
    <property name="contextPath" value="/myapp"/> 
</bean> 

당신은 봄 SAML 매뉴얼 장 Reverse proxies and load balancers에서 자세한 내용을 확인할 수 있습니다.