我們有一個新的web項目,我們已決定將身份服務器用作集中身份管理服務。這個想法是長期的,我們可以將其他項目遷移到此並在一個地方維護用戶。如何管理受保護的身份服務器的站點特定配置文件數據受保護的API
該網站本身由一個角度SPA(客戶端),一個web api後端(api資源)和一個單獨的aspnet核心MVC網站運行身份服務器組成。
用戶遵循openid連接流程,從前端重定向到身份服務器以登錄,然後使用生成的訪問令牌連接到API。
所有這一切工作正常,並且我們可以從訪問令牌中的API中如主題,電子郵件,姓名等基本消耗用戶數據
到目前爲止,罰款。
問題是,我們有一些額外的配置文件數據是特定於應用程序的 - 在原始設計中(沒有身份服務器),這些都包含在單個JWT中,因此從前端非常容易使用,後端或者通過內置的中間件如ASP.net身份。
我們的解決方法是,客戶端必須在登錄後調用API以從包含特定於此問題域的配置文件數據的API中檢索單獨的令牌 - 例如用戶在此係統中擁有的權限和角色。
這最後一步對我來說有點笨拙。例如,我們現在不能在API中使用ASPNET身份來獲取角色,因爲他們位於第二個令牌而不是訪問令牌。
有沒有最佳實踐或方法來處理這種情況?
例如我們是否應該在登錄時使身份服務器向API請求配置文件數據,或者這是不好的,因爲身份服務器不應該瞭解客戶端的機制?
謝謝是的,它確實有意義 - 我懷疑它最終只是我們設計的選擇,但希望有人可能有一個具體的例子來解決這個問題。 –
最後,我將它放在身份服務器中,因爲我們認爲更重要的是,Web應用程序不必擔心用戶界面的配置文件數據。我們還使用以下內容將配置文件數據放入令牌中:https://stackoverflow.com/questions/41687659/how-to-add-additional-claims-to-be-included-in-the-access-token-using -Asp-NET-ID –