没有合适的资源?快使用搜索试试~ 我知道了~
第5章 认证授权v3.1
需积分: 5 0 下载量 83 浏览量
2023-10-29
17:53:49
上传
评论
收藏 3.88MB DOCX 举报
温馨提示
试读
114页
第5章 认证授权v3.1
资源推荐
资源详情
资源评论
第 5 章 认证授权 v3.1
1 模块需求分析
1.1 什么是认证授权
截至目前,项目已经完成了课程发布功能,课程发布后用户通过在线学习页面点播视频进行学
习。如何去记录学生的学习过程呢?要想掌握学生的学习情况就需要知道用户的身份信息,记
录哪个用户在什么时间学习什么课程,如果用户要购买课程也需要知道用户的身份信息。所以
,去管理学生的学习过程最基本的要实现用户的身份认证。
认证授权模块实现平台所有用户的身份认证与用户授权功能。
什么是用户身份认证?
用户身份认证即用户去访问系统资源时系统要求验证用户的身份信息,身份合法方可继
续访问。常见的用户身份认证的表现形式有:用户名密码登录,微信扫码等方式。
项目包括学生、学习机构的老师、平台运营人员三类用户,不管哪一类用户在访问项目受保护
资源时都需要进行身份认证。比如:发布课程操作,需要学习机构的老师首先登录系统成功,
然后再执行发布课程操作。创建订单,需要学生用户首先登录系统,才可以创建订单。如下图
:
什么是用户授权?
用户认证通过后去访问系统的资源,系统会判断用户是否拥有访问资源的权限,只允许
访问有权限的系统资源,没有权限的资源将无法访问,这个过程叫用户授权。比如:用户去发
布课程,系统首先进行用户身份认证,认证通过后继续判断用户是否有发布课程的权限,如果
没有权限则拒绝继续访问系统,如果有权限则继续发布课程。如下图:
1.2 业务流程
1.2.1 统一认证
项目包括学生、学习机构的老师、平台运营人员三类用户,三类用户将使用统一的认证入口,
如下图:
用户输入账号和密码提交认证,认证通过则继续操作。
项目由统一认证服务受理用户的认证请求,如下图:
认证通过由认证服务向给用户颁发令牌,相当于访问系统的通行证,用户拿着令牌去访问系统
的资源。
1.2.2 单点登录
本项目基于微服务架构构建,微服务包括:内容管理服务、媒资管理服务、学习中心服务、系
统管理服务等,为了提高用户体验性,用户只需要认证一次便可以在多个拥有访问权限的系统
中访问,这个功能叫做单点登录。
引用百度百科:单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整
合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有
相互信任的应用系统。
如下图,用户只需要认证一次,便可以在多个拥有访问权限的系统中访问。
1.2.3 第三方认证
为了提高用户体验,很多网站有扫码登录的功能,如:微信扫码登录、QQ 扫码登录等。扫码
登录的好处是用户不用输入账号和密码,操作简便,另外一个好处就是有利于用户信息的共享
,互联网的优势就是资源共享,用户也是一种资源,对于一个新网站如果让用户去注册是很困
难的,如果提供了微信扫码登录将省去用户注册的成本,是一种非常有效的推广手段。
微信扫码登录其中的原理正是使用了第三方认证,如下图:
2 Spring Security 认证研究
2.1 Spring Security 介绍
认证功能几乎是每个项目都要具备的功能,并且它与业务无关,市面上有很多认证框架,如:
Apache Shiro、CAS、Spring Security 等。由于本项目基于 Spring Cloud 技术构建,Spring
Security 是 spring 家族的一份子且和 Spring Cloud 集成的很好,所以本项目选用 Spring
Security 作为认证服务的技术框架。
Spring Security 是一个功能强大且高度可定制的身份验证和访问控制框架,它是一个专注于
为 Java 应用程序提供身份验证和授权的框架。
项目主页:https://spring.io/projects/spring-security
Spring cloud Security: https://spring.io/projects/spring-cloud-security
2.2 认证授权入门
2.2.1 创建认证服务工程
下边我们使用 Spring Security 框架快速构建认证授权功能体系。
1、部署认证服务工程
从课程资料中拷贝 xuecheng-plus-auth 工程到自己的工程目录下。
此工程是一个普通的 spring boot 工程,可以连接数据库。
此工程不具备认证授权的功能。
2、创建数据库
创建 xc_users 数据库
导入课程资料中的 xcplus_users.sql 脚本。
剩余113页未读,继续阅读
资源评论
xiaoli8748_软件开发
- 粉丝: 9971
- 资源: 1432
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功