【发布时间】:2020-09-25 07:32:25
【问题描述】:
我有一个 Angular 客户端,它通过 Auth0 授权用户,然后使用来自 Auth0 的令牌来使用内置于 .net 核心中的 API。 Startup.cs 中的认证是
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);
}
这一切都很好。但是,我想在此端点上添加额外的授权逻辑,这需要知道用户是谁 - 该信息在令牌(sub 字段)上可用,但我:
1.不知道如何从端点到达
2. 不要认为端点是执行此操作的正确位置。
我的直觉告诉我应该有另一个(角度语言)可以添加到端点的守卫,比如
[Authorize]
[AuthorizeOwnershipOfRequestedObject]
但我不知道如何在 .net 中执行此操作。
如何使用提供的令牌在端点上添加额外的授权?
【问题讨论】:
标签: .net-core asp.net-core-webapi auth0