Authentication 多租户认证的设计

Authentication 多租户认证的设计,authentication,multi-tenant,Authentication,Multi Tenant,我开始设计多租户系统,并且已经阅读了文章: 无论如何,我有两个关于身份验证的问题。 例如,我们需要支持需要单独数据库的客户。 更准确地说,客户使用单独的LDAP(每个租户的LDAP)。 我无法解决的问题是,身份验证框架在进行身份验证之前需要知道租户,以便根据适当的LDAP进行身份验证。 用户在身份验证期间如何选择租户 表单身份验证: 我们是否应该开发一个带有3个输入字段的特殊表单登录:用户名、密码和租户? 我们应该向用户显示所有租户的列表吗? 这是信息公开,用户可以看到部署中所有租户的列表。

我开始设计多租户系统,并且已经阅读了文章:

无论如何,我有两个关于身份验证的问题。 例如,我们需要支持需要单独数据库的客户。 更准确地说,客户使用单独的LDAP(每个租户的LDAP)。 我无法解决的问题是,身份验证框架在进行身份验证之前需要知道租户,以便根据适当的LDAP进行身份验证。 用户在身份验证期间如何选择租户

表单身份验证:

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

其他类型的身份验证:

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


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

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

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

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

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

  • 对于身份验证,我个人不建议使用基本身份验证,因为存在安全漏洞,所以您可以使用摘要身份验证/客户端证书身份验证