我怎样才能保护与多个租户的SAML?
我正在谈论IDP发起的工作stream程。
我正在使用saml的这个 passport
策略。 在“ 安全和签名 ”标题下,它build议提供IDP的证书。
当我定义战略AFAIK时将插入此证书。
在多租户应用程序的情况下,我将无法知道使用哪个证书,直到用户尝试login,并且在那时使用证书将会迟到,是不是?
如果在SAML请求进来之前我无法知道使用哪个证书,那么如何与多个租户validationSAML请求呢?
我想我需要这样的东西:
- 用户发送标识他们尝试login的租户的信息
- SAML策略是使用正确的证书创build的。
- SAML过程开始。
或者,也许我只是在想它错了,没有一个是真正需要有一个相对安全的login过程?
如果这个问题太广泛,如果你留下意见来帮助我缩小范围,或者指导我阅读资源,我将非常感激。
如果不清楚,我正在储存:
- SSOurl
- 发行人url
- 公共证书
这个信息与租户相关联,所以一旦我从IDP获得了个人资料信息,我就可以确定用户应该被引导到哪个租户。 在确定承租人确认事物之后,我也可以使用这些信息。
也许我可以使用公共证书做一些“事后”validation?
不知道这是否会有所帮助,因为我不熟悉护照。 也就是说,在devise多租户SAML服务提供商(SP)到身份提供商(IdP)数据stream时,我在发出SAML请求之前实施了IdP发现服务。 为了使IdP Discovery的工作有一些策略,但似乎总是最有效的方法是将URL中的租户名称作为子域名,例如tenant.yourcompany.com。 然后,在IdP发现服务中处理该URL时,可以正确地将SAML请求格式化为IdP服务器。 希望有所帮助。
我认为它会这样做的工作:
1)向租户pipe理员提供其唯一的租户ID
2)让他们将SSO URL设置为“mySite.com/login/[tenantId]”,
3)从URL中获取tenantId并使用它来select正确的证书进行身份validation。
这与将中间件添加到我的服务器以调用创build护照策略的函数一起工作。