數字身份認證技術與實踐

田傑

  • 出版商: 清華大學
  • 出版日期: 2024-04-01
  • 定價: $654
  • 售價: 8.5$556
  • 語言: 簡體中文
  • ISBN: 730265882X
  • ISBN-13: 9787302658825
  • 下單後立即進貨 (約4週~6週)

  • 數字身份認證技術與實踐-preview-1
  • 數字身份認證技術與實踐-preview-2
  • 數字身份認證技術與實踐-preview-3
數字身份認證技術與實踐-preview-1

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

相關主題

商品描述

《數字身份認證技術與實踐》內容涵蓋身份認證的基礎理論,包括身份認證與授權的區別、常見的認證方式以及關鍵技術和協議,如SAML、OAuth 2.0、OIDC等。除基礎概念外,《數字身份認證技術與實踐》還展示如何在不同的環境中安全地接入和實現身份認證,包括純前端應用、BFF和後端領域服務。同時,《數字身份認證技術與實踐》詳細討論如何在現有應用中集成其他身份認證系統,以及如何實現社交賬號登錄等功能。對於追求深入理解的讀者,《數字身份認證技術與實踐》還準備了一些高級主題,包括在微信小程序中集成認證平臺、GraphQL中的身份認證、單點登錄、統一登出、多因素認證以及OIDC的高級許可模式等內容。《數字身份認證技術與實踐》不僅提供概念性的解釋,還借助豐富的代碼案例,使用多種編程語言(.Net、Java、Node.js)來展示身份認證技術的應用,讓讀者在實踐中加深理解。 《數字身份認證技術與實踐》是為數字化時代的軟件工程師、系統架構師、信息安全專家以及對身份認證感興趣的讀者量身定製的圖書。《數字身份認證技術與實踐》不僅可以幫助讀者建立起身份認證的知識體系,更重要的是教會讀者如何在實際工作中靈活應用這些知識。如果您希望在數字身份認證領域深入發展,或者希望提升應用安全性,那麽《數字身份認證技術與實踐》將是您理想的選擇。

目錄大綱

目  錄

第1部分  身份認證的基礎概念

第1章  什麽是身份認證 2

1.1  身份認證簡介以及和授權的聯系與區別 3

1.1.1  身份認證簡介 3

1.1.2  身份認證與授權的聯系與區別 3

1.2  認證目標對象有哪些 4

1.2.1  機器認證 4

1.2.2  人類認證 6

1.3  認證場景有哪些 7

1.3.1  2A,面向API的身份認證 8

1.3.2  2B,面向企業合作夥伴的身份認證 8

1.3.3  2C,面向客戶的身份認證 9

1.3.4  2D,面向開發者的身份認證 9

1.3.5  2E,面向內部員工的身份認證 9

1.4  常用術語有哪些 10

1.4.1  令牌與會話如何選擇 10

1.4.2  什麽是SAML、OAuth 2.0和OIDC 16

1.4.3  許可類型 21

1.4.4  訪問令牌和身份令牌的區別 28

1.4.5  刷新令牌是什麽 29

1.4.6  什麽是單點登錄 29

1.5  小結 32

第2章  認證機制與相關算法 33

2.1  認證的基本原理,怎麽證明你是誰 33

2.1.1  認證的基本原理 34

2.1.2  常見的身份驗證方法 34

2.2  電腦安全學基礎 38

2.2.1  機密性、完整性和可用性 38

2.2.2  安全機制:哈希與加密 39

2.2.3  非對稱加密在身份認證過程中的應用 40

2.3  常用的算法 42

2.3.1  SHA(重點:SHA256) 42

2.3.2  自適應單向函數 45

2.3.3  RSA 53

2.3.4  常用的簽名算法 55

2.4  JWT結構化令牌詳解 56

2.4.1  頭部 57

2.4.2  載荷 58

2.4.3  簽名 59

2.4.4  動手實驗 60

2.5  小結 62

第3章  認證解決方案 63

3.1  雲解決方案 63

3.1.1  IaaS、PaaS、SaaS與IDaaS 63

3.1.2  多租戶的概念及其實例 64

3.1.3  IDaaS實例 65

3.2  開源解決方案 65

3.2.1  基於Java的Keycloak及其關鍵組件 66

3.2.2  CAS 68

3.2.3  基於.NET Core的Duende IdentityServer 69

3.2.4  基於Node.js的OIDC Server 69

3.3  小結 70

第2部分  身份認證的實戰應用

第4章  純前端應用如何接入身份認證 72

4.1  實例講解 72

4.1.1  準備工作 72

4.1.2  實例演示 72

4.2  安全性分析及應對策略 104

4.2.1  公開客戶端 104

4.2.2  關閉隱式許可流程 105

