惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
NISL@THU
NISL@THU
E
Exploit-DB.com RSS Feed
L
LINUX DO - 热门话题
L
Lohrmann on Cybersecurity
K
Kaspersky official blog
Project Zero
Project Zero
Cisco Talos Blog
Cisco Talos Blog
T
The Exploit Database - CXSecurity.com
P
Palo Alto Networks Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Threatpost
S
Schneier on Security
G
GRAHAM CLULEY
The Hacker News
The Hacker News
T
Threat Research - Cisco Blogs
Scott Helme
Scott Helme
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Privacy & Cybersecurity Law Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Cyberwarzone
Cyberwarzone
C
CERT Recently Published Vulnerability Notes
T
Tor Project blog
AWS News Blog
AWS News Blog
Simon Willison's Weblog
Simon Willison's Weblog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
爱范儿
爱范儿
P
Privacy International News Feed
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
S
Securelist
G
Google Developers Blog
The Last Watchdog
The Last Watchdog
Google Online Security Blog
Google Online Security Blog
美团技术团队
F
Fortinet All Blogs
小众软件
小众软件
Recorded Future
Recorded Future
V
Visual Studio Blog
B
Blog RSS Feed
H
Help Net Security
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Google DeepMind News
Google DeepMind News
Blog — PlanetScale
Blog — PlanetScale
博客园 - 聂微东
Stack Overflow Blog
Stack Overflow Blog
Martin Fowler
Martin Fowler
Latest news
Latest news
Spread Privacy
Spread Privacy
H
Heimdal Security Blog

土法炼钢兴趣小组的算法知识备份

