我们正在尝试在应用程序中配置多个身份提供程序以支持不同类型的 SSO。问题是对于未经身份验证的请求,应用程序不知道要重定向到哪个 IDP。我们可以根据域名确定使用哪个 IDP。这不是问题。问题是更改过滤器以重定向到该特定 IDP 而不是第一个找到的 IDP 的方式。
我想知道在 Spring Security 或其 SAML2 库中是否有一种简单的方法来支持它。
我可以以某种方式修改元数据以将其重定向到我自己的 URL(然后在那里有一些自定义代码),或者使身份验证过滤器根据某些标准选择正确的 IDP。
更新
当前 yaml 配置:
spring:
security:
saml2:
relyingparty:
registration:
idpone:
identityprovider:
entity-id: https://idpone.com
sso-url: https://idpone.com
verification:
credentials:
- certificate-location: "classpath:saml/idpone.crt"
idptwo:
identityprovider:
entity-id: https://idptwo.com
sso-url: https://idptwo.com
verification:
credentials:
- certificate-location: "classpath:saml/idptwo.crt"