2017-11-12 13 views
0

두 개의 다른 IDPS와 두 개의 다른 애플리케이션 URL을 사용하는 방법을 알아낼 수 없습니다. 나는 weblogic에서 작업했으나 spring saml 보안을 사용하는 스프링 부트 응용 프로그램에서는 작동하지 않았습니다.두 개의 IDP와 다른 URL을 사용하는 SAML 애플리케이션

중요한 부분 중 하나는 두 개의 서로 다른 URL이 있다는 것입니다.

  1. 외부 사용자를위한 프록시 URL. 이 URL은 네트워크에 없기 때문에 사용해야합니다. a. 이 사용자는 IDP-A를 누르십시오.
  2. 내부 사용자의 내부 URL입니다. b. 이 사용자는 IDP-B를 누르십시오

각 IDP로 보낸 메타 데이터는 동일한 엔티티 ID이지만 다른 끝점 URL을 사용합니다.

우리가 한 가지 발견 한 것은 각 IDP를 공격 할 수 있었지만 항상 내부 URL로 리디렉션했습니다. 나는 AssertionConsumerServiceUrl이 항상 내부 URL로 설정된다는 것을 알아 차렸다. 내부 URL은 반환되는 이유를 설명한다. 우리의 웹 로직 구현에서는 AssertionConsumerServiceUrl을 보내지 않습니다.

AssertionConsumerServiceUrl을 제외 할 수 있습니까?

시도하려는 구성이 가능한지 알고 계십니까?

답변

0

서비스에서 MetadataManager bean을 autowire 한 다음 addMetadataProvider를 호출하여 메타 데이터를 초기화 할 수 있습니다.

IDP에서 가져온 메타 데이터에서 entityId를 가져올 수 있으며 url : 'http : /// saml/login? idp ='에 추가 할 수 있습니다.이 URL을 누르면 적절한 IDP 로그인으로 리디렉션됩니다.

+0

AssertionConsumerServiceUrl을 URL A로 설정하려고하면 AssertionConsumerServiceUrl을 보내지 않아야합니다. IDP가 다른 URL에서 왔음에도 불구하고 IDP가 해당 URL로 리다이렉트하기 때문입니다. AssertionConsumerServiceUrl을 보내지 않는 방법을 알고 계십니까? –

+0

기본 구성이 spring saml의 참조에서 발견되면 단 하나의 SP 메타 데이터 만 생성됩니다. 그 이유는 abc.com과 xyz.com이라는 두 개의 URL이 있다면 두 URL 중 하나에서 서버에 대한 첫 번째 요청이 AssertionConsumerServiceURL을 설정합니다. 예를 들어 서버에 대한 첫 번째 요청이 abc.com에서 나온 경우 ACS URL은 abc.com으로 설정됩니다. 그 후에도 xyz.com을 통해 SAML 요청을 보내더라도 SP 메타 데이터는 URL에 abc.com을 갖게됩니다. 따라서이 솔루션은 응용 프로그램에 액세스해야하는 많은 프록시 URL만큼 많은 로컬 SP 메타 데이터를 초기화해야합니다. –