[英]Select Identity Provider Locally with Spring Security's SAML 2.0
我正在使用 Spring Security 的 SAML 2.0 将我的服务提供商连接到多个身份提供商。
Spring 的 SAML 2.0 文档中的所有内容都有意义。 我已经阅读了许多有用的教程,包括本教程,它们与我现有的代码相似。
但是,我缺少在哪里以及如何为给定用户选择身份提供者。
我了解SAMLDiscovery可用于将身份提供者选择委托给第三方服务。 我也了解如何配置多个身份提供者。 但我正在寻找一种方法来运行我自己的代码(即检查数据库),然后为所选的身份提供者(不是第三方服务)触发 SAML 请求。 我预计在SAMLEntryPoint被击中时会出现这种情况。 我已经看到在初始请求中提到指定 EntityID。 这有关系吗?
我正在尝试执行 SP 启动的 SAML 2.0 SSO。 有人可以指出我可以根据当前用户手动指定 IdP 的位置吗?
据我所知,SAML 没有为你想要的东西提供任何机制。 SAML 发现用于找出您的应用程序存在哪个 IdP。
您的问题是,您在尝试登录之前不知道用户是谁,当他登录时,这意味着他已经知道他想使用哪个 IdP。
所以你有这些选择:
要考虑的一件事。 从安全的角度来看,向黑客提供任何信息都是不好的做法,因此选项 2,3 确实会向黑客揭示哪个 IdP 属于哪个用户。 IMO 这不是一个很大的违规行为,可以实施。
这不是一个真正的 SAML 问题,因为任何解决方案都会在标准之外发生,并且涉及在要求他们进行身份验证之前识别用户。
一般模式
可扩展性
希望我上面的评论表明 IAM 系统是一个工具箱,应该是可扩展的。 我在 Curity 工作,我们使用可以组合的身份验证器和操作的概念 - 例如对于 MFA,但一个常见的选项如下:
这是最近的一篇文章来展示它是如何工作的 - 用户名身份验证器是测试部分。
供应商
不幸的是,并非所有提供商都提供您想要的选项。 我意识到我的回答并不能立即解决您的问题,但我希望它有助于澄清要求。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.