ASP.NET Core JWT身份验证的受众属性

4

我对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服务器和JWT客户端的吗?

还有,如何进行验证?

2个回答

1
如果您注册以下服务,身份验证中间件将代表您进行验证。
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
    .AddJwtBearer(options =>  
    {  
        options.TokenValidationParameters = new TokenValidationParameters  
        {  
              ValidateIssuer = true,  
              ValidateAudience = true,   
              ValidIssuer = issuer // your issuer,  
              ValidAudience = audience // your audience
         };  
     }


1

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

  • Issuer:标识发出JWT的主体。
  • Audience:标识JWT的接收者。每个打算处理JWT的主体都必须在audience声明中使用一个值来标识自己。如果处理声明的主体在此声明存在时没有使用aud声明中的值来标识自己,则必须拒绝JWT。

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

然后,对于ValidateIssuerValidAudience属性,如果将值设置为true,则在令牌验证期间将验证issuer和audience。

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

ASP.NET Coreдёӯзҡ„JWTиә«д»ҪйӘҢиҜҒ

дҪҝз”ЁJWTе’ҢSwaggerеңЁASP.NET 5дёӯиҝӣиЎҢиә«д»ҪйӘҢиҜҒе’ҢжҺҲжқғ


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接