2014-12-05 183 views
1

我们需要配置两个不同的IdP。到目前为止这么好,但问题是我们需要为其中一个IdP配置forceAuthN。另一件事是一个IdP使用HTTP-Artifact来绑定SSO,而另一个使用HTTP-POST。因此,我们似乎需要两个不同的SP元数据。使用Spring Security生成两个不同的SP元数据SAML'

什么是最好的方法?如果我们自己编写元数据,我想这不是问题,但我们希望Spring Security SAML能够生成这些元数据。

我们试图通过扩展MetadataGeneratorFilter类来配置两个不同的metadataGeneratorFilters。现在的问题是,只对SP的一个元数据是建立,而原因仅仅是在processMetadataInitialization方法如下一行:

if (manager.getHostedSPName() == null) { ... 

的MetadataManager类可以,因为据我所知,只持有一个hostedSPName ,不是两个。

回答

1

您不需要单独的元数据来控制选择绑定或forceAuthN。这些设置在发送给IDP的AuthnRequest中配置。只要确保您的SP元数据包含HTTP-Artifact和HTTP-POST端点(默认情况下就是这样)。

AuthnRequest设置使用WebSSOProfileOptions的实例进行配置。根据您要连接的IDP以及您的要求,扩展类SAMLEntryPoint,覆盖方法getProfileOptions并返回正确配置的WebSSOProfileOptions。详情请见manual

forceAuthN in AuthnRequest使用属性forceAuthn进行配置。您可以选择IDP使用哪个绑定(工件与后期)将SAML消息传递回属性为assertionConsumerIndex的SP。

在一个实例中,不能使用自动MetadataGenerator生成两组不同的元数据集。为了做到这一点,你可以使用pre-configured metadata - 但我认为你的情况并不需要。

+0

感谢您的建议,弗拉基米尔。它完美的作品。 – 2014-12-10 12:18:00

相关问题