要使用Bearer令牌进行授权,尽管不使用Identity Server,也需要“。众所周知”

时间:2019-07-23 12:33:19

标签: c# .net-core jwt authorization

我已经保护了我的API。

services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
  .AddJwtBearer(b =>
  {
    b.Audience = "https://localhost:44385";
    b.Authority = "https://localhost:44385";
  });

当我向邮递员请求安全页面时,我得到的是401 Unauthorized。然后,我发出令牌并将其粘贴,然后重试呼叫。这样会导致一个非常奇怪的错误。

  

System.InvalidOperationException:IDX20803:
    无法从以下位置获取配置:“ [PII隐藏]”。 --->
  System.IO.IOException:IDX20804:     无法从以下位置检索文档:“ [隐藏PII]”。 --->
  System.Net.Http.HttpRequestException:
    响应状态代码未指示成功:404(未找到)。
    在System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()

经过一番谷歌搜索,我发现here可能是因为该呼叫找不到 /。well-known / openid-configuration 。现在,suggested solution将使用IdSrv。

services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
    .AddIdentityServerAuthentication(options =>
    {
        options.Authority = ...;
        options.RequireHttpsMetadata = false;    
        options.ApiName = ...;
    });

这带来了两个问题。首先,我不想在基本情况下使用Identity Server。其次,提示是对我不使用的nginx进行设置,因此无法将对众所周知的OpenId文档的请求定向到一个合理的位置。

不确定如何继续此处。

0 个答案:

没有答案