1

我对 ASP.NET Core 还很陌生。

我正在使用 JWT 来验证 Web api。

在大多数在线教程的 JWT 代码中,我们可以找到 Issuer 和 Audience 属性,如下所示。

var tokenDescriptor = new SecurityTokenDescriptor
                {
                    Issuer = configuration["Jwt:Issuer"],
                    Audience = configuration["Jwt:Audience"],
               ...
                }

jwt.TokenValidationParameters = new TokenValidationParameters
        {
                ValidateIssuer = true,
                ValidateAudience = true,
                ...
        };

谁能解释一下,这两者有什么用,是用来验证 JWT Server 和 JWT Client

以及如何验证这些

4

2 回答 2

0

Issuer 和 Audience 是 JWT 令牌的标准声明字段:

  • 颁发者:标识颁发 JWT 的委托人。
  • 受众:标识 JWT 的目标接收者。打算处理 JWT 的每个主体都必须在受众声明中使用一个值来标识自己。如果处理该声明的主体在此声明存在时未将其自身标识为 aud 声明中的值,则该 JWT 必须被拒绝。

更多详细信息,您可以查看标准字段

然后,对于ValidateIssuerValidAudience属性,如果您将值设置为ture,则将在令牌验证期间验证颁发者和受众。

以下是一些有关使用 Issuer 和 Audience 的 JWT 身份验证的相关文章,您可以参考它们:

ASP.NET Core 中的 JWT 身份验证

ASP.NET 5 中使用 JWT 和 Swagger 的身份验证和授权

于 2021-09-02T08:45:32.297 回答
0

如果您注册以下服务,则身份验证中间件将代表您进行验证。

services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
    .AddJwtBearer(options =>  
    {  
        options.TokenValidationParameters = new TokenValidationParameters  
        {  
              ValidateIssuer = true,  
              ValidateAudience = true,   
              ValidIssuer = issuer // your issuer,  
              ValidAudience = audience // your audience
         };  
     }
于 2021-08-28T15:50:42.157 回答