sso实现原理解析

.net5 如何自己写身份认证:

1、首先需要自己实现鉴权中间件,继承自 AuthenticationHandler<XXXOptions> 泛型基类,XXXOptions为参数类,在拿到header中的token后,解析该token,正确的获取到用户数据

2、需要实现自己的Token 管理类,继承自 SecurityToken ,用于授权,在用户请求Token的时候,调用此类方法生成并返回

3、扩展AuthenticationBuilder类,添加注册自定义鉴权代码 builder.AddScheme<XXXOptions, XXXHandler>(authenticationScheme, displayName, configureOptions);

4、最后在Startup中添加 services.AddAuthentication().addXXXAuthentication()

 

jwtBearer实现原理:

1、颁发token:客户端发送请求获取Token,服务器验证用户身份成功后颁发token,返回给用户

jwt使用继承自 SecurityToken 的 JwtSecurityToken类颁发token

(token生成逻辑及加密方式占位)

2、身份鉴定:客户端拿到token后,调用业务接口时放入header中,后台获取并解析token

 jtw使用基于AuthenticationHandler<JwtBearerOptions>的实现类JwtBearerHandler,服务端接收到请求时,先由HandleAuthenticateAsync方法进行处理,解析出用户信息(claims)

(解析的详细逻辑及解密方式占位)

 

基于saml2.0协议实现的sso:

 

 

posted @ 2021-11-23 10:57  も不秃不秃  阅读(164)  评论(0编辑  收藏  举报