當我們建立的ASP.NET Web API端點,我們可以使用[Authorize]
屬性保護他們,我們可以使用承載令牌驗證請求,並調用端點。的ASP.NET Web API 2承載令牌認證和資源的授權
我的問題是關於授權以及我們如何能夠更好地授予訪問資源,一旦驗證成功。
例如,如果有一個端點api/contracts/details
並希望限制對特定人員的訪問,我正在談論SQL表字段(對象屬性)甚至整個表。這怎麼能實現?
我有一種感覺,角色是不是在這裏最好的選擇。有什麼建議?
或
用戶註冊後,他就可以生成一個client_id
和client_secret
請求承載令牌時,他必須出示。我可以添加client_id
爲令牌內要求。
在我的表是這樣的數據庫:
- 用戶(用戶詳細信息)
- 客戶端(CLIENT_ID,client_secret ...等)
- RefreshToken(refresh_token,保護票)
我可以創建另一個表,名爲Access
,其中我指定了所有允許的設定點(客戶端表 - >關於許多關係的訪問表)
訪問表:
- API /用戶
- API /設備
- API /產品
然後我可以創建一個消息處理程序和檢查所有傳入的請求。解碼不記名令牌,提取client_id並查詢允許的端點的Access表。如果傳入的請求匹配允許的端點,則讓它通過,否則拒絕它。
這應該工作我猜?
我不需要在委託處理程序中有一個自定義令牌驗證過程,因爲通過簡單地使用控制器上的授權屬性或api控制器中的操作,持證人身份驗證令牌可以爲我執行此操作。 – 2015-03-02 11:09:42