我正在尝试让我的 Web 服务识别要作为 JSON 返回的特定客户端数据。我不确定这是正确的方法,我希望得到一些建议。
它目前的工作方式是:
- 具有
- 相应company_id的用户所属位置的数据库表。
- 登录后,身份验证服务会使用令牌有效负载中的company_id颁发 JWT 令牌。
- 客户端使用令牌发送HTTP请求,之后服务验证令牌的有效性,然后特定路由返回数据,SQL执行
WHERE company_id = company_id_in_token
。
我遇到的危险信号是:
- 在令牌有效负载中包含用户数据。SSL会否定这一点,但我担心糟糕的设计。
- 必须在每个表中包含一个company_id列以进行筛选。
拜托,我恳请你给我撕一个新的。
如果您参考 OpenID 规范,它会声明您发送id_token,但对其进行签名以供以后验证。此外,如果 upn 或 sub 声明可用,则可以从此数据推断租户。但是,如果 userin 问题代表另一个租户工作,则需要特殊标头来推断租户,示例上下文租户可以是包含上下文中的租户的标头。
如果具有租户 ID 列,最好在核心业务对象表中使用租户 ID 列。依赖于核心业务对象的表中不会有租户 id 列,因为它本身不会传达任何意义。
呵呵