随笔分类 - 01.4-.NET Core认证授权
1
摘要:前文中,我们所有的IdentityServer4配置都是在代码中写死的,在实际的生产环境中肯定不能这么处理。可以使用Entity Framework Core持久化配置和存储操作数据。 源码:https://gitee.com/core-demo/identity-server4 安装Nuget包:
阅读全文
摘要:主要分三个部分:操作、配置、用户 操作部分 DeviceCodes:设备码? PersistedGrants:授权记录 配置部分 IdentityResources:身份资源信息 IdentityClaims:声明信息,一个身份资源信息对应一个或多个声明信息, 身份资源信息就是用来组织声明信息的,它
阅读全文
摘要:AccessToken类型 IdentityServer4 Token有两种类型Jwt 、Reference ,默认使用 JWT 类型。在配置 Client 客户端的时候 指定Token类型。 public enum AccessTokenType{Jwt = 0,Reference = 1} Re
阅读全文
摘要:IdentityServer4(下文统称Ids4)官方已经从v3更新升级到了v4版本,最核心也最重要的一个更新,就是新增了ApiResourceScopes表,进一步细化了对资源服务器的限制粒度。之前我们是一个客户端只能针对一个资源服务器来操作,那该资源服务器下的所有api都会被保护,当然也都会被控
阅读全文
摘要:简介 IdentityServer4是为ASP.NET Core量身打造的,实现了OpenID Connect和OAuth 2.0协议的认证授权中间件。 IdentityServer4中文文档:http://www.identityserver.com.cn/Home/ 中文文档:https://g
阅读全文
摘要:ASP.NET Core Identity 下文简称Identity,可以理解为用户管理系统,那么它自然是十分强大的,包含用户管理的方方面面,简单的来讲包括: 用户数据存储(使用EF Core对数据库进行操作,因此Identity框架支持几乎所有数据库。) 登陆、注册外加身份认证(基于cookie的
阅读全文
摘要:自定义Requirement案例 单个Handler public class MinimumAgeRequirement : AuthorizationHandler<NameAuthorizationRequirement>, IAuthorizationRequirement { public
阅读全文
摘要:概述 授权就是某人针对某个资源可以做什么操作。 某人:登录系统的用户 资源:可以任何形式的资源,比如订单、产品、页面...。权限判断中不一定需要资源的参与,比如只要用户登录,就允许使用系统中所有功能。此时整个系统就是资源,允许所有操作。 操作:比如查看、审核、新增、修改... dotnet core
阅读全文
摘要:Core为我们提供了自定义token验证的接口,当我们需要使用自己的方式验证token时可以使用。 比如Jwt只能数据签名,不能加密。当需要校验加密的jwt token。在登录时将jwt token加密后传给客户端,客户端回传token。这时需要我们自定义token校验。 自定义token校验,实现
阅读全文
摘要:一. 前言 1.关于JWT的Token过期问题,到底设置多久过期? (1).有的人设置过期时间很长,比如一个月,甚至更长,等到过期了退回登录页面,重新登录重新获取token,期间登录的时候也是重新获取token,然后过期时间又重置为了1个月。这样一旦token被人截取,就可能被人长期使用,如果你想禁
阅读全文
摘要:ConfigureServices方法中添加: public void ConfigureServices(IServiceCollection services) { services.AddAuthentication(CookieAuthenticationDefaults.Authentic
阅读全文
摘要:认证服务器:新建一个WebApi的解决方案,名为FlyLolo.JWT.Server。 应用服务器:新建一个WebApi的解决方案,名为FlyLolo.JWT.API。 客户端:这里用Fiddler发送请求做测试。 认证服务 首先新建一个ASP.NET Core 的解决方案WebApi的解决方案 将
阅读全文
摘要:# HTTP标准身份验证框架 HTTP提供了一套标准的身份验证框架:服务器可以用来针对客户端的请求发送质询(challenge),客户端根据质询提供身份验证凭证。质询与应答的工作流程如下:服务器端向客户端返回401(Unauthorized,未授权)状态码,并在WWW-Authenticate头中添
阅读全文
摘要:添加身份认证中间件 app.UseRouting(); // 身份认证中间件 app.UseAuthentication(); app.UseEndpoints(endpoints => { //省略... }); UseAuthentication一定要放在UseRouting和UseEndpoi
阅读全文
摘要:对于本地的验证方案,我们可以很容易了解验证过程。但是远程的验证方案是特殊的,我们往往会单独来处理它,就像下方的中间件代码,您会发现会优先判断是否为远程验证,然后再执行本地验证。 // 判断当前是否需要进行远程验证,如果是就进行远程验证 var handlers = context.RequestSe
阅读全文
摘要:注册服务 在Startup.ConfigureServices执行services.AddAuthentication() services.AddAuthentication() 注册如下服务,便于理解省略了部分辅助服务 services.TryAddScoped<IAuthenticationS
阅读全文
摘要:AuthenticationOptions(整个应用的身份验证选项) AuthenticationSchemeOptions是指某个具体身份验证方案的选项。AuthenticationOptions则是针对整个身份验证功能的选项对象,我们需要在应用启动阶段通过它来配置身份验证功能。 Authenti
阅读全文
【ASP.NET Core 认证】IAuthenticationSchemeProvider、IAuthenticationHandlerProvider、IAuthenticationService
摘要:AuthenticationHttpContextExtensions AuthenticationHttpContextExtensions 类是对 HttpContext 认证相关的扩展,在Core2.0中是使用HttpContext的Authentication属性做认证 public sta
阅读全文
摘要:前言 在 ASP.NET Core沿用了ASP.NET里面的Identity组件库,负责对用户的身份进行认证。ASP.NET Core提倡的是基于声明(Claim)的认证。 基于声明的认证对认证和授权进行了明确的区分,认证用来颁发一个用户的身份标识。而授权则是通过获取身份标识中的信息,来判断该用户能
阅读全文
摘要:对于大多数应用系统离不开身份验证。因为我们需要保护一些数据,不让“非法”用户获取。所以我们必须得根据自身项目情况来添加对身份验证的支持功能。 在这之前,我们先不要考虑什么Bearer,JWT,OpenId等概念,忘掉他们,让我们从0开始。 假如我们现在有一个Web Api应用程序,在没有任何标准协议
阅读全文
1

浙公网安备 33010602011771号