我们如何在Metadata Manager中为同一个IdP支持两个元数据提供程序?

时间:2015-01-08 16:53:03

标签: spring-security spring-saml

我们有一个作为服务提供商激活的应用程序。我们允许客户在我们的系统中配置他们的IdP元数据字段或上传元数据文件。当两个客户尝试在我们的系统中配置相同的IdP元数据时,我们遇到一个问题,因为CachingMetadataManager会在缓存映射键(IdP实体ID)上发生冲突。

支持此要求的最佳方式是什么,因为我们正在准备客户1将IdP元数据添加到我们的IdP X系统(例如SSO圈子)然后客户2添加略有不同(无论出于何种原因)的情况我们系统的IdP元数据用于相同的IdP X.

我们意识到两个客户的IdP元数据通常应该完全相同,但在某些情况下它们是不同的,是否在Spring Security SAML库中以某种方式支持?

由于

3 个答案:

答案 0 :(得分:1)

Spring SAML不支持多次导入具有相同实体ID的元数据(它只支持多租户)。这种用例需要定制Spring SAML库。

将元数据的实体ID更改为唯一值会破坏在单点登录期间执行的检查 - 该值必须与发出SAML断言时IDP使用的值相同。

如果您希望帮助实施此类解决方案,请随时联系Spring SAML的商业支持。

答案 1 :(得分:0)

您可以在CachingMetadataManager中添加尽可能多的IDP,但在IDP.xml中,entityID值必须是唯一的。因此,根据您的要求保持IDP.xml相同,并更改所需的任何内容,并将entityID更新为唯一值

答案 2 :(得分:0)

请参阅我在此处发布的解决方案 - 保持每个IdP元数据的entityIds唯一

Spring SAML extension for multiple IDP'S