2.0 KiB
2.0 KiB
IAM 跨区安全事件契约
边界
IAM 使用独立的 iam_security_event_outbox。业务状态、权限版本与 Outbox 在同一数据库事务内提交;尾程按 eventId 幂等消费,并按信封 aggregateVersion 拒绝旧事件。事件不包含密码、令牌、联系方式、角色全集或权限全集。
V1 事件
三个事件均使用标准 EventEnvelope,eventVersion=1、sourceRegion=CN、targetRegion=OVERSEAS。
IamUserStatusChanged- 聚合:
aggregateType=USER、aggregateId=authUserId - payload:
authUserId、tenantId、appCode、status、permissionVersion、changedAt - status:
ACTIVE、DISABLED
- 聚合:
IamTenantStatusChanged- 聚合:
aggregateType=TENANT、aggregateId=tenantId - payload:
tenantId、status、changedAt - status:
ACTIVE、DISABLED aggregateVersion来自iam_security_tenant_version.status_version,每次状态变化单调递增
- 聚合:
IamPermissionVersionChanged- 聚合:
aggregateType=AUTHORIZATION、aggregateId=authUserId - payload:
authUserId、tenantId、appCode、permissionVersion、reason、changedAt permissionVersion来自iam_security_subject_version.permission_version,按账号单调递增
- 聚合:
当前接入
- 企业成员、平台内部用户和平台用户启停均写
IamUserStatusChanged。 - 客户创建、审核结果及启停写
IamTenantStatusChanged。 - 成员角色、平台内部用户角色及角色权限变更写
IamPermissionVersionChanged。
普通 Admin/Client 的即时失效只覆盖用户停用、客户停用和权限版本推进。token_version 不进入 V1 投影,也不传给 Lastleg 校验;其即时权威比对只用于海外 PDA 向 Auth 核验仓绑定与会话版本。
尾程权限
lastleg-permissions.sql 初始化以下平台权限,并授予 PLATFORM_ADMIN:
platform:lastleg:order:listplatform:lastleg:order:detailplatform:lastleg:order:assignplatform:lastleg:order:transferplatform:lastleg:order:merge-pallet