Spring security 我们如何在元数据管理器中为同一IdP支持两个元数据提供程序?

Spring security 我们如何在元数据管理器中为同一IdP支持两个元数据提供程序?,spring-security,spring-saml,Spring Security,Spring Saml,我们有一个作为服务提供商激活的应用程序。我们允许客户在系统中配置其IdP元数据字段或上载元数据文件。当两个客户试图在我们的系统中配置相同的IdP元数据时,我们遇到了一个问题,因为CachingMetadataManager将在缓存映射键(IdP实体ID)上发生冲突 在我们为以下情况做准备时,支持这一要求的最佳方式是什么?客户1向我们的系统中添加IdP元数据以用于IdP X(如SSO circle),然后客户2向我们的系统中添加稍微不同的(无论出于何种原因)IdP元数据以用于相同的IdP X 我们

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

在我们为以下情况做准备时,支持这一要求的最佳方式是什么?客户1向我们的系统中添加IdP元数据以用于IdP X(如SSO circle),然后客户2向我们的系统中添加稍微不同的(无论出于何种原因)IdP元数据以用于相同的IdP X

我们意识到,对于这两个客户,IdP元数据通常应该完全相同,但在某些情况下,它们是不同的,Spring Security SAML库是否支持这一点


谢谢

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

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

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


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

请参考我在此处发布的解决方案-只需保持每个IdP元数据的EntityID唯一即可

真不幸:(谢谢你的回复!你能回答这个问题吗?