1
0

项目:重构

This commit is contained in:
7Wate 2024-10-13 20:54:08 +08:00
parent 3f63f55d14
commit 5d2f6b6d05
Signed by untrusted user who does not match committer: zhouzhongping
GPG Key ID: 6666822800008000
252 changed files with 7369 additions and 712 deletions

View File

@ -6,5 +6,6 @@
"obsidian-minimal-settings",
"obsidian-weread-plugin",
"obsidian-linter",
"obsidian-excalidraw-plugin"
"obsidian-excalidraw-plugin",
"obsidian-icon-folder"
]

35
.obsidian/graph.json vendored
View File

@ -5,37 +5,8 @@
"showAttachments": false,
"hideUnresolved": false,
"showOrphans": false,
"collapse-color-groups": false,
"colorGroups": [
{
"query": "tag:#博客",
"color": {
"a": 1,
"rgb": 14701138
}
},
{
"query": "tag:#阅读",
"color": {
"a": 1,
"rgb": 10967200
}
},
{
"query": "tag:#技术 ",
"color": {
"a": 1,
"rgb": 5417696
}
},
{
"query": "tag:#工作 ",
"color": {
"a": 1,
"rgb": 5397472
}
}
],
"collapse-color-groups": true,
"colorGroups": [],
"collapse-display": true,
"showArrow": false,
"textFadeMultiplier": 2,
@ -46,6 +17,6 @@
"repelStrength": 20,
"linkStrength": 0.75,
"linkDistance": 400,
"scale": 0.4993882638266578,
"scale": 0.09085236301906145,
"close": true
}

View File

