API 安全進階 : 基於 OAuth 2.0 框架, 2/e Advanced API Security: The Definitive Guide to API Security

Prabath Siriwardena

買這商品的人也買了...

商品描述

在過去幾年中,API安全取得長足發展,
API安全標準的數量呈指數級增長,企業API已經成為向外界開放業務功能的常見方式。
開放功能當然很方便,但隨之而來的是被攻擊的風險。
本書將帶你學習如何更好地保護、監控和管理你的公共與私有API。
具體來說,本書將講解如何利用OAuth 2.0協議及其相關配置,
通過網絡應用、單頁面應用、本地移動應用和無瀏覽器應用來對API進行安全訪問,
並通過分析多個攻擊案例使讀者吸取經驗教訓,探究問題根源,並嘗試改進安全實踐,以減少未來發生類似攻擊的概率。
 

目錄大綱

前言
致謝
作者簡介
第1章API就是一切1
1.1 API經濟1
1.1.1 實例2
1.1.2 商業模式8
1.2 API發展歷程9
1.3 API管理14
1.4 API在微服務中的作用18
1.5 總結23
第2章API設計安全24
2.1 三重困境25
2.2 設計挑戰27
2.3 設計原則32
2.4 安全三要素39
2.5 安全控制43
2.6 總結47
第3章利用TLS協議保護API49
3.1 搭建環境49
3.2 部署訂單API51
3.3 利用TLS協議保護訂單API53
3.4 利用相互TLS協議保護訂單API55
3.5 在Docker容器中運行
OpenSSL56
3.6 總結57
第4章OAuth 2.0協議基礎58
4.1 OAuth 2.0協議簡介58
4.2 OAuth 2.0協議參與者60
4.3 授權模式60
4.4 OAuth 2.0協議令牌類型68
4.5 OAuth 2.0協議客戶類型69
4.6 JWT保護的授權請求70
4.7 推送授權請求72
4.8 總結73
第5章API網關邊際安全75
5.1 建立Zuul API網關75
5.2 為Zuul API網關啟用TLS協議78
5.3 在Zuul API網關處進行OAuth 2.0令牌驗證80
5.3.1 建立OAuth 2.0安全令牌服務80
5.3.2 測試OAuth 2.0安全令牌服務82
5.3.3 創建具備OAuth 2.0令牌驗證功能的Zuul API網關84
5.4 在Zuul API網關和訂單服務之間啟用相互TLS協議86
5.5 利用自包含訪問令牌保護訂單API90
5.5.1 建立授權服務器來發布JWT90
5.5.2 利用JWT保護Zuul API網關92
5.6 網絡應用防火牆的作用93
5.7 總結94
第6章OpenID Connect協議95
6.1 從OpenID協議到OIDC協議95
6.2 亞馬遜公司仍在使用OpenID 2.0協議98
6.3 OpenID Connect協議簡介98
6.4 ID令牌剖析99
6.5 OpenID Connect協議請求103
6.6 請求用戶屬性105
6.7 OpenID Connect協議流程107
6.8 請求定制用戶屬性108
6.9 OpenID Connect協議發現108
6.10 OpenID Connect協議身份提供方元數據111
6.11 動態客戶註冊112
6.12 用於保護API的OpenID Connect協議114
6.13 總結115
第7章利用JSON Web簽名實現消息級安全116
7.1 JSON Web令牌簡介116
7.1.1 JOSE頭部117
7.1.2 JWT聲明集合118
7.1.3 JWT簽名121
7.2 JSON Web簽名123
7.2.1 JWS緊湊序列124
7.2.2 簽名過程(緊湊序列)127
7.2.3 JWS JSON序列128
7.2.4 簽名過程(JSON序列)130
7.3 總結136
第8章利用JSON Web加密實現消息級安全137
8.1 JWE緊湊序列137
8.1.1 JOSE頭部138
8.1.2 JWE加密密鑰141
8.1.3 JWE初始向量143
8.1.4 JWE密文143
8.1.5 JWE認證標籤143
8.1.6 加密過程(緊湊序列)144
8.2 JWE JSON序列145
8.2.1 JWE受保護頭部145
8.2.2 JWE共享未保護頭部145
8.2.3 JWE各接收方未保護頭部146
8.2.4 JWE初始向量146
8.2.5 JWE密文146
8.2.6 JWE認證標籤146
8.2.7 加密過程(JSON序列)146
8.3 嵌套JWT148
8.4 總結154
第9章OAuth 2.0協議配置155
9.1 令牌自省155
9.2 鍊式授權方式158
9.3 令牌交換160
9.4 動態客戶註冊配置162
9.5 令牌廢棄配置165
9.6 總結166
第10章通過本地移動應用訪問API167
10.1 移動單點登錄167
10.2 在本地移動應用中使用OAuth 2.0協議170
10.2.1 應用間通信171
10.2.2 代碼交換證明密鑰172
10.3 無瀏覽器應用174
10.4 總結177
第11章OAuth 2.0協議令牌綁定178
11.1 令牌綁定簡介179
11.2 令牌綁定協議協商相關的TLS協議擴展180
11.3 密鑰生成181
11.4 所有權證明181
11.5 針對OAuth 2.0協議更新令牌的令牌綁定183
11.6 針對OAuth 2.0協議授權碼/訪問令牌的令牌綁定184
11.7 TLS協議終止186
11.8 總結186
第12章API聯合訪問188
12.1 啟用聯合功能188
12.2 代理認證189
12.3 安全斷言標記語言191
12.4 SAML 2.0客戶認證191
12.5 OAuth 2.0協議SAML授權模式194
12.6 OAuth 2.0協議JWT授權模式196
12.7 JWT授權模式應用197
12.8 JWT客戶認證198
12.9 JWT客戶認證應用199
12.10 JWT解析驗證201
12.11 總結202
第13章用戶管理訪問203
13.1 應用示例203
13.2 UMA 2.0協議角色205
13.3 UMA協議206
13.4 交互聲明收集209
13.5 總結210
第14章OAuth 2.0協議安全211
14.1 身份提供方混淆211
14.2 跨站請求偽造214
14.3 令牌重用215
14.4 令牌洩露/導出217
14.5 開放重定向器218
14.6 代碼攔截攻擊220
14.7 簡化授權模式中的安全缺陷220
14.8 谷歌文檔網絡釣魚攻擊221
14.9 總結223
第15章模式與實踐224
15.1 利用可信子系統進行直接認證224
15.2 利用代理訪問控制實現單點登錄225
15.3 利用集成Windows身份認證實現單點登錄226
15.4 利用代理訪問控制實現身份代理227
15.5 利用JSON Web令牌實現代理訪問控制228
15.6 利用JSON Web簽名實現不可否認性229
15.7 鍊式訪問代理230
15.8 可信主訪問代理232
15.9 利用代理訪問控制實現資源安全令牌服務233
15.10 以線上無憑據的方式實現代理訪問控制235
15.11 總結235
附錄236
附錄A 身份委託技術的發展