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
























前 17 篇文章讨论的 IAM 机制(OIDC、SAML、MFA、权限模型、令牌管理)是”通用组件”——既适用于员工身份管理(Workforce IAM),也适用于客户身份管理(CIAM,Customer IAM)。但当这些组件被放在”面向外部客户”的场景中,架构的优先顺序完全变了。
本文聚焦 CIAM 与 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%
减少流失的工程策略:
开放的注册端点容易被滥用——机器人注册、一次性邮箱注册、撞库。防御策略:
mailinator.com、guerrillamail.com),在注册时拒收。a1b2c3d4@gmail.com),要求额外验证。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)
);关键设计点:
工程陷阱:很多团队把同意记录存在 Elasticsearch 的日志里,然后日志设了 90 天 TTL——当监管机构 2 年后要求提供证据时,同意记录早已被清理。同意记录需要存储在不可轮转的持久存储中(如 S3 的合规存储桶、专门的审计数据库表)。
许多 SaaS 平台同时有 B2C 用户(个人消费者)和 B2B 用户(企业客户)。第一种方案是两套独立的 CIAM 实例——B2C 和 B2B 的用户基础是分离的。第二种方案是统一身份平台——同一套 CIAM 同时服务 B2C 和 B2B,用户可能在 B2C 注册后升级到 B2B(通过加入组织或购买企业方案)。
混合架构的挑战在于授权模型的差异:
在统一平台中,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 工程的核心不是新协议或新技术,而是新优先级:
tenant_id 和权限模型区分行为。上一篇:自建还是采购:Keycloak、Auth0、Entra、Okta 对比 下一篇:PAM、IGA 与审计合规
把当前热点继续串成多页阅读,而不是停在单篇消费。
2026-06-19 · architecture / security
多租户权限系统是 IAM 中工程复杂度最高的场景之一——每个租户想要自己的角色、自己的组织树、自己的审批流和完全隔离的数据。这四种需求会互相冲突。本文从租户隔离模型出发,拆解四层权限架构、租户级 RBAC 的扩展方案、组织树与数据权限的联动,以及跨租户授权(如第三方服务商访问客户数据)的架构设计。
2026-04-21 · architecture / security
从 OIDC、OAuth 2.1、SAML、SCIM 到多租户权限、CIAM、PAM 与身份平台选型——系统拆解现代身份与访问控制的协议、架构与工程实践。
2026-06-14 · architecture / security
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
从 2020 年 SolarWinds 到 2024 年 Okta 支持系统泄露,身份基础设施的安全失败反复证明一件事:IAM 不是 IT 支撑系统,而是安全架构的承重墙。本文建立现代 IAM 的全景地图——从认证协议、令牌体系、权限模型到身份治理与平台选型,给出 5 个贯穿全系列的核心问题。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。