File tree Expand file tree Collapse file tree 3 files changed +78
-1
lines changed
content/dev/authentication-and-authorization-in-a-distributed-system
resources/_gen/assets/scss/scss
themes/hugo-coder/assets/scss Expand file tree Collapse file tree 3 files changed +78
-1
lines changed Original file line number Diff line number Diff line change @@ -10,6 +10,9 @@ og_image: "https://img.bmpi.dev/0f3dfb95-7f80-2311-74f1-f70ea7fd9a69.png"
1010categories : [
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+ <!--  -->
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
Original file line number Diff line number Diff 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;
Original file line number Diff line number Diff 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 ;
You can’t perform that action at this time.
0 commit comments