【问题标题】:How can I do secure SAML with multiple tenants?如何使用多个租户进行安全 SAML?
【发布时间】:2015-05-29 18:35:38
【问题描述】:

我说的是 IDP 发起的工作流。

我正在为 saml 使用 this passport 策略。在“Security and signatures”标题下,它建议提供 IDP 的证书。

此证书将在我定义策略 AFAIK 时插入。

在多租户应用程序的情况下,在用户尝试登录之前,我无法知道要使用哪个证书,到那时再使用证书就太晚了,不是吗?

如果在收到 SAML 请求之前我不知道要使用哪个证书,我该如何验证多个租户的 SAML 请求?

我想我需要这样的东西:

  1. 用户发送信息来识别他们尝试登录的租户
  2. 使用正确的证书创建 SAML 策略。
  3. SAML 进程开始。

或者也许我只是想错了,而对于拥有一个相对安全的登录过程来说,这些都不是必需的?

如果这个问题过于宽泛,如果您离开 cmets 帮助我缩小范围,或者将我引导到我应该阅读的资源,我将不胜感激。


如果不清楚,我正在存储:

  • SSO 网址
  • 发行者网址
  • 公共证书

此信息与租户相关联,因此一旦我从 IDP 获得个人资料信息,我就可以确定应将用户定向到哪个租户。我也可以在确定租户后使用此信息进行验证。

也许我可以使用公共证书进行一些“事后”验证?

【问题讨论】:

    标签: node.js security passport.js saml


    【解决方案1】:

    不确定这是否会有所帮助,因为我不熟悉护照。也就是说,当我设计多租户 SAML 服务提供者 (SP) 到身份提供者 (IdP) 数据流时,我在发出 SAML 请求之前实施了 IdP 发现服务。为了使 IdP Discovery 工作,有一些策略,但似乎总是最有效的一种策略是将 URL 中的租户名称作为子域,例如租户.yourcompany.com。然后,当在 IdP 发现服务中处理该 URL 时,它可以正确格式化对 IdP 服务器的 SAML 请求。希望对您有所帮助。

    【讨论】:

    • 感谢您教我“IdP 发现”一词。不过,我不确定 tenant.mycompany.com 是否可以在没有设置的情况下使用,但现在我可以使用另一个谷歌工具!
    • 另一个艺术术语是 WAYF,“你来自哪里”。看看switch.ch/aai/support/tools/wayf
    【解决方案2】:

    我认为这样做会起作用:

    1) 向租户管理员提供其唯一的租户 ID

    2) 让他们将 SSO URL 设置为“mySite.com/login/[tenantId]”之类的内容,

    3) 从 url 中获取tenantId,并使用它来选择正确的证书进行身份验证。

    这与将中间件添加到我的服务器以调用创建护照策略的函数一起使用。

    【讨论】:

    • 您好@Houseman,我们很想知道您是如何做到这一点的!您如何将动态参数(在您的情况下为“[tenantId]”)添加到 SSO URL,这似乎是(在我们的情况下)SAML 策略配置的静态参数...
    • @FrançoisBeaune tenantId 对于特定租户来说是静态的。他们会将其唯一 ID 发送给我们,我们将使用它来确定在服务器端使用哪个证书。
    猜你喜欢
    • 2017-01-03
    • 2012-11-02
    • 1970-01-01
    • 2014-04-08
    • 1970-01-01
    • 1970-01-01
    • 2015-10-08
    • 1970-01-01
    • 2022-11-11
    相关资源
    最近更新 更多