【.NET Core项目实战-统一认证平台】第一章 功能及架构分析

【.NET Core项目实战-统一认证平台】开篇及目录索引

从本文开始,咱们正式进入项目研发阶段,首先咱们分析下统一认证平台应该具有哪些功能性需求和非功能性需求,在梳理完这些需求后,设计好系统采用的架构来知足已有的需求和将来的扩展应用。html

1 功能性需求

统一认证平台应该具有如下基本功能,本文只是抛砖引玉,我只列出后续课程会讲到的相关内容的需求,不会详细的设计功能和需求,详细的功能需求可在此基础上根据项目须要本身扩充。git

统一受权

能够为不一样的业务系统提供一套标准、安全、可靠的受权方式,减小重复编码工做,也可有效整合公司内部团队使用技术架构不统一形成后期整合困难的问题。github

身份认证

用户访问各业务系统时,提供用户访问的身份认证工做,校验身份的合法性。缓存

单点登陆

用户在认证平台经过认证后,可直接访问已受权的全部应用系统,实现不一样应用系统的身份认证共享,从而达到多应用系统的单点登陆。安全

扫码登陆

对于安全性要求较高的应用,可能对用户身份进行二次认证,其中扫码登陆就是一种认证方式,后期会单独列篇章在讲解扫码登陆的实现。架构

2 非功能性需求

兼容性

系统设计时须要考虑到兼容性问题,考虑到后期接入的客户端的不肯定性,设计时应知足采用统一标准全部客户端都可接入。并发

扩展性

系统设计时须要考虑到系统的可扩展性,随着接入应用的增多,系统也要支持横向扩展来知足高并发的需求。分布式

安全性

系统设计时须要考虑系统应用的安全性,从数据安全到传输安全,保证认证平台安全稳定运行。ide

3 系统初步架构

根据以上需求,造成初步的系统架构,后续的课程会围绕此架构的基础上进行讲解,并一步一步来实现全部的功能。微服务

经过此微服务架构,咱们能够很好的对项目进行扩展应用,随后咱们会发现有几个问题须要解决。

  • 一、网关的功能及实现?

    网关应该具有路由、认证、鉴权、限流、熔断、缓存、监控等一系列功能,全部的请求都优先进入网关,他是整个应用程序的基石,因此网关应该知足横向扩展的需求来应对将来的请求压力。那如何实现这个网关呢?大名鼎鼎的Ocelot就派上用场了,开源地址(https://github.com/ThreeMammals/Ocelot),后续的网关功能实现都是基于Ocelot的基础上进行扩展实现,若有不熟悉的,能够先本身查看Ocelot相关的文档。

  • 二、受权和认证的功能及如何实现?

    如何实现标准、安全、可扩展的认证模块,这块就靠咱们另一个开源项目在解决咱们的问题,Identity Server 4,这个组件基本能知足咱们经常使用的应用,基本的使用方法可参考园友们的基础教程,后续的应用会就知足咱们业务需求须要改造的部分进行详细介绍。

  • 三、如何实现服务注册中心?

    应用中会结合Consul集群和.Netcore服务,实现服务的自动注册、移除、监控、通知等一系列功能。

  • 四、为何要搭载配置中心及如何实现?

    一旦项目使用分布式架构,面临的最大的问题是每次发布都要修改项目的配置信息,想象一下若是咱们有100个服务,配置信息一致,须要修改100次,天哪。漏了百八十个忘了改也正常,此次咱们就须要把配置信息进行独立管理,Apollo闪亮登场.

4 写在最后

后续的文章将围绕咱们提出的4个问题来一个一个实现,下一篇咱们将从网关这块来说解下如何设计出跟项目需求契合的网关,对于当前未实现的部分如何进行改造。

相关文章
相关标签/搜索