【.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配置信息存储和动态更新功能,内容也是从实际设计出发 ...
随机推荐
- R语言如何读取.csv文件
以下是我关于如何在R语言中读取.csv文件及一些需要注意的细节的总结,希望能帮助到大家~
- python读取es中的所有数据并计算md5然后进行持久化
#!/usr/bin/python import threading import json import time from elasticsearch import Elasticsearch f ...
- 20164319 刘蕴哲 Exp1 PC平台逆向破解
[实践内容概述] 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 该程序同时包含另一个代码片段,ge ...
- NoteBook学习(一)-------- Zeppelin VS Jupyter
notebook1.mdhtml, body {overflow-x: initial !important;}html { font-size: 14px; color: rgb(51, 51, 5 ...
- 自定义View之一圆形图片
自定义View的方法 对现有控件进行扩展 通过组合来实现新的控件 重写View来实现全新的控件 本篇文章主要讲对现有控件的扩展 1.圆形图片控件 自定义View,对ImageView的扩展 重写onD ...
- h5页面转图片长按保存
5页面经常会遇到此类需求.将最后的结果页转换为图片长按保存.下面介绍一下实现此需求的过程 1,依赖安装 cnpm install html2canvas --save 2,依赖引入,使用 绑定 初始化 ...
- python 15 常用模块三 re模块
一.正则模块 正则表达式(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.正则表达式模式被编译成一系列的字节码,然后由用 C 编写的匹 ...
- Laravel 中使用 JWT 认证的 Restful API
Laravel 中使用 JWT 认证的 Restful API 5天前/ 678 / 3 / 更新于 3天前 在此文章中,我们将学习如何使用 JWT 身份验证在 Laravel 中构建 r ...
- CRT-常用命令
1 目录操作 mkdir a ;(新建文件夹) mkdir -p a/b;(新建多及目录文件夹) Rmdir a (a只能是空目录) Rmdir -p a (a可以是多级目录) 2 文件操作 touc ...
- react native 学习笔记
假设你的机器现在还没安装任何环境. 不同的操作系统.不同的目标平台,具体的步骤也会有所不同.如果你想同时开发android和ios也没问题,只需要先选一个平台开始,另一个平台的环境搭建只是稍有不同 本 ...