这是 Web 服务与多租户数据库交互的好方法吗?



我正在尝试让我的 Web 服务识别要作为 JSON 返回的特定客户端数据。我不确定这是正确的方法,我希望得到一些建议。

它目前的工作方式是:

    具有
  1. 相应company_id的用户所属位置的数据库表。
  2. 登录后,身份验证服务会使用令牌有效负载中的company_id颁发 JWT 令牌。
  3. 客户端使用令牌发送HTTP请求,之后服务验证令牌的有效性,然后特定路由返回数据,SQL执行WHERE company_id = company_id_in_token

我遇到的危险信号是:

  1. 在令牌有效负载中包含用户数据。SSL会否定这一点,但我担心糟糕的设计。
  2. 必须在每个表中包含一个company_id列以进行筛选。

拜托,我恳请你给我撕一个新的。

如果您参考 OpenID 规范,它会声明您发送id_token,但对其进行签名以供以后验证。此外,如果 upn 或 sub 声明可用,则可以从此数据推断租户。但是,如果 userin 问题代表另一个租户工作,则需要特殊标头来推断租户,示例上下文租户可以是包含上下文中的租户的标头。

如果具有租户 ID 列,最好在核心业务对象表中使用租户 ID 列。依赖于核心业务对象的表中不会有租户 id 列,因为它本身不会传达任何意义。

相关内容

  • 没有找到相关文章

最新更新