学习ASP.NET Core的身份认证(基于JwtBearer的身份认证4)

  本文学习并记录builder.Services.AddAuthentication().AddJwtBearer函数中配置类的主要属性及用途。AddJwtBearer函数原型如下图所示,划红线的为常用形式,主要设置JwtBearerOptions类型的常用属性或事件。
  JwtBearerOptions类中的属性虽多,但从参考文献的示例来看,大多没有直接设置,主要是对TokenValidationParameters属性设置,该属性与Token验证息息相关,除此之外,参考文献4中还设置了Events属性,该属性类型为JwtBearerEvents,可以处理Token验证时的各类事件,如下图所示:

  JwtBearerOptions.TokenValidationParameters的类型为TokenValidationParameters,其常用的属性如下表所示:

序号 属性 说明
1 ClockSkew 设置或获取时间验证时的时间漂移,默认为300秒,根据参考文献9中的解释,该属性用于处理生成Token和验证Token的服务器之间的可能的时间不同步问题,也即两个时间的误差在ClockSkew范围内即可认为是验证通过
2 IssuerSigningKey 类型为SecurityKey,保存签证Token签名时所需的密钥
3 NameClaimType string类型,设置有效负载中的name声明的默认类型,也即保存姓名的键值对中的默认键值,一般都使用默认值
4 PropertyBag IDictionary<string, object>,保存有效负载中自定义声明信息的键值对,以支持自定义声明信息的验证
5 RequireExpirationTime bool类型,默认值为true,标志有效负载中是否要存在到期时间声明,也即有类型为exp的键值对
6 RoleClaimType string类型,设置有效负载中的role声明的默认类型,也即保存角色的键值对中的默认键值,一般都使用默认值
7 ValidAudience string类型,设置有效受众(Audience),以便需验证受众时与有效负载中的声明信息进行对比
8 ValidAudiences IEnumerable类型,保存有多个有效受众,验证受众时只要存在aud类型声明信息,且值在集合内即可通过验证
9 ValidIssuer string类型,设置有效发行者(Issuer),以便需验证发行者时与有效负载中的声明信息进行对比
10 ValidIssuers Enumerable类型,保存有多个有效发行者,验证发行者时只要存在iss类型声明信息,且值在集合内即可通过验证
11 ValidateIssuer bool类型,默认值为true,设置验证Token时是否验证有效负载中的发行者声明是否与验证程序中的一致
12 ValidateAudience bool类型,默认值为true,设置验证Token时是否验证有效负载中的受众声明是否与验证程序中的一致
13 ValidateLifetime bool类型,默认值为true,设置验证Token的声明周期,也即是否超过Token中指定的过期时间+ClockSkew

  TokenValidationParameters中的其它属性大多是代理函数声明,用于在特定应用场景中替换微软JwtBearer中默认的处理函数。

参考文献:

1https://www.jianshu.com/p/a2804e72d296

2https://blog.csdn.net/sD7O95O/article/details/85043160

3https://www.cnblogs.com/qiongkangle/p/13347283.html

4https://www.cnblogs.com/xbhp/p/17401507.html

5https://www.cnblogs.com/superstar/p/16491428.html

6https://blog.csdn.net/weixin_44877917/article/details/140609294

7https://blog.csdn.net/qq_40287041/article/details/143368882

8https://learn.microsoft.com/zh-cn/dotnet/api/microsoft.identitymodel.tokens.tokenvalidationparameters?view=msal-web-dotnet-latest

9https://blog.csdn.net/kan_kongzhizhen/article/details/138670376

相关推荐
安当加密03011 天前
统一身份认证系统测评
身份认证·单点登录·统一身份认证系统测评·统一身份认证系统登录认证·统一身份认证系统登录认证方案
FungLeo9 天前
成为全栈·Go 后端篇·跨语言认证兼容:Node 与 Go 如何互认 JWT 和密码
golang·go·jwt·身份认证·成为全栈·bcrypt
FungLeo22 天前
成为全栈·Flutter App 篇·会员中心:资料、密码、通知与私有数据缓存
flutter·dart·身份认证·数据隔离·成为全栈·会员中心
安当加密030123 天前
动态口令认证如何选型
身份认证·mfa·双因素认证·动态口令认证如何选型·动态口令认证
安当加密-焱垚23 天前
身份认证凭据管理系统
身份认证·凭据管理·身份认证凭据管理系统·登录认证中如何应用凭据管理系统·身份认证中如何应用凭据管理系统
躺柒24 天前
读数据安全架构设计与实践03身份认证(上)
网络安全·信息安全·数据安全·安全架构·身份认证
FungLeo25 天前
成为全栈·Flutter App 篇·Refresh Token 旋转与并发 401:安全存储与会话代次
flutter·jwt·移动安全·身份认证·token刷新·成为全栈
安当加密03011 个月前
动态口令认证实施案例
身份认证·国密算法·双因素认证·动态口令·实施落地
安当加密03011 个月前
动态口令认证排行榜
数据加密·身份认证·国密算法·动态口令·采购人选型
2601_962297252 个月前
JumpServer使用OpenID对接Azure AD身份认证
堡垒机·jumpserver·身份认证·openid·azuread