Mar*_*sel 6 spring-security spring-saml
我在多租户应用程序中使用Spring SAML来提供SSO.不同的租户使用不同的URL来访问应用程序,并且每个租户都配置了单独的身份提供程序.在给定用于访问应用程序的URL的情况下,如何自动分配正确的身份提供者?
例:
我看到我可以在url(http://tenant1.myapp.com?idp=my.idp.entityid.com)中添加参数idp,SAMLContextProvider将选择具有该实体ID的身份提供者.我开发了一个数据库支持的MetadataProvider,它将租户主机名作为初始化参数,从该主机中获取链接到该主机名的数据库的元数据.现在我想我需要一些方法来迭代元数据提供程序,以将元数据的entityId链接到主机名.但是,我不知道如何获取元数据的entityId.这将解决我的问题.
您可以看到如何从MetadataProviderin方法中解析可用的entityID MetadataManager#parseProvider.请注意,通常每个提供商都可以提供多个IDP和SP定义,而不仅仅是一个.
或者,您可以ExtendedMetadataDelegate使用您自己的类进一步扩展,包括您希望的任何其他元数据(如entityId),然后只需重新键入MetadataProvider您的自定义类,并通过迭代数据从那里获取信息MetadataManager.
如果我是你,我会采取一些不同的方法.我会扩展SAMLContextProviderImpl,覆盖方法populatePeerEntityId并执行主机名/ IDP的所有匹配.有关详细信息,请参阅原始方法
| 归档时间: |
|
| 查看次数: |
2724 次 |
| 最近记录: |