多租户认证的设计

8
我正在设计多租户系统,已经阅读了这篇文章:http://msdn.microsoft.com/en-us/library/aa479086.aspx。 无论如何,我有几个与身份验证相关的问题。 例如,我们需要支持一个需要单独数据库的客户。 更确切地说,客户使用单独的LDAP(每个租户一个LDAP)。 问题是,在进行身份验证之前,认证框架需要知道租户以便根据适当的LDAP进行身份验证。 用户如何在身份验证期间选择租户?
表单身份验证: 我们应该开发一个带有三个输入字段(用户名、密码和租户)的特殊表单登录吗? 我们应该向用户显示所有租户的列表吗?这是信息泄露,用户可以看到部署中所有租户的列表。 它应该是自由文本域吗?在这种情况下,容易出错。
其他类型的身份验证: 如果我们使用基本身份验证、摘要身份验证或客户端证书身份验证,如何发送租户信息?
非常感谢任何关于现有(免费)框架的建议。
1个回答

13

正如您所提到的那样,在允许用户登录多租户应用程序时,您必须识别客户/租户ID。基本上有三种方法可以识别租户ID。

  1. 使用公司代码文本字段让用户输入其租户ID、密码/用户名进行身份验证(容易出错,用户可能无法正确输入ID)。

  2. 收集用户名和密码并自行识别租户ID,但您必须为系统中的所有用户强制实施唯一身份(电子邮件)。(首选)

  3. 为每个租户分配唯一的子域(首选)。使用客户的唯一URL,您可以识别租户ID并连接到相应的客户数据库。

就身份验证而言,我个人不建议使用基本身份验证,因为存在安全漏洞,因此您可以选择使用摘要身份验证/客户端证书身份验证。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接