.net core 从.net core api中的承载令牌获取信息,以便在端点上执行附加授权
我有一个angular客户端,它通过Auth0授权用户,然后使用Auth0的令牌来使用内置在.net内核中的API。Startup.cs中的身份验证为.net core 从.net core api中的承载令牌获取信息,以便在端点上执行附加授权,.net-core,asp.net-core-webapi,auth0,.net Core,Asp.net Core Webapi,Auth0,我有一个angular客户端,它通过Auth0授权用户,然后使用Auth0的令牌来使用内置在.net内核中的API。Startup.cs中的身份验证为 services.AddAuthentication(options => { options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; options.Def
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(options =>
{
options.Authority = "removed";
options.Audience = "removed";
});
我有一个这样的端点
[Authorize]
[HttpGet("preview/{questionId}")]
[...]
public ActionResult<Question> GetQuestionPreviewById(string questionId)
{
...
return Ok(model);
}
但我不知道如何在.net中实现这一点
如何使用提供的令牌在端点上添加额外授权?1)您需要首先将声明分配给特定用户
2) 在“配置服务”中,使用选项添加授权以包括策略
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthorization(options =>
{
options.AddPolicy("EmployeeOnly", policy =>
policy.RequireClaim("EmployeeNumber"));
});
}
3) 然后使用AuthorizeAttribute属性上的policy属性应用策略,以指定策略名称
[Authorize(Policy = "EmployeeOnly")]
public IActionResult VacationBalance()
{
return View();
}
[Authorize(Policy = "EmployeeOnly")]
public IActionResult VacationBalance()
{
return View();
}