当前位置: 首页 > article >正文

IdentityServer4框架、ASP.NET core Identity

OAuth2.0

IdentityServer4

官网
中文官网
ASP.NET Core Identity提供了一个用来管理和存储用户账户的框架.
IdentityServer4是基于ASP.NET Core实现的认证和授权框架,是对OpenID Connect和OAuth 2.0协议的实现。
IdentityServer是一个中间件,它可以添加符合OpenID Connect和OAuth2.0的终端(endpoints)到一个任意的ASP.NET Core应用.

通俗来讲,就是服务端对需要认证授权的资源(客户端请求资源)在外层使用IdentityServer4框架进行封装加壳,用户只能通过获取IdentityServer4颁发的Token令牌才能进行资源访问。

ASP.NET Core Identity是一个成员身份系统,可将用户注册和登录功能添加到 ASP.NET Core Web UI。 成员身份系统处理身份验证和授权问题。 身份验证涉及你的身份。 授权涉及允许你进行的操作。 因此,身份验证是授权的先决条件。 ASP .Net Core Identity内置了一组认证功能,用于简单的Web应用的认证和授权
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Core 自带JWT认证

》》》// Core 自带官方 JWT认证

// Core 自带官方 JWT认证
// 开启Bearer 认证
 builder.Services.AddAuthentication(options =>
 {
     // 设置默认的身份验证和挑战方案为 JwtBearer
     options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
     options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
 }) // 配置 JWT Bearer 选项
 .AddJwtBearer(options =>
 {
     // 配置 Token 验证参数
     options.TokenValidationParameters = new TokenValidationParameters
     {
         // 验证发行者
         ValidateIssuer = true,
         // 验证受众
         ValidateAudience = true,
         // 验证令牌有效期
         ValidateLifetime = true,
         // 验证签名密钥
         ValidateIssuerSigningKey = true,
         // 发行者
         ValidIssuer = builder.Configuration["TokenParameter:Issuer"],
         // 受众
         ValidAudience = builder.Configuration["JokenParameter:Audience"],
         // 签名密钥
         IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(builder.Configuration["TokenParameter:Secret"])),
         AudienceValidator = (m, n, z) => {
             //自定义验证逻辑
             return true;
         }
     };
     options.Events = new JwtBearerEvents
     {
         OnAuthenticationFailed = context =>
         {
             // 如果过期,则把 是否过期 添加到  , 返回头信息中
             if (context.Exception.GetType() == typeof(SecurityTokenExpiredException))
             {
                 context.Response.Headers.Add("Token-Expired", "true");
             }
             return Task.CompletedTask;
         }
         //OnForbidden
         //OnChallenge
         //OnMessageReceived
         //OnTokenValidated
     };
 });
  var app = builder.Build();

》》》 开启 IdentityServer4 认证


http://www.kler.cn/a/430539.html

相关文章:

  • 01 - 初识 Spring
  • 音视频入门基础:MPEG2-TS专题(22)——FFmpeg源码中,获取TS流的音频信息的实现
  • J9学习打卡笔记
  • Docker 安装mysql ,redis,nacos
  • R语言的下载、安装及环境配置(RstudioVSCode)
  • 从测试服务器手动热部署到生产环境的实现
  • ios使用UIScrollView和PageControl创建图片轮播
  • selenium学习:等待方式
  • 网络安全法-网络运行安全
  • Scala正则表达式
  • UAC2.0 speaker——带反馈端点的 USB speaker(16bit 单声道)
  • 大数据新视界 -- Hive 临时表与视图的应用场景(下)(30 / 30)
  • 机器学习 (西瓜书) 内容概要【不含数学推导】
  • MySQL 通过 Next-Key Locking 技术避免幻读问题
  • 【JavaEE】多线程(7)
  • python如何与前端交互
  • NFT Insider #158:$SAND 和 LAND 价格反弹
  • 【 C++ 入门基础】 —— 双壁传奇C语言和C++的爱恨情仇
  • PostGIS分区表学习相关
  • LLM学习笔记(18)序列标注任务(测试模型阶段)
  • 基于STM32的机器人手臂控制
  • 【杂记】vLLM多卡推理踩坑记录
  • VB.NET 从入门到精通:开启编程进阶之路
  • 7_计算机网络五层体系结构
  • 方案介绍|CW32L010安全低功耗MCU:驱动高速风筒新力量
  • day10性能测试(2)——Jmeter