ASP.NET WebApi始终返回401未经授权

时间:2019-06-26 19:29:12

标签: authentication jwt authorization bearer-token owin-middleware

我正在尝试在WebApi中创建一个新端点,该端点将从另一台服务器调用。因此,我想为我的WebApp设置基于S2S JWT承载的身份验证。

startup.cs代码如下

        public void Configuration(IAppBuilder app)
    {
        InitializeLoggers();
        HttpConfiguration httpConfiguration = new HttpConfiguration();
        WebApiConfig.Register(httpConfiguration);
        app.Use<JwtS2SAuthMiddleware>();
        app.UseWebApi(httpConfiguration);
    }

我在app.Use<JwtS2SAuthMiddleware>();

处添加了新行

在JwtS2SAuthMiddleware内,我进行了以下检查

  1. context.Request.Path.Value.StartsWith(“ / newendpoint”);
  2. 从请求标头获取授权承载令牌
  3. 使用JwtSecurityTokenHandler.ValidateToken()验证观众,发行人,发行人签名密钥
  4. 验证JWT中包含的appId是否在允许的应用ID列表中

使用Fiddler的请求进行调试时,我看到以上所有检查均通过,但响应仍为401未经授权,并带有消息

{"message":"Authorization has been denied for this request."}

在对我的JwtS2SAuthMiddleware类进行检查之后,如果我还需要其他任何帮助,可以有人帮助吗?谢谢。

0 个答案:

没有答案