部署形态
GenAuth 有两种部署形态,能力与 API 完全一致:SaaS 托管,和私有化同域旁挂。选哪个,本质上只取决于一个问题:你的委托数据、审计日志和凭证,允许离开你的环境吗?
SaaS 托管
开箱即用:接入 api.eak.eazo.ai,控制台在 dashboard.qoni.ai,零运维。
关键性质一句话:GenAuth 只在授权路径上,不在数据路径上。 Agent 访问资源是 Agent → 你的 API 直连,业务数据(Agent 实际读写的资源内容)从不经过 GenAuth。出你环境的,只有完成委托与审计所需的元数据——哪个 Agent、什么范围、多长时间、哪个用户标识。
私有化同域旁挂
GenAuth 作为组件增量部署进你的 Kubernetes 环境,与既有 Human IAM(human identity and access management,你已经在用的企业身份系统)同域运行。"旁挂"三个字划清了边界:
- 不替换:你现有的 IdP 继续作为人的身份与权限的权威源;
- 不迁移:用户目录留在原地,GenAuth 只做只读的权限评估;
- 不改造:既有登录、SSO、权限模型一概不动(接入路径见 接入你已有的认证体系)。
两形态的业务时序只差一跳:私有化多出跳⑧——授权确认前,用户先以企业账号完成 OIDC 联邦登录,确认"张三就是你目录里的张三"。完整时序与各环节现状标注见 端到端业务时序。
评审私有化方案,架构师必问三件事。逐个回答。
必答一:数据边界矩阵
先给结论:**私有化形态下,委托数据、审计日志、凭证全部留在你的环境,GenAuth 不向外回传任何业务数据。**逐类数据过一遍:
| 数据类别 | SaaS 托管 | 私有化同域旁挂 |
|---|---|---|
| Agent 台账(注册信息、责任人) | 存于托管服务 | 留在你的环境 |
| 委托记录(授权范围、期限、Consent 记录) | 存于托管服务 | 留在你的环境 |
| 令牌(委托令牌 / 访问令牌) | 由托管服务签发,流转于你的调用链 | 在你的环境内签发与流转,不出域 |
| 审计日志 | 存于托管服务,控制台可查可导出 | 全部驻留你的环境(data residency) |
| 用户身份与权限数据(Human IAM 侧) | 不迁移:GenAuth 只做评估性读取 | 不出域:同域内只读访问 |
| AK/SK 等服务端凭证 | SK 由你的服务端保管 | 签发与保管全程在你的环境 |
两形态共同的底线再强调一次:业务数据永远不经过 GenAuth——它不在 Agent 与你资源服务之间的数据路径上。
必答二:服务间调用认证矩阵
私有化形态里,每一条服务间调用都要回答"凭什么认证、凭证放哪":
| 调用方向 | 认证方式 | 凭证形态与管理 |
|---|---|---|
| App → GenAuth | AK/SK 服务端认证,TLS;集群内可启用 mTLS | Secret 交由你的 Secret 管理体系(Kubernetes Secret 或外部 secrets manager),支持轮换与即时吊销 |
| Agent → GenAuth | 委托令牌(Delegate Token,兑换时出示) | 短时、缩权、可回收;Agent 侧不落任何长期凭证 |
| Agent → 你的资源服务 | 访问令牌:签名验证 + aud 绑定 + sub/act/scope 校验 | 资源侧验签即可,无共享密钥(校验清单见 保护你的 API) |
| GenAuth → Human IAM | 专用只读集成账号 | 见下方"只读访问三条军规" |
| GenAuth 组件间 | 同 namespace 内 mTLS(service mesh 或集群平台能力) | 证书由集群 PKI 统一签发与轮换 |
对 Human IAM 的只读访问:三条军规
架构师最警惕的一条边界:"这个新组件能不能反向掏我的身份系统?"回答是三条硬约束:
- 专用只读账号——GenAuth 使用独立的、最小权限的只读账号访问 Human IAM,与任何管理凭证隔离;
- 固定视图——只授权预先划定的只读视图或只读接口,绝不授予全库、全目录访问;优先走 API 集成,仅当你的 Human IAM 没有可用接口时才考虑数据库直读,且同样只开固定只读视图;
- 全程审计——每一次读取都进审计日志,读了谁的权限、什么时间、为了哪次委托,事后可查。
写入?没有这个选项。GenAuth 对 Human IAM 的访问在架构上就是单向只读。
必答三:air-gapped 离线模式
对物理隔离、零出网的环境(air-gapped),私有化形态支持完全离线运行:
- 运行时零外部依赖:授权确认、令牌签发与兑换、验签(本地 JWKS)、审计与控制台,全部在集群内闭环,不需要任何出站连接;
- 离线交付与升级:组件镜像与版本升级以离线包交付,导入你的私有镜像仓库后滚动更新;
- 数据全量驻留:上一节数据边界矩阵的私有化列在 air-gapped 模式下自然成立——没有出站通道,也就没有例外。
air-gapped 的代价要说清
零出网意味着放弃托管侧的自动更新与远程支持,安全补丁的时效由你的离线升级节奏决定。把升级窗口纳入运维计划,而不是装完就忘。
怎么选
| 你的情况 | 建议形态 |
|---|---|
| 想最快跑通、没有数据驻留(data residency)要求 | SaaS 托管 |
| 审计日志、委托数据、凭证必须留在自己环境 | 私有化同域旁挂 |
| 深度复用既有 Human IAM 的身份与权限体系 | 私有化同域旁挂 |
| 物理隔离、零出网 | 私有化 + air-gapped 模式 |
| 运维投入最小化 | SaaS 托管 |
两形态代码零差异
API 与 SDK 完全一致,切换形态只改一处:SDK 初始化的 host 从 https://api.eak.eazo.ai 换成你集群内的 GenAuth 地址。业务代码、scope、令牌处理逻辑原样不动。
下一步
- 两形态的完整业务时序(7 跳 vs 8 跳,差异就是⑧) → 端到端业务时序
- 私有化最常见的第一步:不动现有 IdP 的接入路径 → 接入你已有的认证体系
- OIDC 与 OAuth Scope 如何与既有身份体系打通 → 整合原理