2016-11-30 73 views
2

我需要一些幫助理解一個基本的東西或兩個基於令牌的認證。 我的設置是一個後端asp.net核心應用程序與身份驗證的openiddict。到目前爲止,這一切運行良好 - 我現在需要添加用戶權限。我會有很多(例如,用戶可以查看xy,用戶可以編輯xy,用戶可以用許多不同的xy組件來刪除xy)。後端運作良好,到目前爲止,我的問題是現在:如何獲得通過令牌這些權限到我的客戶端應用程序..asp.net核心/ openiddict和客戶端水療中心授權與自定義權限

  • 據我瞭解這些都不是經典的「索賠」的要求會形容「誰「,你是」你允許做什麼「。對?
  • 但是,我怎樣才能將它們打包到我的id_token中/我如何將它們添加到我的有效載荷中?

  • 第二件事:我需要在我的情況下驗證令牌(簽名)嗎?每個Api請求都在服務器端進行驗證,所以基本上我不需要關心我的客戶端權限是否得到了調整,對吧? (因爲它們僅用於UI顯示的目的)

感謝您的幫助!

回答

0

據我所知,這些並不是傳統的「聲稱」,因爲聲稱將描述「誰」,而是「你被允許做什麼」。對?

從理論上講,沒有什麼能夠阻止您將權限表示爲聲明,就像您對角色或任何其他聲明所做的一樣。在實踐中,這很少是最好的方法,因爲用戶可以執行的操作的數量通常很重要(並且通常是無限的:用戶A是否可以更新產品124?以及這個其他產品?)。

另一種可能的替代方法是在用戶不允許執行特定操作時捕獲由API返回的403響應,以便顯示足夠的錯誤消息。另一個是根據您自己的策略創建一個API端點,以動態確定用戶是否被允許執行該操作。

第二件事:我需要在我的情況下驗證令牌(簽名)嗎?每個Api請求都在服務器端進行驗證,所以基本上我不需要關心我的客戶端權限是否得到了調整,對吧? (因爲它們僅用於UI顯示的目的)

訪問令牌和身份令牌都是數字簽名的,所以它們不能與(至少不容易)調和。您無需自己驗證簽名,因爲它已由驗證/ JWT中間件完成。