我们需要配置两个不同的IdP。到目前为止一直很好,但问题是我们需要为其中一个IdP配置forceAuthN。另一件事是,一个IdP正在使用HTTP-Artifact来绑定SAP,而另一个正在使用HTTP-POST。因此,我们似乎需要两个不同的SP元数据。
最好的方法是什么?我想如果我们自己编写元数据并不是问题,但我们希望Spring Security SAML能够生成这些元素。
我们尝试通过扩展MetadataGeneratorFilter类来配置两个不同的metadataGeneratorFilter。现在的问题是只构建了一个SP的元数据,原因只是processMetadataInitialization方法中的以下行:
if (manager.getHostedSPName() == null) { ...
据我所知,MetadataManager类只能容纳一个hostedSPName,而不是两个。
答案 0 :(得分:2)
您无需单独的元数据即可控制绑定选择或forceAuthN
。这些设置在发送给IDP的AuthnRequest
中配置。只需确保您的SP元数据包含HTTP-Artifact和HTTP-POST端点(默认情况下都是这样)。
使用AuthnRequest
的实例配置WebSSOProfileOptions
设置。扩展类SAMLEntryPoint
,覆盖方法getProfileOptions
并返回正确配置的WebSSOProfileOptions
,具体取决于您要连接的IDP以及您的要求。详细信息位于manual。
使用属性forceAuthN
配置AuthnRequest
中的forceAuthn
。您可以选择IDP使用哪种绑定(工件与帖子)将SAML消息传递回具有属性assertionConsumerIndex
的SP。
您不能使用自动MetadataGenerator在一个实例中生成两组不同的元数据。为了做到这一点,您可以使用pre-configured metadata - 但我不认为您的情况需要它。