《解耦、事件驱动与最小依赖:在保证安全性的前提下实现多租户身份即服务(IDaaS)平台的商业化架构》
作者:陈朝辉
摘要 (Abstract)
随着身份即服务(IDaaS)成为 SaaS 基础设施的关键组成部分,构建多租户身份提供者(IdP)不仅需要满足严格的租户隔离、安全和可扩展性要求,还需要支持灵活、高精度的商业化(Monetization)模型。传统的 IdP 架构在处理细粒度授权属性和高频计量事件时面临高耦合、难扩展的挑战。
本文提出了一种创新的解耦、事件驱动的 IdP 架构(DEDA – Decoupled, Event-Driven Architecture),并以 Smallsoft Identity 平台为设计案例。DEDA 架构的核心在于将高安全敏感的核心身份服务与高商业敏感的计量服务、以及属性同步服务进行物理和逻辑上的解耦。该设计严格遵循 TenantId 隔离和最小权限原则来保证多租户环境的安全性,并利用 身份事件总线 和 细粒度身份属性 (Fine-Grained Claims) 的集成,支持灵活的 MAU、事务和 AI 增强功能计费。该设计旨在在不侵犯 IdP 核心安全边界和不依赖 SP 最终计费系统的前提下,为服务提供者(SP)的计费和授权系统提供高精度、高可靠性的商业化输入数据,有效实现 IDaaS 平台的安全商业化。
关键词: 多租户身份、IdP 架构、商业化、计量、授权属性、OAuth 2.0、OpenID Connect、微服务。
1. 引言 (Introduction)
1.1 身份服务与商业化的演进
略。
1.2 挑战与必要性
实现安全商业化的 IDaaS 平台需要克服以下关键挑战:
- 安全隔离与性能矛盾: 确保不同 SP 之间的数据和配置隔离,同时保证核心认证路径的低延迟和高吞吐量。
- 计费依赖性风险: 如何向 SP 提供精确的计费数据(例如,用户 A 在本月的第 5 次 MFA 事务),同时确保 IdP 不对 SP 的最终用户计费系统产生紧密耦合或运行时依赖。
- 细粒度授权数据传递: 必须有一种安全、标准化的机制,将 IdP 中存储的用户的授权属性(如订阅等级、配额限制)传递给 SP 的应用层,作为 SP 授权决策的依据。
1.3 论文贡献
本文提出的 DEDA 架构模型,针对上述挑战,贡献如下:
- 提出 DEDA 架构: 一种基于微服务和事件驱动模式的 IdP 架构设计,将高安全的身份认证与高商业价值的计量解耦。
- 最小依赖输入机制: 定义了基于 身份事件总线 和 自定义 Claims 的双重机制,实现 IdP 向 SP 提供计费和授权输入数据的最小化依赖模型。
- 设计案例: 以 Smallsoft Identity 平台的拟议方案为例,详细展示了 DEDA 架构在实现高价值功能计量和商业逻辑解耦方面的具体设计。
2. 传统架构的局限性与设计原则
2.1 传统耦合架构的问题
略。
2.2 DEDA 的核心设计原则
DEDA 架构严格遵循以下原则:
- 职责分离 (Separation of Concerns): 身份管理、计量、审计必须是相互独立的微服务。
- 最小权限原则 (Principle of Least Privilege): 任何服务(特别是计量服务)只被授予完成其任务所需的最小权限。
- 最终一致性 (Eventual Consistency): 允许计量数据在短时间内与核心身份状态存在微小延迟,以换取核心身份服务的高可用性和高吞吐量。
- 开放标准通信: 身份验证和授权信息传递必须基于 OAuth 2.0、OpenID Connect 和 SCIM 等开放标准。
3. DEDA 架构模型:解耦与计量实现
DEDA 架构的核心在于三个相互独立且通过异步消息通信的服务:核心身份服务、身份事件总线和商业计量服务。
3.1 核心身份服务 (Core Identity Service)
核心身份服务是 IdP 的安全边界。它负责用户凭证验证、会话管理和令牌签发。
3.1.1 租户隔离的实现
- TenantId 强制隔离: 在 Smallsoft Identity 的设计中,所有用户表、配置表和审计日志表都包含强制的
TenantId列。在数据访问层(DAL)通过编程拦截器强制执行TenantId筛选。 - 资源隔离: Smallsoft Identity 的设计 拟为每个付费租户(SP)提供独立的子域,并将 MFA 密钥和加密盐存储在基于
TenantId分区的 HSM/Vault 中。
3.2 身份事件总线 (Identity Event Bus)
身份事件总线(例如使用 Kafka 或类似技术)作为 IdP 内部唯一的数据共享机制。
- 实时事件发布: 每当发生一个可计费或可审计的关键事件(
AUTHN_SUCCESS、MFA_REQUESTED、USER_REGISTERED)时,核心身份服务立即生成一个事件,发布到总线。 - 无阻塞设计: 这种异步设计是 Smallsoft Identity 旨在实现认证低延迟的关键。认证流程的 I/O 不会因为等待下游计量服务的写入操作而阻塞。
3.3 商业计量服务 (Commercial Metering Service)
该服务专注于商业价值捕获,与核心身份服务在物理上和逻辑上是完全分离的。
- 事件消费与聚合: 消费来自事件总线的事件流,实时计算和累积 IdP 对 SP 的计费指标。
- 计费指标的多维化:Smallsoft Identity 的设计 拟支持以下计量指标:
- 基础计量: MAU(基于
AUTHN_SUCCESS事件的唯一用户 ID)。 - 高价值事务计量: 成功的 MFA 事务、自定义策略引擎执行次数。
- 基础计量: MAU(基于
- 数据安全: 计量数据库中仅存储聚合数据(如 Tenant A 的 MAU 计数),不存储任何可用于用户身份恢复的数据,最小化泄露风险。
4. 安全性与商业化输入机制
DEDA 架构通过严格的接口和数据隔离,为 SP 计费系统提供了必要的输入,同时遵守了最小依赖原则。
4.1 SP 对 End User 的计费输入:Claims-as-Input 机制
Smallsoft Identity 的设计通过 OAuth 2.0 Access Token 和 OIDC ID Token 的自定义 Claims 安全地传输授权属性。
- 自定义 Claims 的设计: 在 Smallsoft Identity 的方案中,SP 可以在管理控制台预定义需要在令牌中携带的 Claims。例如,SP 可以定义平台传递
sp_data_quota和sp_feature_tier。 - 设计案例: 当用户 A 登录时,Smallsoft Identity 的令牌签发服务会查询用户目录,发现其
SubscriptionLevel为"Premium"。令牌中将包含 Claims{"SubscriptionLevel": "Premium"}。SP 的应用程序接收到令牌后,仅依赖此 Claims 来授权高级功能访问。“Premium”在 IdP 这里只是一个普通的字符串,是授权结果,没有任何逻辑含义,所有定价和功能解锁逻辑都由 SP 自身执行,有效避免了 IdP 对 SP 计费系统的依赖。
4.2 SP 向 IdP 实时同步属性:SCIM 协议的应用
为确保 IdP 存储的授权属性与 SP 的商业真相保持一致,Smallsoft Identity 的设计中集成了标准的 SCIM 接口。
- SCIM 用于属性更新: Smallsoft Identity 拟提供 SCIM Endpoint,允许 SP 的 CRM/计费系统通过安全的 Client Credentials,向 IdP 发送 PATCH 请求,实时更新用户在 IdP 处的属性。
- 单向控制: 这种同步是 SP 主导的,IdP 仅作为属性的存储和分发点。SP 对 End User 的 Billing 系统不应该对 IdP 有任何身份认证和授权功能以外的其他任何依赖,SCIM 接口是唯一必要的、且受控的 API 依赖。
4.3 计费通知:IdP 事件总线对 SP 的开放
Smallsoft Identity 计划提供 Webhook 服务,将事件总线上的特定事件转发给 SP 的预设 URL。
- SP 计费触发器: SP 可以订阅
USER_REGISTERED事件(用于启动免费试用期)或PROFILE_UPDATED事件(用于重新评估订阅状态),这些事件携带非敏感的User ID和Tenant ID。SP 的计费后端接收到这些事件后,无需向 IdP 发行额外的认证 API 调用,即可立即触发其内部的计费或业务逻辑。
5. 实践与案例分析
5.1 设计案例:Smallsoft Identity 的 AI 增强认证计量
Smallsoft Identity 的设计方案中,集成了基于机器学习模型的自适应认证(Adaptive Authentication)。
- 过程: 用户登录时,核心身份服务调用独立的 AI 风险评估微服务。
- 事件与计量:
- Smallsoft Identity 在每次调用 AI 服务后,立即发布
RISK_SCORE_COMPUTED事件。该事件包含TenantId和Score。 - 商业计量服务消费此事件,并将该事务计入 “AI 风险评估事务” 指标。在 IdP 对 SP 的收费模型设计中,此指标的单价高于基础 MFA 事务。
- 最终,Smallsoft Identity 将最终风险决策结果作为 Claims 嵌入 Access Token(例如
RiskLevel: High),供 SP 的 PEP 使用。
- Smallsoft Identity 在每次调用 AI 服务后,立即发布
5.2 架构的可行性与预期收益
- 预期性能: DEDA 架构旨在将计量 I/O 转移到异步事件总线,预期可使核心认证流程的延迟(Latency)保持在极低水平,并在高并发下具备高稳定性。
- 预期可靠性: 即使商业计量服务因维护或负载过高暂时不可用,核心身份服务和认证流程仍能继续运行,确保了高可用性。
- 预期可扩展性: 通过将计量、审计和核心身份服务部署为独立的微服务集群,平台预期能够独立扩展各组件,满足不同业务阶段的需求。
6. 结论与未来工作
6.1 结论
本文提出的 DEDA 架构,以 Smallsoft Identity 平台的拟议设计为实例,成功地在多租户 IDaaS 环境中平衡了安全性、可扩展性与商业化需求。通过将核心身份认证与商业计量和属性同步系统进行物理和逻辑解耦,我们设计了实现:严格的租户安全隔离、高精度的多维事务计量,以及对 SP 计费系统的最小化依赖。这种架构模型为下一代 IDaaS 平台的设计提供了一个安全且商业可行的蓝图。
6.2 未来工作
未来的研究将集中于以下方向:
- 联邦授权属性: 探索如何将外部授权服务(如 OPA – Open Policy Agent)的决策结果高效、安全地嵌入到 DEDA 架构的 Claims 流程中。
- 身份治理计量: 设计并集成针对身份治理(如访问审查、生命周期编排)功能的高级计量指标,以进一步扩展 IDaaS 平台的商业价值。
附录 A:常用缩写表 (Acronyms)
| 缩写 | 英文全称 | 中文含义 |
|---|---|---|
| DEDA | Decoupled, Event-Driven Architecture | 解耦、事件驱动架构 |
| IdP | Identity Provider | 身份提供者 |
| SP | Service Provider | 服务提供者 (即 IdP 的租户) |
| IDaaS | Identity as a Service | 身份即服务 |
| MAU | Monthly Active Users | 月活跃用户数 |
| MFA | Multi-Factor Authentication | 多因素认证 |
| OAuth 2.0 | Open Authorization 2.0 | 开放授权 2.0 协议 |
| OIDC | OpenID Connect | 基于 OAuth 2.0 的身份认证层 |
| SCIM | System for Cross-domain Identity Management | 跨域身份管理系统协议 |
| Claims | Claims | 声明 (在 JWT/令牌中携带的属性) |
| PEP | Policy Enforcement Point | 策略执行点 |
| DAL | Data Access Layer | 数据访问层 |
| AOP | Aspect-Oriented Programming | 面向切面编程 |
| HSM | Hardware Security Module | 硬件安全模块 |
| API | Application Programming Interface | 应用程序编程接口 |
Contact: Geoffrey Chen [email protected]
Verified GPG Public Key: https://keys.openpgp.org/[email protected]
(2025.12.15 Australia)
了解 Geoffrey Chen 的更多信息
订阅后即可通过电子邮件收到最新文章。