我正在使用ServiceStack開發大型API表面,並且正在解決授權問題。最終用戶需要能夠在API請求級別定製賦予各種角色的權限,即。其中請求角色可以調用的消息/ http動詞。ServiceStack API中的細粒度授權
由於這個原因,我打算讓角色脫離代碼而不使用ServiceStack的RequiresRole屬性。我計劃將角色/權限關係存儲在數據庫中。
我也使用智威湯遜。由於API的大小,我很擔心在ServiceStack的內置權限系統中使用RequiresPermission屬性,因爲我知道權限在JWT中填充,我不會過多膨脹頭部。用戶可能擁有數百甚至數千的權限。
我正在考慮
1)存儲用戶角色的權利要求,但在JWT不同意索賠。
2)創建一個自定義請求過濾器,根據它們在JWT中的角色檢查用戶是否具有所需的權限(來自緩存的數據庫表)。
這聽起來像是在ServiceStack中實現我的授權需求的合理方法嗎?我可能會缺少什麼缺點?有沒有辦法使用內置的ServiceStack授權工具來實現我的目標,而無需訴諸自定義請求過濾器或膨脹我的JWT太多?