我想弄清楚如何配置/使用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”服务器的安全性。