【.NET Core项目实战-统一认证平台】第一章 功能及架构分析
【.NET Core项目实战-统一认证平台】开篇及目录索引
从本文开始,我们正式进入项目研发阶段,首先我们分析下统一认证平台应该具备哪些功能性需求和非功能性需求,在梳理完这些需求后,设计好系统采用的架构来满足已有的需求和未来的扩展应用。
1 功能性需求
统一认证平台应该具备以下基本功能,本文只是抛砖引玉,我只列出后续课程会讲到的相关内容的需求,不会详细的设计功能和需求,详细的功能需求可在此基础上根据项目需要自己扩充。
统一授权
可以为不同的业务系统提供一套标准、安全、可靠的授权方式,减少重复编码工作,也可有效整合公司内部团队使用技术架构不统一造成后期整合困难的问题。
身份认证
用户访问各业务系统时,提供用户访问的身份认证工作,校验身份的合法性。
单点登录
用户在认证平台通过认证后,可直接访问已授权的所有应用系统,实现不同应用系统的身份认证共享,从而达到多应用系统的单点登录。
扫码登录
对于安全性要求较高的应用,可能对用户身份进行二次认证,其中扫码登录就是一种认证方式,后期会单独列篇章在讲解扫码登录的实现。
2 非功能性需求
兼容性
系统设计时需要考虑到兼容性问题,考虑到后期接入的客户端的不确定性,设计时应满足采用统一标准所有客户端均可接入。
扩展性
系统设计时需要考虑到系统的可扩展性,随着接入应用的增多,系统也要支持横向扩展来满足高并发的需求。
安全性
系统设计时需要考虑系统应用的安全性,从数据安全到传输安全,保证认证平台安全稳定运行。
3 系统初步架构
根据以上需求,形成初步的系统架构,后续的课程会围绕此架构的基础上进行讲解,并一步一步来实现所有的功能。
通过此微服务架构,我们可以很好的对项目进行扩展应用,随后我们会发现有几个问题需要解决。
-
1、网关的功能及实现?
网关应该具备路由、认证、鉴权、限流、熔断、缓存、监控等一系列功能,所有的请求都优先进入网关,他是整个应用程序的基石,所以网关应该满足横向扩展的需求来应对未来的请求压力。那如何实现这个网关呢?大名鼎鼎的Ocelot就派上用场了,开源地址(https://github.com/ThreeMammals/Ocelot),后续的网关功能实现都是基于Ocelot的基础上进行扩展实现,如有不熟悉的,可以先自己查看Ocelot相关的文档。
-
2、授权和认证的功能及如何实现?
如何实现标准、安全、可扩展的认证模块,这块就靠我们另外一个开源项目在解决我们的问题,Identity Server 4,这个组件基本能满足我们常用的应用,基本的使用方法可参考园友们的基础教程,后续的应用会就满足我们业务需求需要改造的部分进行详细介绍。
-
3、如何实现服务注册中心?
应用中会结合Consul集群和.Netcore服务,实现服务的自动注册、移除、监控、通知等一系列功能。
-
4、为什么要搭载配置中心及如何实现?
一旦项目使用分布式架构,面临的最大的问题是每次发布都要修改项目的配置信息,想象一下如果我们有100个服务,配置信息一致,需要修改100次,天哪。漏了百八十个忘了改也正常,这次我们就需要把配置信息进行独立管理,Apollo闪亮登场.
4 写在最后
后续的文章将围绕我们提出的4个问题来一个一个实现,下一篇我们将从网关这块来讲解下如何设计出跟项目需求契合的网关,对于当前未实现的部分如何进行改造。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
【.NET Core微服务实战-统一身份认证】开篇及目录索引
原文: 【.NET Core微服务实战-统一身份认证】开篇及目录索引 简介 学习.NETCORE也有1年多时间了,发现.NETCORE项目实战系列教程很少,都是介绍开源项目或基础教程,对于那些观望的朋友不能形成很好的学习思路,遇到问题怕无法得到解决而不敢再实际项目中尝试,今天我想通过项目系列实战的方式,进一步推广应用.NETCORE,让大家感受它的魅力以及已经无所不能的神奇魔力,我会从实际项目开发的流程中带大家一起来学习和使用.NETCORE,对于项目实战系列写什么内容纠结很久,最后想想直接从基础设施开始着手,一步一步延伸到完整项目,第一篇就从统一身份认证模块开发详细介绍项目开发的过程。我也希望通过编写系列教程给自己巩固下学习成果,这是一个新东西,可参考的内容不多,我开发思路准备从原有项目中的一些实践使用.NETCORE来重构,在做的过程中也希望大家一起参与,集思广益、取长补短,共同完善好这个系列内容,做出一套精品教程为后来学习的人铺路。由于写这篇博文之前无任何项目代码作为参考,所以所有项目课程内容和源码都是在实际写作中编写,可能会遇到一些我无法解决的问题,也希望大家一起参与解决。...
- 下一篇
【.NET Core项目实战-统一认证平台】第二章网关篇-定制Ocelot来满足需求
原文: 【.NET Core项目实战-统一认证平台】第二章网关篇-定制Ocelot来满足需求 【.NET Core项目实战-统一认证平台】开篇及目录索引 这篇文章,我们将从Ocelot的中间件源码分析,目前Ocelot已经实现那些功能,还有那些功能在我们实际项目中暂时还未实现,如果我们要使用这些功能,应该如何改造等方面来说明。 一、Ocelot源码解读 在使用一个组件前,最好我们要了解其中的一些原理,否则在使用过程中遇到问题,也无从下手,今天我带着大家一起来解读下Ocelot源码,并梳理出具体实现的原理和流程,便于我们根据需求扩展应用。 Ocelot源码地址[https://github.com/ThreeMammals/Ocelot], Ocelot文档地址[https://ocelot.readthedocs.io/en/latest/] 查看.NETCORE相关中间件源码,我们优先找到入口方法,比如Ocelot中间件使用的是app.UseOcelot(),我们直接搜索UserOcelot,我们会找到OcelotMiddlewareExtensions方法,里面是Ocelot中间件...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS8安装Docker,最新的服务器搭配容器使用
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6