首页安全与合规
Security & Compliance

边界不靠自觉,数据边界不妥协

我们做基础设施,安全不是附加功能而是产品形态的一部分。这一页写清楚我们具体做了什么、边界画在哪里,以及哪些结论需要随项目确认。

Pillars

六条不妥协的底线

不管哪条业务线、哪种交付形态,这六条是共同的。每条都标注了实现位置,方便核对而不是只信文字。

边界不靠自觉

凡是能写死在编译器、框架或查询层里的约束,就不写进文档让人记住。租户隔离由查询层监听器强制,域边界由 Go 的 internal 机制在编译期拒绝。

jOOQ TenantScopeVisitListener · Go internal 墙
数据边界不妥协

敏感数据默认留在用户设备或客户网络内。四条业务线全部支持私有化交付,端侧产品(legdger)连 AI 分析都不出设备。

legdger 端侧 AI · Uniclaw 自建 Milvus · Unilearning 单容器
凭据最小化

Agent 不共用人类凭据,服务端不硬编码长期密钥,端侧接入走可撤销令牌。任何凭据都能被单独吊销而不影响其他主体。

UIAM MACHINE 主体 · OSS STS AssumeRole · ledger-cli 令牌
一切行为留痕

认证、授权、工具调用、抓包调试全部产生结构化记录。不是为了合规而记,是为了出事时能回放。

uiam-audit · collaboration-logger · pxc 会话记录
越权可追溯

委托关系用 act claim 表达「谁代表谁」,权限逐跳取交集。审计里能回答「哪个用户授权了哪个 Agent、调用了哪个工具、用了哪些权限」。

RFC 8693 Token Exchange · agent_tools 注册表
变更可回滚

数据库变更走版本化迁移,重复执行结果一致;应用发布是单镜像替换,回滚就是换回上一个镜像。

Liquibase · 各域方言迁移 · Docker 单镜像
Data Boundary

数据停在哪一层

数据边界由产品形态决定,不是一个可以随手打开的开关。我们把边界分成三层,每层能放什么写得很清楚。

01
留在用户设备上

端侧产品的最小边界。这一层的数据在设计上就没有上传通道,不是靠开关关闭的。

  • legdger 全部账目:本机加密存储,云端只有密文
  • legdger 端侧 AI 统计与问答:推理在设备内完成
  • NewTool 桌面与 wasm 形态:算法内核无 IO,数据不出进程
  • pxc 抓包流量:内核跑在本机,不经第三方服务
02
留在客户网络内

私有化交付的边界。模型、向量、业务数据与审计记录全部部署在客户自己的网络里。

  • Uniclaw 记忆与知识向量:自建 Milvus,不出内网
  • Uniclaw 模型服务:可对接私有化部署的兼容协议服务
  • UIAM 身份与审计数据:整套部署在客户网络边界内,可完全离网
  • Uniscrm 素材与媒体:对象存储可对接客户自有 OSS
  • Unilearning 课件与学习记录:单容器交付,数据自主
03
只在需要时出网

唯一需要外部网络的是同步与外部通道,且传输内容是加密密文或已脱敏的消息。

  • legdger 跨设备同步:只上传最新密文,服务端不积历史
  • Uniscrm 企微通道:与企业微信官方接口通信,走官方存档能力
  • Uniclaw 通道:飞书 / 钉钉 push API,内容按租户隔离
  • NewTool 远程调用:经 MCP 传输,算法内核本身不发起网络请求
Compliance Mapping

合规能力对照

左边是常见的合规要求项,右边是我们的具体支撑点。这张表描述的是产品已实现的能力,不是认证声明——具体认证结论随交付项目提供材料。

要求项
支撑点
实现位置
访问可追溯:能回答谁在何时访问了什么
认证、授权与工具调用全量结构化留痕,按主体、租户、时间三维度检索
uiam-audit · 审计事件流
最小权限:只授予完成工作所必需的权限
RBAC + 数据权限双轨;委托场景取「应用权限 ∩ 用户权限」交集并按上限裁剪
uiam-authz · maxPermissionLevel
离职即回收:人员变动后权限不残留
离职事件触发全量权限回收,实时生效,不需要等用户下次登录
员工生命周期自动化
会话留存:业务沟通内容可存档、可检索
企微官方存档能力 + 员工同意书机制,同意状态入库可查,支持全文检索
uniscrm-msgaudit · 员工同意
内容合规:违规话术在发生前被拦下
敏感词实时校验与阻断、内容审计规则、删好友日志与流失预警
uniscrm-riskctl · ContentAudit
数据驻留:敏感数据不出境、不出内网
全产品线支持私有化部署;端侧产品数据不出设备,私有化场景可完全离网运行
四条业务线交付形态
密钥管理:凭据可轮换、不硬编码
系统 JWT 密钥支持轮换不停机;对象存储走 AssumeRole 临时凭证;端侧接入令牌可撤销
uiam-protocol-core · OSS STS · ledger-cli token
变更可控:升级可验证、失败可回滚
版本化迁移幂等可重复执行;应用单镜像替换;迁移版本记录在库内,已应用自动跳过
Liquibase · unile_migrations
Engineering Practices

工程侧的安全习惯

这些习惯不写在安全白皮书里,写在提交规范和构建流程里。

依赖收敛

不引入可被标准库替代的依赖。Unilearning 的 LLM 客户端只用 Go 标准库实现 OpenAI 兼容协议,零新增依赖。

迁移文件不可变

数据库迁移文件一经发布不再修改,只追加新版本。避免「本地能跑、线上不一致」。

构建期拦截

NewTool 用 build.rs 在构建期比对清单与代码,漂移直接失败;这类校验放在 CI 而不是文档里。

清单即契约

工具的可见性、参数与生效形态由 tool.toml 声明,清单是唯一事实来源,代码注释不作为依据。

审计不可关闭

租户过滤的绕过通道(runAsSystem)本身会产生审计记录——能绕过的操作必须留下痕迹。

默认最严

租户谓词缺失时默认按配置记录安全日志或直接抛错;风险事件单独标记 SECURITY / FAILURE 级别。

Per Product

按业务线看安全能力

每条业务线的详情页里有它自己的安全条目与实现位置。

口径声明

本页描述的是产品已实现的安全能力与合规支撑点,不构成任何认证或合规结论的声明。具体认证材料、渗透测试报告与合规结论随交付项目由交付团队提供;涉及监管场景时,建议在方案设计阶段就把合规要求纳入需求清单,我们会据此调整实现而不是事后补文档。

Get in touch

把身份、Agent 与私域的复杂度,交给一套可治理的内核

无论你是要替换现有的 IAM、搭建 Agent 中台,还是想把企微私域真正运营起来——先从一次 30 分钟的架构沟通开始。我们会先判断问题是不是我们擅长解的那类,不合适会直接说。