4.2.3  開啟 PKCE 105

4.3  小結 106

第5章  前端代理服務器如何接入身份認證 107

5.1  BFF架構的演進回顧 107

5.1.1  單體應用架構 107

5.1.2  前後端分離架構 107

5.1.3  BFF架構 108

5.1.4  BFF架構的發展 108

5.2  BFF中的身份認證實現方式 111

5.3  BFF中的身份認證流程 111

5.4  示例代碼 111

5.5  實例講解 112

5.5.1  在Naive BFF中接入認證平臺 112

5.5.2  在TMI BFF中接入認證平臺 112

5.5.3  在Full BFF中接入認證平臺 116

5.6  小結 119

第6章  後端領域服務如何接入身份認證 120

6.1  領域服務和BFF有什麽區別 120

6.2  實例講解 121

6.2.1  在Java Spring Boot應用中接入認證 121

6.2.2  通過Bean方式擴展Spring應用 131

6.2.3  不使用spring-boot-starter-oauth2-resource-server 137

6.3  小結 144

第7章  成熟的產品如何接入身份認證 145

7.1  在自托管GitLab實例中集成Keycloak登錄 145

7.1.1  步驟詳解 145

7.1.2  測試登錄 153

7.1.3  總結 154

7.2  Keycloak互相集成 154

7.2.1  在線演示 154

7.2.2  單點登錄 156

7.2.3  集成步驟 159

7.3  用OIDC方式在Keycloak中集成阿裡雲登錄方式 163

7.3.1  最終效果體驗 163

7.3.2  在阿裡雲RAM訪問控制台的OAuth應用中創建應用 164

7.3.3  在Keycloak中添加Identity Provider 165

7.3.4  在阿裡雲控制台回填回調地址 168

7.3.5  在阿裡雲身份管理工作台創建用戶 168

7.3.6  在Keycloak中給Identity Provider增加Mappers 169

7.3.7  在Keycloak中給Client scopes增加Mappers 170

7.3.8  定製用戶完善資料頁面 172

7.3.9  郵箱驗證 174

7.4  小結 176

第8章  社交登錄實戰 177

8.1  在Keycloak中集成GitHub登錄 177

8.1.1  註冊應用 178

8.1.2  添加GitHub提供者 178

8.1.3  驗證 180

8.2  在IdentityServer中添加GitHub登錄 181

8.2.1  線上體驗 181

8.2.2  準備工作 182

8.2.3  核心代碼 183

8.3  在Duende IdentityServer中集成Epic Games登錄 184

8.3.1  效果演示 185

8.3.2  配置 186

8.3.3  將域名添加到組織中 187

8.3.4  概念 188

8.3.5  創建產品 188

8.3.6  創建客戶端 188

8.3.7  記下客戶端憑據 188

8.3.8  添加回調地址 189

8.3.9  創建應用 189

8.3.10  關聯客戶端 190

8.3.11  填寫法律必需的URL 190

8.3.12  Epic Games的OIDC端點 191

8.3.13  授權 192

8.3.14  獲取令牌 192

8.3.15  典型的響應 192

8.3.16  代碼實現 193

8.3.17  完成 197

8.4  三步開發社交賬號登錄 197

8.4.1  不要自行實現 197

8.4.2  自行實現的一般套路 198

8.4.3  在Keycloak中開發釘釘登錄插件 198

8.5  小結 202

第9章  本部分的總結回顧 203

9.1  對接身份認證的一般套路 203

9.1.1  在身份認證平臺註冊應用 203

9.1.2  在應用中配置身份認證平臺的信息 203

9.1.3  構造OIDC授權請求 204

9.1.4  構造OIDC Token請求 205

9.1.5  使用OIDC Token請求OIDC用戶信息 206

9.1.6  調用退出端點 206

9.1.7  相關故障排除指引 207

9.2  以Keycloak為例做個梳理 209

9.2.1  涉及的請求端點 209

9.2.2  流程圖概覽 210

9.2.3  步驟詳解 210

9.3  以一個集成測試結束 214

9.3.1  添加測試工程 216

9.3.2  添加測試類 217

9.3.3  配置發現 217

9.3.4  登錄授權 218

9.3.5  處理回調以及提取授權碼 219

9.3.6  請求令牌 220

9.3.7  請求用戶信息 220

9.3.8  總結 220

第3部分  高級主題

第10章  如何在微信小程序中集成認證平臺 222

10.1  和Web相比,微信小程序有哪些限制 222

10.2  Web View如何安全地取得小程序的原生身份信息 228

10.3  個人版小程序如何對接身份認證平臺 233

10.4  小結 237

第11章  GraphQL身份認證 238

11.1  GraphQL簡介 238

11.2  在GraphQL中如何實現身份認證 241

11.3  小結 258

第12章  如何實現單點登錄和用戶聯邦 259

12.1  用戶連接與用戶聯邦 260

12.2  單點登錄實戰 264

12.2.1  使用Keycloak打造多個系統間的單點登錄體驗 264

12.2.2  在Strapi中接入單點登錄 268

12.3  用戶聯邦實戰 275

12.3.1  在Keycloak中聯邦LDAP用戶源 275

12.3.2  基於Keycloak實現自定義的聯邦源 291

12.4  在Duende IdentityServer中實現用戶聯邦 296

12.5  小結 300

第13章  如何實現統一登出 301

13.1  僅退出當前應用 301

13.2  退出當前應用和登錄平臺 302

13.2.1  前通道 303

13.2.2  後通道 303

13.3  小結 305

第14章  靈活實現掃碼登錄 306

14.1  基於Spring Security實現公眾號關註即登錄 306

14.1.1  背景和價值 306

14.1.2  Java Spring-Security 307

14.1.3  Open API 307

14.1.4  關註公眾號即登錄的流程設計 307

14.1.5  應用架構設計 310

14.1.6  API First開發方式 311

14.1.7  基於Spring Security實現關註微信公眾號即登錄 311

14.1.8  總結 324

14.2  基於Keycloak的關註微信公眾號即登錄方案 324

14.2.1  好處 325

14.2.2  實現效果預覽 325

14.2.3  基於Keycloak的關註微信公眾號即登錄方案的實施架構 326

14.2.4  具體設計與實現 327

14.2.5  總結 334

14.3  基於Authing.cn的關註微信公眾號即登錄的實現方案 334

14.3.1  最終方案展示 335

14.3.2  關註微信公眾號即登錄的核心要件 336

14.3.3  其他方案及其與Authing.cn方案的對比 337

14.3.4  實現步驟 337

14.3.5  總結 340

14.4  對接微信登錄的三種方式 340

14.4.1  登錄原理概覽 340

14.4.2  三種登錄方式的關鍵步驟 342

14.4.3  總結 343

14.5  小結 344

第15章  多因素身份認證 345

15.1  你所擁有的東西 346

15.1.1  手機(作為令牌) 346

15.1.2  通過短信發送一次性密碼 346

15.1.3  通過電子郵件發送一次性密碼 353

15.1.4  通過原生應用生成一次性密碼 354

15.1.5  通過硬件生成一次性密碼 354

15.1.6  智能卡 354

15.1.7  硬件Fob 354

15.2  你所知道的東西 354

15.2.1  用戶名和密碼 355

15.2.2  PIN 355

15.2.3  安全問題 355

15.3  你本身就是生物識別因素 355

15.3.1  指紋 355

15.3.2  聲紋 355

15.3.3  面部識別 355

15.3.4  虹膜掃描 356

15.3.5  視網膜掃描 356

15.4  小結 356

第16章  設備碼授權流程 357

16.1  對接Keycloak設備碼授權流程 359

16.1.1  源代碼 359

16.1.2  最終效果體驗 359

16.1.3  配置 360

16.1.4  獲取用戶授權碼和設備碼 361

16.1.5  打開瀏覽器並瀏覽verification_uri 363

16.1.6  等待用戶授權 364

16.1.7  輪詢令牌 365

16.1.8  用戶授權成功 367

16.1.9  總結 367

16.2  對接Duende IdentityServer的設備碼授權流程 367

16.2.1  流程概覽 367

16.2.2  準備工作 369

16.2.3  效果演示 370

16.3  在網頁中對接設備碼授權流程 372

16.3.1  相關代碼提交 372

16.3.2  增加獲取XSRF令牌接口 372

16.3.3  測試先行 372

16.3.4  增加接口 374

16.3.5  添加網頁文件和相關的JS 375

16.3.6  本地測試 376

16.3.7  上線測試 377

16.3.8  總結 377

第17章  NONCE模式與令牌交換流程 378

17.1  NONCE模式 378

17.2  令牌交換流程 380

第4部分  身份認證的趨勢與展望

第18章  趨勢與展望 384

18.1  OIDC的新特性 384

18.1.1  JAR 384

18.1.2  PAR 385

18.2  Passkey技術 386

18.3  FIDO 386

18.4  FIDO2和WebAuthn 387

18.5  基於零信任的身份認證 387

18.5.1  核心原則 388

18.5.2  關鍵組件 388

18.5.3  實施步驟 388

18.6  分佈式身份認證 389

18.6.1  去中心化身份標識 390

18.6.2  去中心化PKI體系 390

18.6.3  可驗證憑證 391

18.7  隱私保護和數據安全 391

18.8  AI技術的應用 391

18.9  小結 391

結語 392

參考文獻 393