- ISBN:9787302658825
- 装帧:平装-胶订
- 册数:暂无
- 重量:暂无
- 开本:其他
- 页数:412
- 出版时间:2024-04-01
- 条形码:9787302658825 ; 978-7-302-65882-5
本书特色
《数字身份认证技术与实践》为您带来全新的视角,不仅剖析了身份认证的重要性,更以深入浅出的方式解读了标准化解决方案在实际场景中的应用。身份认证不再是简单的注册登录,而是系统安全的基石,《数字身份认证技术与实践》提供了丰富的案例,从作者的一线实践到对外咨询的经验,为读者呈现了多样化的解决方案。无论您是初学者还是专业人士,《数字身份认证技术与实践》都将带领您探索身份认证的核心理论,并在实践中获得深刻的启示。
内容简介
《数字身份认证技术与实践》内容涵盖身份认证的基础理论,包括身份认证与授权的区别、常见的认证方式以及关键技术和协议,如SAML、OAuth 2.0、OIDC等。除基础概念外,《数字身份认证技术与实践》还展示如何在不同的环境中安全地接入和实现身份认证,包括纯前端应用、BFF和后端领域服务。同时,《数字身份认证技术与实践》详细讨论如何在现有应用中集成其他身份认证系统,以及如何实现社交账号登录等功能。对于追求深入理解的读者,《数字身份认证技术与实践》还准备了一些高级主题,包括在微信小程序中集成认证平台、GraphQL中的身份认证、单点登录、统一登出、多因素认证以及OIDC的高级许可模式等内容。《数字身份认证技术与实践》不仅提供概念性的解释,还借助丰富的代码案例,使用多种编程语言(.Net、Java、Node.js)来展示身份认证技术的应用,让读者在实践中加深理解。 《数字身份认证技术与实践》是为数字化时代的软件工程师、系统架构师、信息安全专家以及对身份认证感兴趣的读者量身定制的图书。《数字身份认证技术与实践》不仅可以帮助读者建立起身份认证的知识体系,更重要的是教会读者如何在实际工作中灵活应用这些知识。如果您希望在数字身份认证领域深入发展,或者希望提升应用安全性,那么《数字身份认证技术与实践》将是您理想的选择。
目录
第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
作者简介
田杰 复旦大学软件工程硕士,研究方向为企业信息化。曾经在 DHL、英孚教育任职,目前供职于XX集团中国数字技术部,担任资深软件工程师。对身份认证领域有着非常丰富的上手经验,在知乎等平台受到较多关注,并通过付费咨询方式帮助众多企业解决了他们面临的身份认证相关问题。
-
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥31.9¥65.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥76.3¥109.0 -
UG NX 12.0数控编程
¥22.1¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
UN NX 12.0多轴数控编程案例教程
¥25.8¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥83.3¥119.0 -
Visual Basic 语言程序设计基础(第6版)
¥32.0¥45.0