没有合适的资源?快使用搜索试试~ 我知道了~
Spring Security OAuth 2.0
需积分: 15 3 下载量 20 浏览量
2022-03-03
09:47:07
上传
评论
收藏 2.23MB PDF 举报
温馨提示
试读
70页
Spring Security OAuth 2.0
资源推荐
资源详情
资源评论
Spring Security OAuth2.0
一、基本概念
认证
授权
会话
RBAC模型
二、一个自己实现的权限模型 BasicAuth:
三、SpringBoot Security 快速上手
1、项目搭建步骤
2、用SpringBoot Security重新实现我们上个应用的认证和授权逻辑。
3、项目测试
4、了解SpringBoot Security项目的扩展点
四、分布式系统认证方案
1、分布式系统认证需求分析
2、分布式认证方案
3、方案选型
五、OAuth2.0 介绍
1、什么是OAuth2.0?
2、OAuth2.0流程示例
3、OAuth2.0协议
六、 Spring Security OAuth2.0快速上手
1 环境介绍
2 基础环境搭建
2.1 父工程搭建
2.2 UAA授权服务模块
2.3 Salary资源服务模块
3 授权服务配置
3.1 打开@EnableAuthorizationServer 注解
3.2 配置客户端详细信息
3.3 令牌访问端点配置
3.4 令牌端点的安全约束
3.5 授权服务配置总结:
3.6 web安全配置
4 授权服务流程测试:
1、客户端模式 client_credentials:
2、密码模式 password:
3、简化模式 implicit:
4、授权码模式 authorization_code :
5、刷新令牌 refresh_token
6、验证令牌接口
5 资源服务配置
5.1 打开@EnableResourceServer注解
5.2 资源服务器核心配置
5.3 编写资源
5.4 添加安全访问控制
5.5 资源访问测试
6 JWT令牌
6.1 JWT令牌介绍
6.1.1、什么是JWT
6.1.2、JWT令牌结构
6.2 配置JWT令牌服务
6.3 JWT令牌验证
七、基于OAuth2.0的单点登录
1、单点登录与联合登录场景分析
2、原理分析
3、快速上手
3.1 环境介绍
3.2 搭建父工程
3.3 搭建授权服务器
3.4 然后我们开始搭建认证服务
3.5 SSO测试
3.6 作业
Spring Security OAuth2.0
一、基本概念
认证
用户认证就是判断一个用户的身份是否合法的过程,用户去访问系统资源时系统要求验证用户的身份信
息,身份合法方可继续访问,不合法则拒绝访问。常见的用户身份认证方式有:用户名密码登录,二维
码登录,手机短信登录,指纹认证等方式。
系统为什么要认证?
认证是为了保护系统的隐私数据与资源,用户的身份合法方可访问该系统的资源。
怎么进行认证?
授权
授权是用户认证通过后,根据用户的权限来控制用户访问资源的过程,拥有资源的访问权限则正常访
问,没有权限则拒绝访问。
为什么要授权?
认证是为了保证用户身份的合法性,授权则是为了更细粒度的对隐私数据进行划分,授权是在认证通过
后发生的,
控制不同的用户能够访问不同的资源。
会话
用户认证通过后,为了避免用户的每次操作都进行认证可将用户的信息保证在会话中。会话就是系统为
了保持当前用户的登录状态所提供的机制,常见的有基于session方式、基于token方式等。
RBAC模型
主体 -》 角色 -》 资源 -》行为
如何设计一个权限系统?
二、一个自己实现的权限模型 BasicAuth:
下面我们自己实现一个基于Session方式的RBAC模型的项目。
先创建一个maven父工程AuthDemo,管理maven版本。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.tuling</groupId>
<artifactId>AuthDemo</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<java.version>1.8</java.version>
<spring-boot-version>2.3.3.RELEASE</spring-boot-version>
<spring-cloud-version>Greenwich.RELEASE</spring-cloud-version>
</properties>
<modules>
<module>basicAuth</module>
</modules>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot-version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud-version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>javax.interceptor</groupId>
<artifactId>javax.interceptor-api</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
<dependency>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
注:目前我们需要使用到的就是spring-boot-dependencies。其他依赖包含了后面几个部分需要
的依赖版本,在这里一次全部引入。
然后我们创建一个basicAuth的子工程。子工程是采用SpringBoot方式快速搭建的伪前后端分离的项
目。
项目整体机构如下:
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-jwt</artifactId>
<version>1.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security.oauth.boot</groupId>
<artifactId>spring-security-oauth2-
autoconfigure</artifactId>
<version>2.1.2.RELEASE</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
pom依赖非常简单,只需要引入spring-boot-starter 和 spring-boot-starter-web两个依赖。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>AuthDemo</artifactId>
<groupId>com.tuling</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>basicAuth</artifactId>
<dependencies>
1
2
3
4
5
6
7
8
9
10
11
12
13
剩余69页未读,继续阅读
资源评论
消灬逝
- 粉丝: 37
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功