[英]Identity Server 3 Authentication/Authorization, with ASP.NET CORE 1.0
[英]Asp.Net Core - Custom Authorization and Identity from another server?
我试图弄清楚如何使用通过API访问的另一台服务器中的凭据和用户数据来配置/使用Asp.Net Core授权。
例如,在“ Auth”服务器中,我们拥有Auth数据库,该数据库存储用户,角色和声明。 一些例子:
GET https://auth.myserver.com/v1/users/4/IsInRole/Admin
响应很简单。
要么:
GET https://auth.myserver.com/v1/users/4/GetRolesForUser/
响应是角色列表。
另一个服务器是资源服务器(也完全基于API,没有前端)。 它存储大量数据,这些数据需要按角色和声明进行授权。
另外,我们还有第三个参与者:客户。
客户将:
我怀疑这四个步骤。 我想这应该在资源服务器控制器上发生:
[HttpGet]
[Authorize(Roles = "Admin")] //API CALL HERE TO THE AUTH SERVER (?)
public async Task<IActionResult> GetData()
{
...
基本上,我不知道如何使用上下文(在返回请求之前)对用户进行身份验证,使用我自己的自定义验证过程将其放入HttpContext.User中 。
我试图尽可能简化此体系结构,以使我的问题更加清楚。 请忘记“身份验证”服务器上的安全性。
如果您正在使用jwts,则可以简化此流程,可以将角色存储在Claims中,这意味着在authorize属性中不需要api调用。
另外,资源服务器不需要验证令牌是否有效(可以使用密钥来完成)。
查看thinktecture,以下是不错的资源https://leastprivilege.com/和https://brockallen.com/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.