首页 文章

多租户认证的设计

提问于
浏览
7

我开始设计多租户系统并已阅读文章:
http://msdn.microsoft.com/en-us/library/aa479086.aspx

无论如何,我有几个与身份验证有关的问题 . 例如,我们需要支持需要单独数据库的客户 . 更确切地说,客户使用单独的LDAP(每个租户的LDAP) . 我无法解决的问题是,在身份验证之前,身份验证框架需要知道租户,以便针对相应的LDAP进行身份验证 . 用户在身份验证期间如何选择租户?

表单身份验证:

我们是否应该开发一个包含3个输入字段的特殊表单登录:用户名,密码和租户?
我们应该向用户显示所有租户的列表吗?这是信息泄露,用户可以看到部署中所有租户的列表 . 它应该是自由文本提交吗?在这种情况下,它容易出错 .

其他类型的身份验证:

如果我们使用基本身份验证,如何发送租户信息?摘要认证?客户证书认证?

任何对现有(免费)框架的观点都将受到赞赏 .

1 回答

  • 8

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

    • 使用公司代码文本字段,您的用户可以在其中输入其租户ID,密码/用户名进行身份验证(容易出错,用户可能无法正确输入ID) .

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

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

    WRT到身份验证,由于安全漏洞,我个人不建议使用基本身份验证,因此您可以使用摘要式身份验证/客户端证书身份验证 .

相关问题