我的应用程序现在使用 Spring Security SAML扩展作为 SAML 2.0服务提供商运行。我用身份提供者(ssocircle)交换了IDP / SP元数据文件,SSO工作正常。
但是,我的应用程序应该部署在 N 数量的计算机上,并且动态部署/计算机对的数量是一项业务要求(从1-20开始)< / strong>即可。
我是否必须为每个部署/计算机都有一个SP元数据文件,并在IDP中注册每个SP元数据文件以将其添加到他的信任圈,或者是否有办法让一个SP文件包含该信息关于所有服务器,因为它是相同的部署单元但不是同一个实例。
换句话说,如果我有5台机器(MyApp1,MyApp2,MyApp3,MyApp4,MyApp5)安装相同的应用程序,SP元数据文件可以创建一次不是5次。由此,我会将1个SP元数据文件注册到IDP,而不是拥有5个SP元数据文件(其中唯一的区别是机器的URL):
此外,有没有办法在MyApp1上对用户进行身份验证,以便在其他服务器(MyApp2,MyApp3,MyApp4,MyApp5)上进行身份验证?
答案 0 :(得分:1)
只要应用程序位于不同的URL上,您就应该为每个URL使用单独的元数据。
您可以使用技巧并使用SAMLContextProviderLP配置每个应用程序,使用虚构方案,主机和端口(即假设所有5个应用程序都使用相同的公共URL)。但这意味着IDP的相同断言可用于登录这5个应用程序中的任何一个。如果您想要使用此路由,请查看Spring SAML手册中有关反向代理和负载平衡的章节。