Asp.net Core 系列之--5.认证、授权与自定义权限的实现

ChuanGoing 2019-11-24

  asp.net core系列已经来到了第五篇,通过之前的基础介绍,我们了解了事件订阅/发布的eventbus整个流程,初探dapper ORM实现,并且简单的介绍了领域模型、领域仓储及服务实现,结合上一篇的日志、错误处理及事务和本篇将要介绍的权限,大致的可以形成一个简单的后端系统架构。当然这些都是零散的一些技术概念的介绍,后面如果有时间的话,我想详细的介绍下如何利用领域驱动来实现一个实际案例。

话不多讲,下面来看下本篇的学习曲线:

1.认识Identityserver4

2.Identityserver4实现认证与授权

3.自定义权限的实现

认识Identityserver4

  关于Identityserver4(ids4)的概念介绍,请查看IdentityServer4 知多少-简书一文。我这里要说的是,asp.net core 下的ids4集成了认证与授权两大功能,使得我们非常方便的实现一个开放的认证与授权平台,比如公司内部多个系统的集成登录(单点登录)/第三方系统数据共享/统一的认证中心等。整个业务流程大致为:

1.用户首先的有用户中心的账号信息,因此需要注册一个账号

2.用户访问某个站点应用,需要去到用户中心认证

3.认证通过,用户得到其在用户中心注册的相应信息及其权限时限、范围、大小

4.认证不通过,即非法用户,提示用户注册

5.在第3步的前提下,若用户访问到另一个站点(采用同一认证平台),这时用户可以用之前认证通过后拿到的访问令牌访问此站点,若此令牌中包含此站点的相应权限即可之前登录。

Identityserver4实现认证与授权

首先,新建一个asp.net core web 空项目,并且添加如下IdentityServer4 Nuget包

Asp.net Core 系列之--5.认证、授权与自定义权限的实现

在ConfigureServices添加如下代码

Asp.net Core 系列之--5.认证、授权与自定义权限的实现

注册IdentityServer中间件,如下5个配置分别表示:

1.AddDeveloperSigningCredential:开发模式下的签名证书,开发环境启用即可

2.AddInMemoryApiResources:相关资源配置

Asp.net Core 系列之--5.认证、授权与自定义权限的实现

Asp.net Core 系列之--5.认证、授权与自定义权限的实现

public static IEnumerable<ApiResource> GetApiResources() { return new List<ApiResource> { new ApiResource("WebApi", "ChuanGoingWebApi"), new ApiResource("ProductApi", "ChuanGoingWebProduct") }; }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzpwxj.html