项目:重构
This commit is contained in:
parent
3f63f55d14
commit
5d2f6b6d05
3
.obsidian/community-plugins.json
vendored
3
.obsidian/community-plugins.json
vendored
@ -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
35
.obsidian/graph.json
vendored
@ -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
|
||||
}
|
43
.obsidian/plugins/obsidian-icon-folder/data.json
vendored
Normal file
43
.obsidian/plugins/obsidian-icon-folder/data.json
vendored
Normal 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": "💼"
|
||||
}
|
7046
.obsidian/plugins/obsidian-icon-folder/main.js
vendored
Normal file
7046
.obsidian/plugins/obsidian-icon-folder/main.js
vendored
Normal file
File diff suppressed because one or more lines are too long
10
.obsidian/plugins/obsidian-icon-folder/manifest.json
vendored
Normal file
10
.obsidian/plugins/obsidian-icon-folder/manifest.json
vendored
Normal 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
|
||||
}
|
119
.obsidian/plugins/obsidian-icon-folder/styles.css
vendored
Normal file
119
.obsidian/plugins/obsidian-icon-folder/styles.css
vendored
Normal 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
BIN
FormalSciences/ComputerScience/.DS_Store
vendored
Normal file
Binary file not shown.
BIN
FormalSciences/ComputerScience/CloudService/.DS_Store
vendored
Normal file
BIN
FormalSciences/ComputerScience/CloudService/.DS_Store
vendored
Normal file
Binary file not shown.
@ -8,7 +8,7 @@ keywords:
|
||||
- 网络
|
||||
- 传统架构
|
||||
tags:
|
||||
- ComputerScience/CloudService
|
||||
- FormalSciences/ComputerScience
|
||||
- CloudService/Overview
|
||||
author: 仲平
|
||||
date: 2024-10-13
|
||||
|
@ -9,7 +9,7 @@ keywords:
|
||||
- 云服务器
|
||||
- 云平台
|
||||
tags:
|
||||
- ComputerScience/CloudService
|
||||
- FormalSciences/ComputerScience
|
||||
- CloudService/Overview
|
||||
author: 仲平
|
||||
date: 2024-10-13
|
||||
|
@ -8,8 +8,8 @@ keywords:
|
||||
- 自动化
|
||||
- 容器化
|
||||
tags:
|
||||
- ComputerScience/CloudService
|
||||
- CloudService/ServiceModels
|
||||
- FormalSciences/ComputerScience
|
||||
- CloudService/Overview
|
||||
author: 仲平
|
||||
date: 2024-10-13
|
||||
---
|
||||
|
@ -8,8 +8,8 @@ keywords:
|
||||
- 运维
|
||||
- 云计算
|
||||
tags:
|
||||
- ComputerScience/CloudService
|
||||
- CloudService/ServiceModels
|
||||
- FormalSciences/ComputerScience
|
||||
- CloudService/Overview
|
||||
author: 仲平
|
||||
date: 2024-10-13
|
||||
---
|
||||
|
@ -8,8 +8,8 @@ keywords:
|
||||
- 云应用
|
||||
- 多租户架构
|
||||
tags:
|
||||
- ComputerScience/CloudService
|
||||
- CloudService/ServiceModels
|
||||
- FormalSciences/ComputerScience
|
||||
- CloudService/Overview
|
||||
author: 仲平
|
||||
date: 2024-10-13
|
||||
---
|
||||
|
@ -8,8 +8,8 @@ keywords:
|
||||
- 事件驱动
|
||||
- 容器
|
||||
tags:
|
||||
- ComputerScience/CloudService
|
||||
- CloudService/ServiceModels
|
||||
- FormalSciences/ComputerScience
|
||||
- CloudService/Overview
|
||||
author: 仲平
|
||||
date: 2024-10-13
|
||||
---
|
||||
|
@ -4,8 +4,8 @@ description: 网络基础
|
||||
keywords:
|
||||
- 网络基础
|
||||
tags:
|
||||
- 计算机网络/网络基础
|
||||
- 技术/计算机网络
|
||||
- FormalSciences/ComputerScience
|
||||
- ComputerNetwork/Overview
|
||||
author: 仲平
|
||||
date: 2024-01-04
|
||||
---
|
@ -6,8 +6,8 @@ keywords:
|
||||
- 网际协议
|
||||
- 网络协议
|
||||
tags:
|
||||
- 计算机网络/IP协议
|
||||
- 技术/计算机网络
|
||||
- FormalSciences/ComputerScience
|
||||
- ComputerNetwork/Protocols
|
||||
author: 仲平
|
||||
date: 2024-01-15
|
||||
---
|
@ -5,8 +5,8 @@ keywords:
|
||||
- TCP
|
||||
- 传输控制协议
|
||||
tags:
|
||||
- 计算机网络/TCP传输控制协议
|
||||
- 技术/计算机网络
|
||||
- FormalSciences/ComputerScience
|
||||
- ComputerNetwork/Protocols
|
||||
author: 仲平
|
||||
date: 2024-01-11
|
||||
---
|
@ -5,8 +5,8 @@ keywords:
|
||||
- UDP
|
||||
- 用户数据报协议
|
||||
tags:
|
||||
- 计算机网络/UDP用户数据报协议
|
||||
- 技术/计算机网络
|
||||
- FormalSciences/ComputerScience
|
||||
- ComputerNetwork/Protocols
|
||||
author: 仲平
|
||||
date: 2024-01-11
|
||||
---
|
@ -5,11 +5,10 @@ keywords:
|
||||
- DHCP
|
||||
- 动态主机配置协议
|
||||
tags:
|
||||
- 计算机网络/DHCP协议
|
||||
- 技术/计算机网络
|
||||
sidebar_position: 2
|
||||
- FormalSciences/ComputerScience
|
||||
- ComputerNetwork/Protocols
|
||||
author: 7Wate
|
||||
date: 2023-06-28
|
||||
date: 2024-10-13
|
||||
---
|
||||
|
||||
## 简介
|
@ -6,9 +6,8 @@ keywords:
|
||||
- 域名系统
|
||||
- 概述
|
||||
tags:
|
||||
- 计算机网络/DNS协议
|
||||
- 技术/计算机网络
|
||||
sidebar_position: 1
|
||||
- FormalSciences/ComputerScience
|
||||
- ComputerNetwork/Protocols
|
||||
author: 7Wate
|
||||
date: 2023-06-28
|
||||
---
|
@ -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
|
||||
---
|
@ -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
|
||||
---
|
@ -4,8 +4,8 @@ description: Mirror 镜像站
|
||||
keywords:
|
||||
- Mirror 镜像站
|
||||
tags:
|
||||
- 技术/计算机网络
|
||||
- 公共服务/Mirror
|
||||
- FormalSciences/ComputerScience
|
||||
- ComputerNetwork/PublicServices
|
||||
author: 仲平
|
||||
date: 2024-07-21
|
||||
---
|
@ -4,8 +4,8 @@ description: NTP 服务器
|
||||
keywords:
|
||||
- NTP 服务器
|
||||
tags:
|
||||
- 技术/计算机网络
|
||||
- 公共服务/NTP
|
||||
- FormalSciences/ComputerScience
|
||||
- ComputerNetwork/PublicServices
|
||||
author: 仲平
|
||||
date: 2024-07-21
|
||||
---
|
@ -5,9 +5,8 @@ keywords:
|
||||
- CDN
|
||||
- 概述
|
||||
tags:
|
||||
- 计算机网络/CDN应用
|
||||
- 技术/计算机网络
|
||||
sidebar_position: 1
|
||||
- FormalSciences/ComputerScience
|
||||
- ComputerNetwork/PublicServices
|
||||
author: 7Wate
|
||||
date: 2023-06-27
|
||||
---
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
title: 简明指南
|
||||
title: 1.1-简明指南
|
||||
description: 密码学简明指南
|
||||
keywords:
|
||||
- 密码学
|
@ -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 Control,DAC 是 ACL 的一种拓展。
|
||||
|
||||
@ -41,7 +83,7 @@ Discretionary Access Control,DAC 是 ACL 的一种拓展。
|
||||
|
||||
**缺点**:对权限控制比较分散,例如无法简单地将一组文件设置统一的权限开放给指定的一群用户。主体的权限太大,无意间就可能泄露信息。
|
||||
|
||||
## MAC 模型:强制访问控制
|
||||
### MAC 模型:强制访问控制
|
||||
|
||||
**Mandatory Access Control**,MAC 模型中主要的是双向验证机制。常见于机密机构或者其他等级观念强烈的行业,如军用和市政安全领域的软件。
|
||||
|
||||
@ -51,7 +93,7 @@ Discretionary Access Control,DAC 是 ACL 的一种拓展。
|
||||
|
||||
**缺点**:控制太严格,实现工作量大,缺乏灵活性。
|
||||
|
||||
## ABAC 模型:基于属性的访问控制
|
||||
### ABAC 模型:基于属性的访问控制
|
||||
|
||||
**Attribute-Based Access Control**,能很好地解决 RBAC 的缺点,在新增资源时容易维护。
|
||||
|
||||
@ -68,7 +110,7 @@ Discretionary Access Control,DAC 是 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. 超级管理员
|
@ -0,0 +1 @@
|
||||
|
@ -0,0 +1 @@
|
||||
|
@ -1,8 +0,0 @@
|
||||
{
|
||||
"label": "权限设计方案",
|
||||
"position": 2,
|
||||
"link": {
|
||||
"type": "generated-index",
|
||||
"title": "权限设计方案"
|
||||
}
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
{
|
||||
"label": "鉴权解决方案",
|
||||
"position": 3,
|
||||
"link": {
|
||||
"type": "generated-index",
|
||||
"title": "鉴权解决方案"
|
||||
}
|
||||
}
|
@ -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;
|
@ -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)
|
||||
|
||||
**认证**、**授权**、**鉴权**和**权限控制**,这四个环节是一个**前后依次发生**、**上下游**的关系;需要说明的是,这四个环节在有些时候会同时发生。 例如在下面的几个场景:
|
||||
|
||||
- **使用门禁卡开门:** 认证、授权、鉴权、权限控制四个环节一气呵成,在瞬间同时发生。
|
||||
|
||||
- **用户的网站登录:** 用户在使用用户名和密码进行登录时,认证和授权两个环节一同完成,而鉴权和权限控制则发生在后续的请求访问中,比如在选购物品或支付时。
|
@ -0,0 +1 @@
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user