簡體   English   中英

如何為缺少資源的權限建模?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM