【.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个问题来一个一个实现,下一篇我们将从网关这块来讲解下如何设计出跟项目需求契合的网关,对于当前未实现的部分如何进行改造。
【.NET Core项目实战-统一认证平台】第一章 功能及架构分析的更多相关文章
- 【.NET Core项目实战-统一认证平台】第十六章 网关篇-Ocelot集成RPC服务
[.NET Core项目实战-统一认证平台]开篇及目录索引 一.什么是RPC RPC是"远程调用(Remote Procedure Call)"的一个名称的缩写,并不是任何规范化的 ...
- 【.NET Core项目实战-统一认证平台】第十五章 网关篇-使用二级缓存提升性能
[.NET Core项目实战-统一认证平台]开篇及目录索引 一.背景 首先说声抱歉,可能是因为假期综合症(其实就是因为懒哈)的原因,已经很长时间没更新博客了,现在也调整的差不多了,准备还是以每周1-2 ...
- 【.NET Core项目实战-统一认证平台】第十四章 授权篇-自定义授权方式
[.NET Core项目实战-统一认证平台]开篇及目录索引 上篇文章我介绍了如何强制令牌过期的实现,相信大家对IdentityServer4的验证流程有了更深的了解,本篇我将介绍如何使用自定义的授权方 ...
- 【.NET Core项目实战-统一认证平台】第十二章 授权篇-深入理解JWT生成及验证流程
[.NET Core项目实战-统一认证平台]开篇及目录索引 上篇文章介绍了基于Ids4密码授权模式,从使用场景.原理分析.自定义帐户体系集成完整的介绍了密码授权模式的内容,并最后给出了三个思考问题,本 ...
- 【.NET Core项目实战-统一认证平台】第十章 授权篇-客户端授权
[.NET Core项目实战-统一认证平台]开篇及目录索引 上篇文章介绍了如何使用Dapper持久化IdentityServer4(以下简称ids4)的信息,并实现了sqlserver和mysql两种 ...
- 【.NET Core项目实战-统一认证平台】第九章 授权篇-使用Dapper持久化IdentityServer4
[.NET Core项目实战-统一认证平台]开篇及目录索引 上篇文章介绍了IdentityServer4的源码分析的内容,让我们知道了IdentityServer4的一些运行原理,这篇将介绍如何使用d ...
- 【.NET Core项目实战-统一认证平台】第八章 授权篇-IdentityServer4源码分析
[.NET Core项目实战-统一认证平台]开篇及目录索引 上篇文章我介绍了如何在网关上实现客户端自定义限流功能,基本完成了关于网关的一些自定义扩展需求,后面几篇将介绍基于IdentityServer ...
- 【.NET Core项目实战-统一认证平台】第二章网关篇-定制Ocelot来满足需求
[.NET Core项目实战-统一认证平台]开篇及目录索引 这篇文章,我们将从Ocelot的中间件源码分析,目前Ocelot已经实现那些功能,还有那些功能在我们实际项目中暂时还未实现,如果我们要使用这 ...
- 【.NET Core项目实战-统一认证平台】第三章 网关篇-数据库存储配置(1)
[.NET Core项目实战-统一认证平台]开篇及目录索引 本篇将介绍如何扩展Ocelot中间件实现自定义网关,并使用2种不同数据库来演示Ocelot配置信息存储和动态更新功能,内容也是从实际设计出发 ...
随机推荐
- VS2010 LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
1嵌入清单问题 属性: 项目\属性\配置属性\清单工具\输入和输出\嵌入清单:原来是“是”,改成“否”. 项目\属性\配置属性\链接器\清单文件\生成清单:原来是“是”,改成“否”. 2文件老旧: c ...
- code first , Migration
文章引用至: https://www.cnblogs.com/panchunting/p/entity-framework-code-first-migrations.html 随着业务的增加, 之前 ...
- 控制请求重复提交的方法总结(Token)
重复提交的定义: 重复提交指的是同一个请求(请求地址和请求参数都相同)在很短的时间内多次提交至服务器,从而对服务器造成不必要的资源浪费,甚至在代码不健壮的情况还会导致程序出错. 重复提交的原因或触发事 ...
- BZOJ1270或洛谷1107 [BJWC2008]雷涛的小猫
BZOJ原题链接 洛谷原题链接 \(DP\)水题. 定义\(f[i][j]\)表示小猫在高度\(i\),位于第\(j\)棵树时最多能吃到的柿子的数量.分为直接往下跳和跳到另一棵树两个决策. 那么很容易 ...
- Linux初次修改环境变量
对于刚刚从windows系统跳到Linux的小白们,相信多少都会出现一些强迫症,希望能将Linux的Terminal能调出点色彩,让其好看些.之前自己也不知道怎么按着百度的教程操作完成的,直到组里新来 ...
- Python 判断文件是否存在
参考:https://www.cnblogs.com/jhao/p/7243043.html
- Spring事务,Bean生命周期
一.事务相关: 1.Spring事务基于Spring AOP切面编程: 2.AOP基于代理模式,得到需要开启事务的代码的代理对象: 3.而没有开启事务的Service方法里调用了开启事务 @Trans ...
- [Java]异常在项目中的使用
自己经历过的两个项目都有自定义异常,网上找了项目中自定义异常的例子: https://blog.csdn.net/aiyaya_/article/details/78989226. 这个例子基本上来说 ...
- C语言学习书单
1.C Primer Plus(第六版)(中文版)豆瓣详情 C Primer Plus 最大的缺点可能就是内容太细,对于C语言讲解极为细致,但对于Sequence Point等内容并没有详细讲解. ...
- 语音端点检测(Voice Activity Detection,VAD)
本文内容均翻译自这篇博文:(该博主的相关文章都比较好,感兴趣的可以自行学习) Voice Activity Detection(VAD) Tutorial 语音端点检测一般用于鉴别音频信号当中的语音出 ...