@ -0,0 +1,43 @@
{
"settings": {
"migrated": 6,
"iconPacksPath": "Obsidian/Static",
"fontSize": 16,
"emojiStyle": "native",
"iconColor": null,
"recentlyUsedIcons": [
"🧰",
"📐",
"📚",
"💼",
"🧑‍💻"
],
"recentlyUsedIconsSize": 5,
"rules": [],
"extraMargin": {
"top": 0,
"right": 4,
"bottom": 0,
"left": 0
},
"iconInTabsEnabled": false,
"iconInTitleEnabled": false,
"iconInTitlePosition": "above",
"iconInFrontmatterEnabled": false,
"iconInFrontmatterFieldName": "icon",
"iconColorInFrontmatterFieldName": "iconColor",
"iconsBackgroundCheckEnabled": false,
"iconsInNotesEnabled": true,
"iconsInLinksEnabled": true,
"iconIdentifier": ":",
"lucideIconPackType": "native",
"debugMode": false
},
"Archive": "📦",
"NaturalSciences": "🌍",
"Personal": "🧑‍💻",
"SocialSciences": "📚",
"FormalSciences": "📐",
"Obsidian": "🧰",
"Professional": "💼"
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,10 @@
{
"id": "obsidian-icon-folder",
"name": "Iconize",
"version": "2.14.3",
"minAppVersion": "0.9.12",
"description": "Add icons to anything you desire in Obsidian, including files, folders, and text.",
"author": "Florian Woelki",
"authorUrl": "https://florianwoelki.com/",
"isDesktopOnly": false
}

View File

@ -0,0 +1,119 @@
.iconize-inline-title-wrapper {
width: var(--line-width);
margin-inline: var(--content-margin);
}
.iconize-title-icon {
max-width: var(--max-width);
margin-right: var(--size-4-2);
}
.iconize-icon-in-link {
transform: translateY(20%);
margin-right: var(--size-2-2);
display: inline-flex;
}
.iconize-icon {
border: 1px solid transparent;
margin: 0px 4px 0px 0px;
display: flex;
align-self: center;
margin: auto 0;
}
.nav-folder-title,
.nav-file-title {
align-items: center;
}
.iconize-setting input[type='color'] {
margin: 0 6px;
}
.iconize-modal.prompt-results {
margin: 0;
overflow-y: auto;
display: grid;
grid-template-columns: repeat(5, minmax(0, 1fr));
}
.prompt .iconize-subheadline {
margin-top: 12px;
font-size: 12px;
color: gray;
grid-column-start: 1;
grid-column-end: 6;
}
@media (max-width: 640px) {
.iconize-modal.prompt-results {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.prompt .iconize-subheadline {
grid-column-end: 4;
}
}
.iconize-modal.prompt-results .suggestion-item {
cursor: pointer;
white-space: pre-wrap;
display: flex;
justify-content: flex-end;
align-items: center;
flex-direction: column-reverse;
text-align: center;
font-size: 13px;
color: var(--text-muted);
padding: 16px 8px;
line-break: auto;
word-break: break-word;
line-height: 1.3;
}
.iconize-modal.prompt-results .suggestion-item.suggestion-item__center {
justify-content: center;
}
.iconize-icon-preview {
font-size: 22px;
}
.iconize-icon-preview img {
width: 16px;
height: 16px;
}
.iconize-icon-preview svg {
width: 24px;
height: 24px;
color: currentColor;
margin-bottom: 4px;
}
.iconize-dragover {
position: relative;
}
.iconize-dragover-el {
position: absolute;
width: 100%;
height: 100%;
color: var(--text-normal);
background-color: var(--background-secondary-alt);
display: flex;
align-items: center;
justify-content: center;
}
/* Custom rule modal. */
.iconize-custom-modal .modal-content {
display: flex;
align-items: center;
justify-content: center;
}
.iconize-custom-modal .modal-content input {
width: 100%;
margin-right: 0.5rem;
}

BIN
FormalSciences/ComputerScience/.DS_Store vendored Normal file

Binary file not shown.

Binary file not shown.

View File

@ -8,7 +8,7 @@ keywords:
- 网络
- 传统架构
tags:
- ComputerScience/CloudService
- FormalSciences/ComputerScience
- CloudService/Overview
author: 仲平
date: 2024-10-13

View File

@ -9,7 +9,7 @@ keywords:
- 云服务器
- 云平台
tags:
- ComputerScience/CloudService
- FormalSciences/ComputerScience
- CloudService/Overview
author: 仲平
date: 2024-10-13

View File

@ -8,8 +8,8 @@ keywords:
- 自动化
- 容器化
tags:
- ComputerScience/CloudService
- CloudService/ServiceModels
- FormalSciences/ComputerScience
- CloudService/Overview
author: 仲平
date: 2024-10-13
---

View File

@ -8,8 +8,8 @@ keywords:
- 运维
- 云计算
tags:
- ComputerScience/CloudService
- CloudService/ServiceModels
- FormalSciences/ComputerScience
- CloudService/Overview
author: 仲平
date: 2024-10-13
---

View File

@ -8,8 +8,8 @@ keywords:
- 云应用
- 多租户架构
tags:
- ComputerScience/CloudService
- CloudService/ServiceModels
- FormalSciences/ComputerScience
- CloudService/Overview
author: 仲平
date: 2024-10-13
---

View File

@ -8,8 +8,8 @@ keywords:
- 事件驱动
- 容器
tags:
- ComputerScience/CloudService
- CloudService/ServiceModels
- FormalSciences/ComputerScience
- CloudService/Overview
author: 仲平
date: 2024-10-13
---

View File

@ -4,8 +4,8 @@ description: 网络基础
keywords:
- 网络基础
tags:
- 计算机网络/网络基础
- 技术/计算机网络
- FormalSciences/ComputerScience
- ComputerNetwork/Overview
author: 仲平
date: 2024-01-04
---

View File

@ -6,8 +6,8 @@ keywords:
- 网际协议
- 网络协议
tags:
- 计算机网络/IP协议
- 技术/计算机网络
- FormalSciences/ComputerScience
- ComputerNetwork/Protocols
author: 仲平
date: 2024-01-15
---

View File

@ -5,8 +5,8 @@ keywords:
- TCP
- 传输控制协议
tags:
- 计算机网络/TCP传输控制协议
- 技术/计算机网络
- FormalSciences/ComputerScience
- ComputerNetwork/Protocols
author: 仲平
date: 2024-01-11
---

View File

@ -5,8 +5,8 @@ keywords:
- UDP
- 用户数据报协议
tags:
- 计算机网络/UDP用户数据报协议
- 技术/计算机网络
- FormalSciences/ComputerScience
- ComputerNetwork/Protocols
author: 仲平
date: 2024-01-11
---
@ -17,7 +17,7 @@ UDP用户数据报协议是一种无连接的网络协议由 David P. R
UDP用户数据报协议是一种无连接的网络协议由 David P. Reed 设计并于 1980 年在 RFC 768 中首次描述。它是互联网协议套件的一部分,与 TCP 同属于传输层协议,但相较于 TCPUDP 的设计更为简单,提供更快的数据传输速度。
**UDP 的主要特点是它不像 TCP 那样提供可靠性保证。UDP 不进行连接建立,不保证数据包的顺序,也不检测重复或丢失的数据包。**这意味着它能够提供更高效的数据传输服务,尤其适用于那些可以容忍一定数据丢失但对实时性要求较高的应用,如视频会议、实时多人游戏和语音传输。
**UDP 的主要特点是它不像 TCP 那样提供可靠性保证。UDP 不进行连接建立,不保证数据包的顺序,也不检测重复或丢失的数据包。** 这意味着它能够提供更高效的数据传输服务,尤其适用于那些可以容忍一定数据丢失但对实时性要求较高的应用,如视频会议、实时多人游戏和语音传输。
尽管 UDP 本身在设计上保持不变,但在其基础上开发了许多其他协议来增强功能或满足特定需求,例如 RTP实时传输协议和 QUIC快速 UDP 互联网连接)。后者结合了 TCP 和 UDP 的优点,并增加了加密功能。

View File

@ -5,18 +5,17 @@ keywords:
- DHCP
- 动态主机配置协议
tags:
- 计算机网络/DHCP协议
- 技术/计算机网络
sidebar_position: 2
- FormalSciences/ComputerScience
- ComputerNetwork/Protocols
author: 7Wate
date: 2023-06-28
date: 2024-10-13
---
## 简介
### 定义
动态主机配置协议Dynamic Host Configuration ProtocolDHCP是一个网络协议它能够**动态地分配 IP 地址和其他网络配置参数给网络设备。**该协议由网络工作组Network Working Group所开发是在 TCP/IP 网络环境中的标准化服务。
动态主机配置协议Dynamic Host Configuration ProtocolDHCP是一个网络协议它能够**动态地分配 IP 地址和其他网络配置参数给网络设备。** 该协议由网络工作组Network Working Group所开发是在 TCP/IP 网络环境中的标准化服务。
### 历史

View File

@ -6,9 +6,8 @@ keywords:
- 域名系统
- 概述
tags:
- 计算机网络/DNS协议
- 技术/计算机网络
sidebar_position: 1
- FormalSciences/ComputerScience
- ComputerNetwork/Protocols
author: 7Wate
date: 2023-06-28
---
@ -17,7 +16,7 @@ date: 2023-06-28
### 定义和目的
**域名系统Domain Name SystemDNS是一个用于将域名如 www.example.com转换为 IP 地址的分布式数据库。**当我们在浏览器中输入一个网站的 URL 时DNS 系统就会被调用,将 URL 中的域名转换为对应的 IP 地址从而使用户能够访问到正确的网站。DNS 的存在使得用户无需记住复杂的 IP 地址,只需要记住易于理解和记忆的域名就可以访问互联网,大大提升了用户的使用体验。
**域名系统Domain Name SystemDNS是一个用于将域名如 www.example.com转换为 IP 地址的分布式数据库。** 当我们在浏览器中输入一个网站的 URL 时DNS 系统就会被调用,将 URL 中的域名转换为对应的 IP 地址从而使用户能够访问到正确的网站。DNS 的存在使得用户无需记住复杂的 IP 地址,只需要记住易于理解和记忆的域名就可以访问互联网,大大提升了用户的使用体验。
### 发展历程
@ -125,6 +124,6 @@ DNS 记录是存储在 DNS 服务器上的数据,用于定义域名的各种
## 结论
**DNS 是互联网的基础设施之一,它将用户可以理解和记忆的域名转换为计算机可以理解的 IP 地址。**这个过程涉及到多个不同类型的服务器和记录,每一个部分都在整个解析过程中扮演着重要的角色。在 DNS 查询过程中,客户端发出请求,递归服务器处理这个请求,并从权威服务器获取响应,然后将响应返回给客户端。为了提高效率,这些查询结果会被缓存在各个层级的服务器上。
**DNS 是互联网的基础设施之一,它将用户可以理解和记忆的域名转换为计算机可以理解的 IP 地址。** 这个过程涉及到多个不同类型的服务器和记录,每一个部分都在整个解析过程中扮演着重要的角色。在 DNS 查询过程中,客户端发出请求,递归服务器处理这个请求,并从权威服务器获取响应,然后将响应返回给客户端。为了提高效率,这些查询结果会被缓存在各个层级的服务器上。
尽管 DNS 已经有了几十年的历史,但它仍在不断发展和创新。新的技术如 DoH 和 DoT使得 DNS 查询可以在加密的通道中传输提高了用户的隐私保护。国际化域名则使得更多的人可以方便地使用互联网。同时DNS 也面临着一些挑战,如安全威胁、管理复杂性等,这需要我们不断地学习和改进,以保护互联网的安全和稳定。

View File

@ -1,12 +1,12 @@
---
title: IPv4 DNS 服务
title: 3.1-IPv4 DNS 服务
description: IPv4 DNS 服务 公共 DNS 服务地址
keywords:
- IPV4
- DNS
tags:
- 技术/计算机网络
- 公共服务/DNS
- FormalSciences/ComputerScience
- ComputerNetwork/PublicServices
author: 仲平
date: 2024-07-21
---

View File

@ -1,12 +1,12 @@
---
title: IPv6 DNS 服务
title: 3.2-IPv6 DNS 服务
description: IPv6 DNS 服务
keywords:
- IPv6
- DNS 服务
tags:
- 技术/计算机网络
- 公共服务/DNS
- FormalSciences/ComputerScience
- ComputerNetwork/PublicServices
author: 仲平
date: 2024-07-21
---

View File

@ -4,8 +4,8 @@ description: Mirror 镜像站
keywords:
- Mirror 镜像站
tags:
- 技术/计算机网络
- 公共服务/Mirror
- FormalSciences/ComputerScience
- ComputerNetwork/PublicServices
author: 仲平
date: 2024-07-21
---

View File

@ -4,8 +4,8 @@ description: NTP 服务器
keywords:
- NTP 服务器
tags:
- 技术/计算机网络
- 公共服务/NTP
- FormalSciences/ComputerScience
- ComputerNetwork/PublicServices
author: 仲平
date: 2024-07-21
---

View File

@ -5,9 +5,8 @@ keywords:
- CDN
- 概述
tags:
- 计算机网络/CDN应用
- 技术/计算机网络
sidebar_position: 1
- FormalSciences/ComputerScience
- ComputerNetwork/PublicServices
author: 7Wate
date: 2023-06-27
---

View File

@ -1,5 +1,5 @@
---
title: 简明指南
title: 1.1-简明指南
description: 密码学简明指南
keywords:
- 密码学

View File

@ -11,8 +11,50 @@ author: 7Wate
date: 2023-06-28
---
## 认证
**认证Identification** 是指根据声明者所特有的识别信息,确认声明者的身份。**你需要用身份证证明你自己是你自己**。比如我们常见的认证技术:身份证、用户名和密码、用户手机:手机短信、手机二维码扫描、手势密码、电子邮箱、指纹、语音、眼睛虹膜、大数据识别等等
## 授权
**授权Authorization**在信息安全领域是指**资源所有者**委派**执行者**,赋予**执行者**指定范围的资源操作权限,以便对资源的相关操作。
- **现实生活领域**:银行卡(由银行派发)、门禁卡(由物业管理处派发)、钥匙(由房东派发),这些都是现实生活中授权的实现方式。
- **互联网领域** Web 服务器的 Session 机制、Web 浏览器的 Cookie 机制、颁发授权令牌Token等都是一个授权的机制。
## 鉴权
**鉴权Authentication**在信息安全领域是指**对于一个声明者所声明的身份权利,对其所声明的真实性进行鉴别确认的过程**。若从授权出发,则会更加容易理解鉴权。授权和鉴权是两个上下游相匹配的关系:**先授权,后鉴权**。
- **现实生活领域:** 门禁卡需要通过门禁卡识别器,银行卡需要通过银行卡识别器;
- **互联网领域:** 校验 Session / Cookie / Token 的合法性和有效性
**鉴权**是一个承上启下的一个环节上游它接受授权的输出校验其真实性后然后获取权限Permission这个将会为下一步的权限控制做好准备。
## 权限控制
**权限控制Access/Permission Control** 将可执行的操作定义为权限列表,然后判断操作是否允许/禁止。对于权限控制,可以分为两部分进行理解:一个是**权限**,另一个是**控制**。**权限是抽象的逻辑概念,而控制是具体的实现方式。**
- **现实生活领域:** 以门禁卡的权限实现为例,一个门禁卡,拥有开公司所有的门的权限;一个门禁卡,拥有管理员角色的权限,因而可以开公司所有的门。
- **互联网领域:** 通过 Web 后端服务,来控制接口访问,允许或拒绝访问请求。
## 认证、授权、鉴权和权限控制的关系?
![关系](https://static.7wate.com/img/2022/08/29/05d140d5e8751.png)
**认证**、**授权**、**鉴权**和**权限控制**,这四个环节是一个**前后依次发生**、**上下游**的关系;需要说明的是,这四个环节在有些时候会同时发生。 例如在下面的几个场景:
- **使用门禁卡开门:** 认证、授权、鉴权、权限控制四个环节一气呵成,在瞬间同时发生。
- **用户的网站登录:** 用户在使用用户名和密码进行登录时,认证和授权两个环节一同完成,而鉴权和权限控制则发生在后续的请求访问中,比如在选购物品或支付时。
权限管控可以通俗的理解为权力限制,即不同的人由于拥有不同权力,他所看到的、能使用的可能不一样。对应到一个应用系统,其实就是一个用户可能拥有不同的数据权限(看到的)和操作权限(使用的)。
## 权限模型
主流的权限模型主要分为以下五种:
- **ACL 模型**:访问控制列表
@ -21,7 +63,7 @@ date: 2023-06-28
- **ABAC 模型**:基于属性的访问控制
- **RBAC 模型**:基于角色的权限访问控制
## ACL 模型:访问控制列表
### ACL 模型:访问控制列表
**Access Control List**ACL 是最早的、最基本的一种访问控制机制,是基于客体进行控制的模型,在其他模型中也有 ACL 的身影。为了解决相同权限的用户挨个配置的问题,后来也采用了用户组的方式。
@ -31,7 +73,7 @@ date: 2023-06-28
**缺点**:当主体的数量较多时,配置和维护工作就会成本大、易出错。
## DAC 模型:自主访问控制
### DAC 模型:自主访问控制
Discretionary Access ControlDAC 是 ACL 的一种拓展。
@ -41,7 +83,7 @@ Discretionary Access ControlDAC 是 ACL 的一种拓展。
**缺点**:对权限控制比较分散,例如无法简单地将一组文件设置统一的权限开放给指定的一群用户。主体的权限太大,无意间就可能泄露信息。
## MAC 模型:强制访问控制
### MAC 模型:强制访问控制
**Mandatory Access Control**MAC 模型中主要的是双向验证机制。常见于机密机构或者其他等级观念强烈的行业,如军用和市政安全领域的软件。
@ -51,7 +93,7 @@ Discretionary Access ControlDAC 是 ACL 的一种拓展。
**缺点**:控制太严格,实现工作量大,缺乏灵活性。
## ABAC 模型:基于属性的访问控制
### ABAC 模型:基于属性的访问控制
**Attribute-Based Access Control**,能很好地解决 RBAC 的缺点,在新增资源时容易维护。
@ -68,7 +110,7 @@ Discretionary Access ControlDAC 是 ACL 的一种拓展。
**缺点**:规则复杂,不易看出主体与客体之间的关系,实现非常难,现在应用的很少。
## RBAC 基于角色的权限访问控制
### RBAC 基于角色的权限访问控制
**Role-Based Access Control**,核心在于用户只和角色关联,而角色代表对了权限,是一系列权限的集合。
@ -210,6 +252,31 @@ RBAC 权限模型由三大部分构成,即**用户管理**、**角色管理**
![角色管理](https://static.7wate.com/img/2022/08/08/d81016b4c7467.png)
### 唯一登录
唯一登录是指**禁止多人同时登录同一账号,后者的登录行为,会导致前者掉线。**
通俗点讲就是A 账号在 A 电脑上登录后A 账号此时又用 B 电脑再次登录,则 A 电脑请求页面时,提示“重新登录”的信息,并跳转到登录页面
#### 唯一登录流程图
![唯一登录流程图](https://static.7wate.com/img/2022/08/30/f71a772c45d73.png)
#### 唯一登录步骤详解
#### 用户 - 客户端 A 操作
1. 输入账号请求登录接口。
2. 后端生成对应 Token 并且返回给客户端 A并且在服务端保存一个登录状态。
3. 客户端 A 保存 Token并且每次请求都在 header 头中携带对应的 Token。
#### 用户 - 客户端 B 操作
1. 输入账号请求登录接口。
2. ……
用户在客户端 B 上开始登录操作时,我们会发现,步骤和在客户端 A 上面的操作几乎是一致的。只是后端在生成新的 Token 时,要**先验证登录状态**,然后再生成对应新的 Token
## 用户管理系统权限设计中的更多实践细节
### 1. 超级管理员

View File

@ -1,8 +0,0 @@
{
"label": "权限设计方案",
"position": 2,
"link": {
"type": "generated-index",
"title": "权限设计方案"
}
}

View File

@ -1,8 +0,0 @@
{
"label": "鉴权解决方案",
"position": 3,
"link": {
"type": "generated-index",
"title": "鉴权解决方案"
}
}

View File

@ -1,38 +0,0 @@
---
title: 唯一登录
description: 唯一登录
keywords:
- 唯一登录
tags:
- 计算机安全/用户安全
- 技术/计算机安全
author: 7Wate
date: 2022-08-31
---
## 唯一登录
### 唯一登录定义
唯一登录是指**禁止多人同时登录同一账号,后者的登录行为,会导致前者掉线。**
通俗点讲就是A 账号在 A 电脑上登录后A 账号此时又用 B 电脑再次登录,则 A 电脑请求页面时,提示“重新登录”的信息,并跳转到登录页面
### 唯一登录流程图
![唯一登录流程图](https://static.7wate.com/img/2022/08/30/f71a772c45d73.png)
### 唯一登录步骤详解
#### 用户 - 客户端 A 操作
1. 输入账号请求登录接口。
2. 后端生成对应 Token 并且返回给客户端 A并且在服务端保存一个登录状态。
3. 客户端 A 保存 Token并且每次请求都在 header 头中携带对应的 Token。
#### 用户 - 客户端 B 操作
1. 输入账号请求登录接口。
2. ……
用户在客户端 B 上开始登录操作时,我们会发现,步骤和在客户端 A 上面的操作几乎是一致的。只是后端在生成新的 Token 时,要**先验证登录状态**,然后再生成对应新的 Token

View File

@ -1,52 +0,0 @@
---
title: 简明指南
description: 用户安全简明指南
keywords:
- 用户安全
- 简明指南
tags:
- 计算机安全/用户安全
- 技术/计算机安全
author: 7Wate
date: 2022-08-31
---
## 认证
**认证Identification**是指根据声明者所特有的识别信息,确认声明者的身份。**你需要用身份证证明你自己是你自己**。比如我们常见的认证技术:身份证、用户名和密码、用户手机:手机短信、手机二维码扫描、手势密码、电子邮箱、指纹、语音、眼睛虹膜、大数据识别等等
## 授权
**授权Authorization**在信息安全领域是指**资源所有者**委派**执行者**,赋予**执行者**指定范围的资源操作权限,以便对资源的相关操作。
- **现实生活领域**:银行卡(由银行派发)、门禁卡(由物业管理处派发)、钥匙(由房东派发),这些都是现实生活中授权的实现方式。
- **互联网领域** Web 服务器的 Session 机制、Web 浏览器的 Cookie 机制、颁发授权令牌Token等都是一个授权的机制。
## 鉴权
**鉴权Authentication**在信息安全领域是指**对于一个声明者所声明的身份权利,对其所声明的真实性进行鉴别确认的过程**。若从授权出发,则会更加容易理解鉴权。授权和鉴权是两个上下游相匹配的关系:**先授权,后鉴权**。
- **现实生活领域:** 门禁卡需要通过门禁卡识别器,银行卡需要通过银行卡识别器;
- **互联网领域:** 校验 Session / Cookie / Token 的合法性和有效性
**鉴权**是一个承上启下的一个环节上游它接受授权的输出校验其真实性后然后获取权限Permission这个将会为下一步的权限控制做好准备。
## 权限控制
**权限控制Access/Permission Control** 将可执行的操作定义为权限列表,然后判断操作是否允许/禁止。对于权限控制,可以分为两部分进行理解:一个是**权限**,另一个是**控制**。**权限是抽象的逻辑概念,而控制是具体的实现方式。**
- **现实生活领域:** 以门禁卡的权限实现为例,一个门禁卡,拥有开公司所有的门的权限;一个门禁卡,拥有管理员角色的权限,因而可以开公司所有的门。
- **互联网领域:** 通过 Web 后端服务,来控制接口访问,允许或拒绝访问请求。
## 认证、授权、鉴权和权限控制的关系?
![关系](https://static.7wate.com/img/2022/08/29/05d140d5e8751.png)
**认证**、**授权**、**鉴权**和**权限控制**,这四个环节是一个**前后依次发生**、**上下游**的关系;需要说明的是,这四个环节在有些时候会同时发生。 例如在下面的几个场景:
- **使用门禁卡开门:** 认证、授权、鉴权、权限控制四个环节一气呵成,在瞬间同时发生。
- **用户的网站登录:** 用户在使用用户名和密码进行登录时,认证和授权两个环节一同完成,而鉴权和权限控制则发生在后续的请求访问中,比如在选购物品或支付时。

Some files were not shown because too many files have changed in this diff Show More