[英]How to model permissions for missing resources?
我有以下REST資源:
/companies
返回公司列表 /companies/{id}
返回公司狀態 /companies/{id}/departments
返回公司中的所有部門 /employee/{id}/departments
返回員工所在的部門 /departments/{id}
返回部門狀態 需要注意的是,一個部門知道其關聯的公司和員工,但是其URI不包含此信息。 如果該部門不存在,則無法知道它曾經與哪個公司/雇員相關聯(或該資源是否曾經存在)。 出於爭論的考慮,您應該假設部門URI方案不太可能更改(這是很長的話)。
/companies
資源具有關聯的query
許可權令牌。 當客戶引用不存在的公司/companies/{id}
我檢查他們是否有權query
。 如果他們這樣做,則返回HTTP 404 ("Not Found")
,否則返回HTTP 403 ("Forbidden")
到現在為止還挺好。 當客戶端引用不存在的/departments/{id}
資源時,就會出現此問題。 因為部門不存在,所以我無法弄清楚與該公司關聯的公司和query
許可權令牌。
看來我們回到了經典的可用性/安全性折衷方案 :
還有另一種方法嗎?
我最終放棄了query
權限。 任何人都可以查找任何資源,只要他們知道其地址即可。 意思是,我不會試圖阻止未經授權的用戶找出資源是否存在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.