国密算法与国密 TLS 系列索引 【系统架构设计】架构质量属性:不只是"高可用高性能" 【系统架构设计百科】告警策略:如何避免"狼来了" 【系统架构设计】CQRS:读写分离的架构哲学 【系统架构设计】空间架构:极端扩展场景的解法 【系统架构设计】微服务架构深度审视:优势、代价与适用边界 【系统架构设计】扩展性原理:水平、垂直与对角扩展 【系统架构设计】无状态设计:扩展的第一步也是最难的一步 【系统架构设计】缓存架构:从本地到分布式的多级缓存体系 【系统架构设计】管道与过滤器:Unix 哲学的架构表达 【系统架构设计】复杂性管理:架构的核心战场 【系统架构设计】消息队列架构:异步解耦的设计与陷阱 【系统架构设计】CDN 架构:全球加速的设计原理 【系统架构设计】连接池设计:被忽视的性能杀手 【系统架构设计】弹性设计模式:熔断器、舱壁与超时 【系统架构设计】高可用设计模式:冗余、故障转移与仲裁 【系统架构设计】容量规划:从拍脑袋到数据驱动 【系统架构设计】数据库扩展:分库分表的工程实践与替代方案 【系统架构设计】SLO 工程:可靠性的量化管理 【系统架构设计】性能建模:用数学思维分析系统瓶颈 【系统架构设计】混沌工程:主动验证系统的韧性 【系统架构设计】零拷贝与内存映射:数据搬运的极致优化 【系统架构设计】线程模型:从 thread-per-request 到协程 【系统架构设计】容灾架构:多活与灾备设计 【系统架构设计】数据库性能模式:索引、查询与连接管理 【系统架构设计】数据建模:从关系范式到文档模型的真实权衡 【系统架构设计】吞吐量优化:批处理、流水线与并发模型 【系统架构设计】流处理架构:从批处理到实时的范式迁移 【系统架构设计】搜索引擎架构:倒排索引之上的系统设计 【系统架构设计】时序数据架构:监控与 IoT 的存储设计 【系统架构设计】数据迁移与版本化:在线不停机的数据演进 【系统架构设计】数据湖与数据仓库:分析架构的演进路线 【系统架构设计】API 网关设计:入口层的职责边界 【系统架构设计】应用层数据一致性模式:在正确性与性能之间走钢丝 【系统架构设计】多模数据库选型:Polyglot Persistence 的工程实践 【系统架构设计】服务发现与注册:动态拓扑的基础设施 【系统架构设计】配置管理架构:从配置文件到配置中心 【系统架构设计】全链路压测:大规模系统的性能验证 【系统架构设计】幂等性设计:分布式环境下的安全重试 【系统架构设计】契约测试与 Schema 演进:服务间的信任协议 【系统架构设计】长连接与推送架构:WebSocket、SSE 与 MQTT 【系统架构设计】延迟分析:从 P50 到 P999 的全链路追踪 【系统架构设计百科】DDD 战术模式:聚合、实体与值对象 【系统架构设计百科】防腐层与开放主机服务:系统集成的 DDD 方案 【系统架构设计百科】领域事件与事件风暴:从业务到架构的桥梁 【系统架构设计百科】CQRS + Event Sourcing 完整实战:从领域建模到部署 【系统架构设计百科】DDD 与微服务:用领域模型划分服务边界 【系统架构设计】DDD 战略设计:限界上下文与上下文映射 【系统架构设计百科】认证架构:从 Session 到 JWT 到 OIDC 【系统架构设计】API 设计哲学:REST vs GraphQL vs gRPC 的真实权衡 排序算法专题:从 TimSort 到并行排序 【密码学百科】国密算法体系:SM2/SM3/SM4/SM9 全景解读 【密码学百科】承诺方案:Pedersen 承诺、向量承诺与多项式承诺 【密码学百科】不经意传输与隐私信息检索:OT、OT 扩展与 PIR 【密码学百科】门限密码学:门限签名、门限解密与分布式密钥生成 完美哈希:从理论到 gperf 实践 【密码学百科】安全多方计算:从 Yao 的混淆电路到实用 MPC 【密码学百科】同态加密:从 Paillier 到全同态加密(FHE) 【密码学百科】零知识证明系统:zk-SNARKs、zk-STARKs 与 Bulletproofs 【密码学百科】概率论与密码分析:生日攻击、差分分析与线性分析 【密码学百科】计算复杂性与归约:密码安全性证明的基石 【密码学百科】秘密共享:Shamir 方案、VSS 与安全多方计算入口 【密码学百科】椭圆曲线代数:Weierstrass 方程、点群运算与曲线选择 【密码学百科】离散对数与配对密码学:从 DLP 到 BLS 签名 【密码学百科】格密码数学基础:SVP、LWE 与格基约化 【密码学百科】抽象代数:群、环、域的密码学视角 【密码学百科】有限域算术:GF(2^n) 运算与在 AES/ECC 中的应用 【密码学百科】数论进阶:二次剩余、椭圆曲线上的 Weil 配对 【密码学百科】密码学简史:从凯撒密码到量子时代 【密码学百科】威胁模型与安全目标:CIA 三要素之外 【密码学百科】Kerckhoffs 原则与现代密码设计哲学 【密码学百科】随机性:密码学的基石 【密码学百科】信息论入门:熵、完美保密与 Shannon 定理 【密码学百科】分组密码原理:Feistel 网络与 SPN 结构 【密码学百科】AES 逐步拆解:SubBytes 到 MixColumns 的数学 【密码学百科】分组密码工作模式全览:ECB/CBC/CTR/OFB/CFB 【密码学百科】流密码:RC4 的兴衰与 ChaCha20 的崛起 【密码学百科】密码学哈希函数:MD5→SHA-2→SHA-3 的进化之路 【密码学百科】MAC 与 HMAC:消息认证的正确姿势 【密码学百科】认证加密(AEAD):GCM、ChaCha20-Poly1305 与 OCB 【密码学百科】密钥派生函数:HKDF、PBKDF2、Argon2 与密码存储 【密码学百科】公钥密码的数论基础:模运算、群、原根 【密码学百科】RSA 从原理到攻击:教科书 RSA 为什么不安全 【密码学百科】Diffie-Hellman 密钥交换与离散对数问题 【密码学百科】椭圆曲线密码学(ECC):从几何直觉到点群运算 【密码学百科】数字签名:ECDSA、EdDSA 与 Schnorr 签名 【密码学百科】现代密钥交换:X25519、ECDHE 与前向保密 【密码学百科】混合加密与 KEM/DEM 范式:ECIES 与 HPKE 【密码学百科】填充方案:PKCS#1 v1.5、OAEP 与 PSS 【密码学百科】TLS 协议全解析:从握手到 0-RTT 【密码学百科】PKI 与数字证书:信任链的构建与崩塌 【密码学百科】密码认证协议:从 SRP 到 OPAQUE 【密码学百科】零知识证明入门:如何证明你知道而不泄露 【密码学百科】安全信道构造:Noise 协议框架与 Signal 协议 【密码学百科】密钥管理工程:HSM、KMS 与密钥生命周期 【密码学百科】侧信道攻击:从时序攻击到功耗分析 【密码学百科】密码学实现陷阱:三层漏洞分类、审计工具链与系统性预防 密码敏捷性:如何设计可升级的密码系统 【密码学百科】OpenSSL/BoringSSL 架构剖析:ENGINE、Provider 与 FIPS 模块 排序基准测试:用数据说话
【身份与访问控制工程】CIAM 架构:面向 B2B / B2C SaaS 的身份平台
Liao Tonglang · 2026-06-21 · via 土法炼钢兴趣小组的算法知识备份

