繁体   English   中英

Azure API 管理-授权属性

[英]Azure API Management - Authorize Attribute

我将我的 API 托管在 Azure 中,并配置了 API 管理以进行身份验证和授权。 我是否仍需要在我的 api 控制器上包含 [Authorize] 属性? 如果是这样,在通过 Azure 调用时,启动 class 中我需要什么以允许访问,但如果直接调用端点则未经授权?

    [ApiController]
    [Route("api/[controller]")]
    public class TestController : BaseController

根据我对你的问题的理解,你可以采用这种方式。

  1. 仍然带有 [Authorize] 的 go,因为在托管在 APIm stil 应用程序之后需要授权用户,发布身份验证。

  2. 身份验证将在 startup.cs 中

    services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(options => { options.Authority = <<Pass your authority>>; options.Audience = <<Pass audience>>; options.RequireHttpsMetadata = true; options.TokenValidationParameters = new Microsoft.IdentityModel.Tokens.TokenValidationParameters { ValidateIssuer = false }; });
  3. 在 APIM 中使用验证Jwt Inbound policy

  4. 但是,如果用户能够生成所需的 Bearer 令牌,那么它应该能够访问。 如果你想限制它不是来自 APIM 那么你可以检查 header 中的APIM subscription Key & 可以拒绝用户请求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM