Skip to content

Commit baddebb

Browse files
committed
u /dev/authentication-and-authorization-in-a-distributed-system/
1 parent 8975f03 commit baddebb

File tree

3 files changed

+78
-1
lines changed

3 files changed

+78
-1
lines changed

content/dev/authentication-and-authorization-in-a-distributed-system/index.zh-cn.md

Lines changed: 66 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ og_image: "https://img.bmpi.dev/0f3dfb95-7f80-2311-74f1-f70ea7fd9a69.png"
1010
categories: [
1111
"分布式技术"
1212
]
13+
markmap:
14+
enabled: true
15+
id: "authentication-and-authorization-in-a-distributed-system"
1316
---
1417

1518
在软件系统设计中,如何让应用能够在各种环境中安全高效的访问是个复杂的问题,这个问题的背后是一系列软件设计时需要考虑的架构安全问题:<sup>[架构安全性 | 凤凰架构](https://icyfenix.cn/architect-perspective/general-architecture/system-security/)</sup>
@@ -22,7 +25,69 @@ categories: [
2225

2326
在漫长的架构演进历史中,业界对这些问题已经有很成熟的解决方案。在架构安全这块,最好的是遵循技术标准与最佳实践,尽可能**不重复造轮子或“创新”**。下面这个思维导图就是针对这些问题的常见的技术标准及方案:
2427

25-
![](https://img.bmpi.dev/0f3dfb95-7f80-2311-74f1-f70ea7fd9a69.png)
28+
<!-- ![](https://img.bmpi.dev/0f3dfb95-7f80-2311-74f1-f70ea7fd9a69.png) -->
29+
30+
```markmap
31+
# 架构安全
32+
## 认证
33+
### 方式
34+
#### 通信信道上的认证
35+
##### SSL/TLS
36+
- 加密算法
37+
- 生成密钥
38+
- 公钥分发
39+
- CA 认证
40+
- 核验公钥
41+
- 签名
42+
- 验证
43+
#### 通信协议上的认证
44+
##### HTTP
45+
- RFC 7235
46+
- HTTP Basic
47+
- RFC 7616
48+
- Digest
49+
- RFC 6750
50+
- Bearer
51+
- RFC 7486
52+
- HOBA
53+
- RFC 6287
54+
- OCRA(质疑/应答算法)
55+
- 扩展方案
56+
- AWS4-HMAC-SHA256
57+
- Windows Live ID
58+
- Twitter Basic
59+
#### 通信内容上的认证
60+
##### Web认证
61+
- 表单认证
62+
- RFC 6238
63+
- TOTP(基于时间的一次性密码算法)
64+
- WebAuthn
65+
### SSO
66+
- Kerberos-based
67+
- CAS
68+
- SAML
69+
- OIDC
70+
## 授权
71+
### 访问控制
72+
- ACL
73+
- RBAC
74+
- ABAC
75+
### OAuth2
76+
- 授权码模式
77+
- 隐式授权模式
78+
- 密码模式
79+
- 客户端模式
80+
## 凭证
81+
### 自包含令牌
82+
- JWT
83+
### 引用令牌
84+
- Cookie-Session
85+
## 实现
86+
### Java
87+
- JAAS
88+
- Shiro
89+
- Spring Security
90+
```
2691

2792
在研究分布式系统的认证和授权问题前,让我们回到单体架构的时代,看看在单体架构上这些问题是如何被解决的。
2893

resources/_gen/assets/scss/scss/coder.scss_fd4b5b3f9a48bc0c7f005d2f7a4cc30f.content

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -425,6 +425,11 @@ div.notices.tip p:first-child:after {
425425
@media only screen and (max-width: 768px) {
426426
*[id^='markmap-software-engineering-at-google-tool-0'] > svg {
427427
height: 350px; } }
428+
*[id^='markmap-authentication-and-authorization-in-a-distributed-system-0'] > svg {
429+
height: 600px; }
430+
@media only screen and (max-width: 768px) {
431+
*[id^='markmap-authentication-and-authorization-in-a-distributed-system-0'] > svg {
432+
height: 350px; } }
428433
.mermaid {
429434
width: 100%;
430435
height: auto;

themes/hugo-coder/assets/scss/_base.scss

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -511,6 +511,13 @@ div.notices.tip p:first-child:after {
511511
}
512512
}
513513

514+
*[id^='markmap-authentication-and-authorization-in-a-distributed-system-0'] > svg {
515+
height: 600px;
516+
@media only screen and (max-width : 768px) {
517+
height: 350px;
518+
}
519+
}
520+
514521
.mermaid {
515522
width: 100%;
516523
height: auto;

0 commit comments

Comments
 (0)