前 17 篇文章讨论的 IAM 机制(OIDC、SAML、MFA、权限模型、令牌管理)是”通用组件”——既适用于员工身份管理(Workforce IAM),也适用于客户身份管理(CIAM,Customer IAM)。但当这些组件被放在”面向外部客户”的场景中,架构的优先顺序完全变了。

本文聚焦 CIAM 与 Workforce IAM 架构的五个本质差异。

一、CIAM vs Workforce IAM:五个本质差异

维度 Workforce IAM(员工) CIAM(客户)
用户量级 千到万 十万到亿
用户来源 HR 系统导入 + IT 创建 自注册 + 社交登录 + 邀请
身份生命周期 入职→变岗→离职(HR 驱动) 注册→活跃→沉默→流失→重新激活
认证强度要求 高(MFA 强制、设备管理、零信任) 中(平衡安全与转化率)
隐私与合规 员工隐私政策(相对统一) GDPR/CCPA/PCI —— 同意管理、数据删除、数据可携带
用户体验优先级 安全第一 转化率第一(每多一个注册步骤流失 20-40% 用户)
与其他系统的集成 HR、ITSM、设备管理 CRM、营销自动化、推荐引擎、CDP

CIAM 的核心张力不是技术性的——它是”用户体验(转化率)“和”安全”之间的持续平衡。Workforce IAM 的默认立场是”不信任”(MFA 强制、Session 有效期短),而 CIAM 的默认立场是”信任直到有理由怀疑”(减少摩擦、允许社交登录、延长会话有效期)。

二、注册漏斗与渐进式画像

CIAM 的注册不是”HR 录入员工信息”——它是一个转化漏斗,每一步都会丢失用户。

触达 Landing Page
  → 点击注册 (留存 30%)
    → 填写注册表单 (留存 50%)
      → 邮箱验证 (留存 80%——但 20% 用户不查邮箱)
        → 首次登录 = 总留存约 12%

减少流失的工程策略:

  1. 社交登录(Social Login):点击”用 Google 登录”省略整个注册表单。转化率提升 20-50%。
  2. 渐进式画像(Progressive Profiling):注册时只问三件事(邮箱、密码、名字),其余信息(公司、角色、使用场景)在后续使用中逐步收集——每次只问一个问题,在自然流转中出现。
  3. 延迟验证:注册后立即进入应用(有基础功能),在后台发送验证邮件。用户不用等待邮件就能开始使用。在执行关键操作(如付款、创建团队)时强制验证邮箱。

2.1 防止注册滥用

开放的注册端点容易被滥用——机器人注册、一次性邮箱注册、撞库。防御策略:

  • CAPTCHA / Turnstile:Cloudflare Turnstile(不可见 CAPTCHA)对转化率的影响远小于传统 reCAPTCHA(需要点击”我不是机器人”)。
  • 一次性邮箱域名黑名单:维护已知的一次性邮箱域名列表(如 mailinator.comguerrillamail.com),在注册时拒收。
  • 速率限制:同一 IP 每 15 分钟最多注册 3 个账号。
  • 邮箱格式启发式:检测随机字符串 + 已知邮箱域名(如 a1b2c3d4@gmail.com),要求额外验证。

三、同意管理(Consent Management)

CIAM 的合规性需求(GDPR、CCPA、中国的《个人信息保护法》)比 Workforce IAM 高一个数量级,因为”客户数据”和”员工数据”在法规上的保护级别不同。

CIAM 的同意管理系统需要追踪:

CREATE TABLE user_consents (
    user_id        UUID NOT NULL,
    consent_type   VARCHAR(64) NOT NULL,   -- 'marketing_email', 'data_processing', 'third_party_sharing'
    consented      BOOLEAN NOT NULL,       -- true = opt-in, false = opt-out
    consent_source VARCHAR(128),           -- 'registration_form', 'preference_center', 'api'
    ip_address     INET,
    user_agent     TEXT,
    consented_at   TIMESTAMP NOT NULL,
    revoked_at     TIMESTAMP,              -- NULL = still active
    consent_version VARCHAR(32) NOT NULL,  -- 同意条款的版本号
    PRIMARY KEY (user_id, consent_type, consent_version)
);

