我想弄清楚如何配置/使用Asp.Net核心授權憑證和用戶數據在另一臺服務器,通過API訪問。Asp.Net核心 - 來自另一臺服務器的自定義授權和身份?
例如,在「Auth」服務器中,我們有Auth數據庫,用於存儲用戶,角色和聲明。一些例子:
GET https://auth.myserver.com/v1/users/4/IsInRole/Admin
響應是一個簡單的布爾。
或者:
GET https://auth.myserver.com/v1/users/4/GetRolesForUser/
的響應是角色的列表。
另一臺服務器是資源服務器(也完全是基於API的,沒有前端)。它存儲了大量需要角色和聲明授權的數據。
另外,我們有第三個玩家:客戶。
的客戶將:
- 問AUTH服務器,以獲得一個承載和刷新令牌,使用用戶名和密碼
- 的客戶存儲這些令牌,併發送承載到資源服務器獲取一些數據
- 該資源服務器將作爲k爲AUTH服務器如果承載令牌是有效
- 如果是,那麼資源服務器需要再次詢問AUTH服務器有關具有承載令牌的用戶,如果用戶有必要的孔/聲稱是訪問請求的資源所必需的。
第4步是我的疑問。我想,應該發生在資源服務器控制器:基本上
[HttpGet]
[Authorize(Roles = "Admin")] //API CALL HERE TO THE AUTH SERVER (?)
public async Task<IActionResult> GetData()
{
...
,我不知道如何認證上下文(只是直到返回請求)的用戶,把它在HttpContext.User中,使用我自己的自定義驗證過程。
我試圖儘可能簡化這個架構,使我的問題更清晰。請忘記「Auth」服務器的安全性。