【问题标题】:How can I get SAML to redirect to the right IdP?如何让 SAML 重定向到正确的 IdP?
【发布时间】:2015-07-21 13:12:13
【问题描述】:

我们希望为我们的所有用户提供与 SP 类似的发布商的无缝访问。 SP 是独立的,并为许多不同的公司提供服务,也就是说,我们每个人都有独立的 IdP 解决方案。

我们希望它像没有身份验证一样工作,即用户在 Internet 上找到一个链接并点击它。如果网站为我们的用户提供特殊服务(我们付费),我们希望他们使用我们自己的 IdP(但仅限于我们自己的用户)对他们进行身份验证。

我们当前的 SAML 设置要求 SP 支持 IP 地址识别和/或使用特定域名,即用户访问特定域名或来自我们的 IP 范围,以便 SP 知道要重定向到哪个 IdP,但如果我们的用户来自任何其他 IP 地址并且不访问特定 URL,则系统将丢失。

这是怎么解决的?

我认为每次用户通过身份验证(来自我们的网络,SP 识别)时由 SP 提供的 cookie 可以解决这个问题,但这是标准吗?这并不是一个真正的解决方案,因为它要求我们的用户至少从我们的网络访问过他们一次!

【问题讨论】:

  • 您使用哪种 SAML 服务?它不提供任何限制 IP 范围的选项吗?还是我答错了?
  • 我正在使用 SimpleSAMLPHP 但没关系。 :-) 这有点复杂,但重点是我的公司和许多其他公司使用相同的 SP,例如发布商,并且他们能够确定与哪个 IdP 交谈,他们使用 IP 地址识别或特定域名.我将根据我们的目标更新我的问题。

标签: identity saml-2.0 federated-identity


【解决方案1】:

这与其说是一个 SAML 问题,不如说是一个身份提供者发现问题,不是特定于协议的。发布者应该如何知道/决定应该通过 SAML 或任何其他协议将特定用户重定向到您的 IdP?这在一般意义上不是一个容易处理的问题。当涉及到这些特殊用户/服务时,发布者和您需要就两个实体(您和这些发布者)之间的合同达成一致。

不涉及域或 IP 范围的 IdP 发现的一种可能实现是基于用户身份的 IdP 动态查找。用户单击链接,导航到发布者站点并尝试使用(例如)他的身份 myname@mycompany.com 登录。然后,发布者可以在其特殊用户/服务/IdP 的身份存储中查找 mycompany.com,并确定不应允许该用户使用本地(发布者管理的)凭据登录。相反,应该通过 SAML 身份验证请求将用户发送到某个第 3 方 IdP。发布者可以在用户登录时执行此操作,但在用户有机会输入其发布者管理的凭据之前,无论是通过您最喜欢的 AJAX 技术还是其他形式的 UI 满足。

发布者可以使用持久性 cookie,以便该用户下次访问该发布者时,他们会知道该用户“属于”第 3 方 IdP 并相应地重定向。

【讨论】:

    猜你喜欢
    • 2019-09-02
    • 1970-01-01
    • 2016-04-28
    • 2018-07-21
    • 1970-01-01
    • 1970-01-01
    • 2020-07-03
    • 2019-02-19
    • 2012-08-18
    相关资源
    最近更新 更多