algorithm - 通过 restful API 通过指定的 id 保护对数据库中资源的访问

标签 algorithm api rest design-patterns

我有一个关于设计模式的问题。假设我在 db 中有 restful api 和两个表:

company
---------------
id
Name
Address

User
----------------
Id
Login
Password
CompanyId <-FK to company

假设公司 1 的用户已登录,并希望通过 ID 获取用户数据,但指定 ID 的公司 ID 与登录用户不同。

例如:

1) myapi.com/api/getuser/1 -> 用户 id 1 与登录用户的公司相同

2) myapi.com/api/getuser/2 -> 用户 id 2 与登录用户有不同的公司(登录用户应该无法访问)

当然上面的例子很简单,我问的是更复杂(一般)的情况,其中许多表都是级联关系。

你有遇到过以上问题吗?

最佳答案

这称为租赁。委托(delegate)人 A 只允许查看公司 A 中其他用户的数据。委托(delegate)人 A 不应查看公司 B 的用户数据,委托(delegate)人 B 不应查看公司 A 中用户的数据。当您有安全规则时这需要强制执行,你正在处理一个 Multi-Tenancy 系统。

当您拥有所谓的“级联关系中的多个表”时,其他每组数据都应可追溯到租赁。您将需要弄清楚该租约是什么,以及委托(delegate)人获得授权的公司/公司。如果它们不匹配,您的 API 应该返回 403 Forbidden 响应。

关于algorithm - 通过 restful API 通过指定的 id 保护对数据库中资源的访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21644391/

相关文章:

c - 如何改进基数排序的实现?

algorithm - 种群分割算法

C Windows API : Polygon accept mouse input

javascript - Angular 资源自定义 URL 使用查询字符串和 POST 参数

C:如何读取多个字符串片段并打印 #of 片段和 #of 字符

基于周期的价格计算算法

java - 从 TeSTLink XML-RPC 响应恢复 TestSuites 的顺序?

c# - ASP.NET MVC C# PayPal Rest API - UNAUTHORIZED_PAYMENT

java - CAS Rest API 总是导致 HTTP 状态 415

java - 非常奇特 :HTTP Status 405 - Method Not Allowed