【问题标题】:Manage users for SAAS applications in SQL Server database [closed]在 SQL Server 数据库中管理 SAAS 应用程序的用户 [关闭]
【发布时间】:2020-08-25 09:59:35
【问题描述】:

我正在开发一个 SAAS 应用程序,我想在其中向我们的用户提供 SSO。我们有客户和用户的概念。 Client 是注册的主管理员用户,Users 表存储主 Client 创建的用户。主客户可以在其账户下创建多个子用户。主客户端成为管理员用户,所有子用户成为普通用户。

当普通用户也注册为新的管理员用户时,就会出现问题。在这种情况下,我们有 2 个用户具有相同的电子邮件地址,但具有不同的角色和不同的 ClientID。对于这个要求用户在登录页面上以管理员或普通用户身份登录的问题,我可以有一个解决方案,但我不想这样做。下面显示了一个示例表表示 -

Username    Role      ClientID
--------    ----      --------
u1@e.com    Admin        1
u2@e.com    Normal       1
u3@e.com    Normal       1
u2@e.com    Admin        2
u3@e.com    Normal       2

在上表中,u1@e.com 尝试登录时,没有问题,因为它是 Admin 用户。当u2@e.com 尝试登录时,系统会混淆为 ClientID 1 的 Normal 登录或 ClientID 2 的 Admin 登录。

任何想法将不胜感激。

【问题讨论】:

    标签: c# sql-server asp.net-mvc saas


    【解决方案1】:

    用户必须指定他们要登录的客户端(租户)。一种方法是让每个客户端使用不同的 URL 访问系统。所以他们去

    https://Client1.myapp.net/login
    

    https://myapp.net/Client1/login
    

    或者,当电子邮件在两者中注册时,您会提供一些 UI 供用户选择客户端。

    【讨论】:

    • 应用程序托管在单个域上,因此没有域级别的更改。 1 个应用程序、1 个代码、1 个域和此场景。 100 个租户使用 1 个软件
    • 但这会永远如此吗?您可能希望为未来有多个版本的应用程序在生产中,并为不同的租户提供多个实例。但即便如此,您仍然可以完全控制 url 的路径部分,并且仍然可以使用它。
    • 有道理@David。我还有一个问题,如果我必须让这些用户登录到 2 个不同的 SAAS 应用程序,我应该将 client 和 users 表放在单独的表中并为两个应用程序提供 SSO 吗?
    猜你喜欢
    • 2014-01-26
    • 1970-01-01
    • 2011-09-20
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    • 1970-01-01
    • 2011-10-22
    • 1970-01-01
    相关资源
    最近更新 更多