數字身份認證技術與實踐
田傑
買這商品的人也買了...
-
$1,000$900 -
$480$379 -
$250超標量處理器設計
-
$594$564 -
$650$585 -
$420$331 -
$300$270 -
$520$411 -
$301特徵工程入門與實踐 (Feature Engineering Made Easy)
-
$680$612 -
$480$336 -
$880$695 -
$380$342 -
$580$458 -
$680$530 -
$690$538 -
$380$300 -
$500$490 -
$690$538 -
$359產品經理方法論 構建完整的產品知識體系
-
$690$538 -
$600$468 -
$760$593 -
$580$458 -
$414$393
相關主題
商品描述
《數字身份認證技術與實踐》內容涵蓋身份認證的基礎理論,包括身份認證與授權的區別、常見的認證方式以及關鍵技術和協議,如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