.netcore 判断是否 ajax 请求_.NET Core 认证基于Identity Server 4 Token的JwtToken认证

本文详细解析了.NET Core中使用IdentityServer4进行JWT Token验证的过程,包括从用户获取AccessToken,客户端验证Token,解析ClaimsPrincipal,以及核心的认证方法HandleAuthenticateAsync的执行流程。文中还探讨了如何配置和优化认证过程,以提高系统的可控性和效率。
摘要由CSDN通过智能技术生成

(给DotNet加星标,提升.Net技能)

转自: 郑小超 cnblogs.com/GreenLeaves/p/12164056.html

前言

介绍JwtToken认证之前,必须要掌握.NET Core认证系统的核心原理,如果你还不了解,请参考《.NET Core认证组件源码解析》,且必须对jwt有基本的了解,如果不知道,请百度.最重要的是你还需要掌握identityserver4的基本用法,关于identityserver4因为设计到两个协议Oath2.0和openidconnect协议,内容较多,不是本文重点,后续有时间我会写一片关于identityserver4的源码分析.且为了保证整个系统的高度可控,我重写了整个id4,留下了password模式.如果有兴趣,可以关注本人的后续文章.

假设你已经掌握以上内容,那么整个流程可以抽象为如下步骤:

(1)、用户输入用户名密码同时带着客户端Id和客户端密钥去identityserver4请求accesstoken.(访问令牌,令牌中带着用户Id,带着客户端的名称和密码)

(2)、拿到token后,接着用户去请求客户端指定的控制器方法,那么客户端第一步,会解析token中的客户端名称和密码是否正确,还有过期时间等常规字段的判断.

(3)、token验证通过,这个时候就可以拿到用户信息(ClaimsPrincipal)

(4)、此时我们拿到持有的用户信息中的用户Id,发起httpclient或者grpc调用,去统一权限系统查找用户的权限是否有当前请求的方法,有就通过授权认证,返回数据,没有,就返回权限不足.

整个流程大致如上,本文的重点是当拿到id4颁发的有效令牌(token)后,客户端如何解析?

微软提供了IdentityServer4.AccessTokenValidation类库,用来解析id4颁发的token.

.NET Core启用IdentityServer4token验证的方法如下:

8ecf026ee86b74c34dc48ed413241cfc.png

指定id4的认证方案,并指定认证参数,那么看看里面到底干了什么

a0ac565b1521f8fe7df381bba6bb6567.png

因为id4的令牌有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值