关键设计点:

  • 版本化:当隐私政策或使用条款更新时,旧版本的同意不一定仍然有效。某些法规要求用户重新同意。
  • 不可否认性:需要保存完整的同意记录——包括时间戳、IP、当时的条款版本和内容快照——以应对审计和用户投诉。
  • 数据删除权:用户请求删除数据时,大多数数据必须被物理删除,但同意记录可能需要保留(作为”他们当时同意了”的法律证据)。这需要事前在数据分类中标识”不可删除的合规记录”。

工程陷阱:很多团队把同意记录存在 Elasticsearch 的日志里,然后日志设了 90 天 TTL——当监管机构 2 年后要求提供证据时,同意记录早已被清理。同意记录需要存储在不可轮转的持久存储中(如 S3 的合规存储桶、专门的审计数据库表)。

许多 SaaS 平台同时有 B2C 用户(个人消费者)和 B2B 用户(企业客户)。第一种方案是两套独立的 CIAM 实例——B2C 和 B2B 的用户基础是分离的。第二种方案是统一身份平台——同一套 CIAM 同时服务 B2C 和 B2B,用户可能在 B2C 注册后升级到 B2B(通过加入组织或购买企业方案)。

混合架构的挑战在于授权模型的差异:

  • B2C 用户:自注册,个人资料,个人订阅,没有组织。
  • B2B 用户:通过 SSO 或组织邀请加入,属于一个组织,权限由组织管理员管理。

在统一平台中,User 表需要支持两种身份来源:

CREATE TABLE users (
    id              UUID PRIMARY KEY,
    email           VARCHAR(255) UNIQUE,
    identity_source VARCHAR(32),  -- 'self_registered', 'sso', 'invited', 'admin_created'
    tenant_id       UUID,         -- NULL for B2C, NOT NULL for B2B
    -- ...
);

权限检查需要区分: - 如果 tenant_id IS NULL → 用户是 B2C 用户,权限由平台默认 RBAC 决定。 - 如果 tenant_id IS NOT NULL → 用户是 B2B 用户,权限由该租户的角色 + 组织树决定。

五、小结

CIAM 工程的核心不是新协议或新技术,而是新优先级:

  1. 转化率是 KPI——每个额外的注册字段在流失用户,每个额外的认证步骤也在流失用户。
  2. 合规不是可选的附加模块——GDPR/CCPA/个保法的数据删除权、数据可携带权、同意撤回权必须从第 1 天就内建在数据模型中。
  3. 同意记录是合规证据——不可轮转,不可丢失——存储在持久化的审计存储中。
  4. B2B/B2C 混合不是两套代码——是一套统一身份平台,通过 tenant_id 和权限模型区分行为。

上一篇自建还是采购:Keycloak、Auth0、Entra、Okta 对比 下一篇PAM、IGA 与审计合规

同主题继续阅读

把当前热点继续串成多页阅读,而不是停在单篇消费。

2026-06-19 · architecture / security

【身份与访问控制工程】B2B SaaS 多租户权限设计

多租户权限系统是 IAM 中工程复杂度最高的场景之一——每个租户想要自己的角色、自己的组织树、自己的审批流和完全隔离的数据。这四种需求会互相冲突。本文从租户隔离模型出发,拆解四层权限架构、租户级 RBAC 的扩展方案、组织树与数据权限的联动,以及跨租户授权(如第三方服务商访问客户数据)的架构设计。

2026-04-21 · architecture / security

身份与访问控制工程

从 OIDC、OAuth 2.1、SAML、SCIM 到多租户权限、CIAM、PAM 与身份平台选型——系统拆解现代身份与访问控制的协议、架构与工程实践。

2026-06-14 · architecture / security

【身份与访问控制工程】SCIM 与账号生命周期:开通、变更、离职自动化

SSO 只解决认证,SCIM 解决账号的生命周期管理。但 SCIM 2.0 的实现远不是调几个 REST API 那么简单:User/Group schema 的映射、Delta vs Full sync 的同步策略、Patch 操作语义,每个环节都有坑。本文从账号生命周期的四个关键事件出发,拆解 SCIM 2.0 的核心协议、同步模式、Schema 扩展,以及与企业 IdP(Azure AD、Okta)对接的实际工程经验。

2026-06-13 · architecture / security

【身份与访问控制工程】IAM 全景:为什么这是高价值赛道

从 2020 年 SolarWinds 到 2024 年 Okta 支持系统泄露,身份基础设施的安全失败反复证明一件事:IAM 不是 IT 支撑系统,而是安全架构的承重墙。本文建立现代 IAM 的全景地图——从认证协议、令牌体系、权限模型到身份治理与平台选型,给出 5 个贯穿全系列的核心问题。