我有一個帶有 .net core 2 api 的 spa 應用程序。我想使用身份服務器 4,以便將來我還可以提供 sso 解決方案并允許訪問我的其他 api/應用程序。我有一個數據庫,其中包含 identityserver4 將連接的所有租戶的所有用戶信息(以及租戶信息)。每個租戶都有自己的 spa 應用程序數據庫。我從身份服務器獲得的 api 訪問令牌是否應該在聲明中包含角色信息,如果是,角色設置在哪里(在與用戶相同的數據庫或租戶特定數據庫中?我不確定如何知道這些角色是針對哪個 api。例如,如果我請求 api1 范圍,我可以取回僅適用于該范圍的該用戶的角色列表,如果我請求 api2 范圍,則可以取回該用戶的不同角色列表等。在我看來,identityserver 上的文檔和 microsoft 上的文檔與處理此問題的方式相矛盾。
1 回答

炎炎設計
TA貢獻1808條經驗 獲得超4個贊
通常,由于您所描述的確切沖突,當 oidc/oauth2 到位時,基于角色的身份驗證將被逐步淘汰。除非您的所有 Web 應用程序/api 都尊重您在 asp.net 身份中定義的中心角色 - 否則將它們包含在訪問令牌中幾乎沒有任何好處。
如果您計劃擁有其他應用程序將尊重并基于其授權的中央角色系統(tǒng) - 那么我建議在單個數據庫中使用 Identity Server 4 設置 asp.net 身份,為“角色”創(chuàng)建一個身份資源,包括當客戶端請求“角色”范圍時,用戶特定角色作為令牌中的聲明。
- 1 回答
- 0 關注
- 146 瀏覽
添加回答
舉報
0/150
提交
取消