Skip to content

整合原理:OIDC 与 OAuth Scope 如何打通

Agent Identity 不替代你的 Human Identity 体系,它接在上面。GenAuth 通过统一的 Provider 抽象与你既有的 Human IAM 打通三件事:用户是谁(身份联邦)、用户能做什么(权限读取)、委托怎么表达(scope 映射)。

为什么必须打通:权限之源在 Human IAM

权限的源头永远是人。Agent 行使的每一分权力,都是人从 Human Identity 体系里显式让渡的——可缩窄、可审计、可随时收回(见GenAuth 是什么)。这句世界观落到工程上,就是缩权(attenuation)的三方交集:

Agent 实际权限 = 人的真实权限 ∩ 显式委托范围 ∩ 企业批准边界

三个集合里,"显式委托范围"来自授权确认(Consent),"企业批准边界"来自 Agent 注册审批——这两个 GenAuth 自己管。但**"人的真实权限"只有一个权威来源:你既有的 Human IAM**。用户、组织、角色、权限策略都住在那里,而且每天都在变。

不打通,会出现三个断层:

  • 身份断层——GenAuth 被迫另建一套账号,"张三"在两边成了两个人,委托记录对不上企业目录;
  • 缩权失去下界——不知道张三本人能做什么,就无法兑现"不能委托你没有的权限";
  • 两套权限语言各说各话——Human IAM 说"报表系统只读角色",委托说 scope,中间没有翻译层。

先说清一件事:打通不是迁移。你的用户、组织、权限模型全部留在原地,GenAuth 只做联邦、读取与映射——不接管、不写回。完整的接入路径见旗舰指南接入你已有的认证体系

层次一 · 身份联邦(Identity Federation)——用户是谁

委托由一次授权确认开始,而授权确认的前提是:站在确认页前的这个人,就是企业目录里的那个人。 身份联邦用标准 OIDC 解决这件事——授权确认时跳转到你的 Human IAM 完成登录,身份断言回到 GenAuth,委托记录从第一行起就锚定在企业目录的真实用户上。

在私有化同域旁挂形态下,这对应完整旅程的第 ⑧ 跳(SaaS 形态无此跳,用户目录由租户托管,见部署形态):

User员工/终端用户GenAuth部署于客户环境Human IAM客户既有身份系统⑧ 身份联邦:用你既有的企业账号登录(OIDC)联邦登录跳转以企业账号完成认证身份断言(张三 = 客户目录中的张三)②(续)授权确认(Consent)授权确认页(Consent:范围 + 期限)③ 缩权校验:人的真实权限 ∩ 显式委托 ∩ 企业批准边界评估用户真实权限(同域内部 API / 只读视图)权限断言

联邦层带来的直接收益:单点登录体验不变、密码永远不经过 GenAuth、离职停用在 Human IAM 一处生效——委托侧自然跟着失效。

层次二 · 权限读取——用户能做什么

上图第 ③ 跳回答的是三方交集里的第一个集合:人的真实权限。GenAuth 向 Human IAM 发起只读的权限评估——张三是否真的持有他想委托出去的权限——拿到权限断言后,才允许委托进入签发。

这一层的纪律只有三条,但每条都是硬的:

  1. 只读——GenAuth 只评估、不修改,你的权限模型不会被反向写入;
  2. 实时——断言在签发时评估,人事调动、角色回收在下一次委托签发时立即生效;
  3. 取交集,不放大——权限断言只用来收窄委托,永远不会给 Agent 添加人本来没有的权限。

权限读取的完整机制(含"每跳只收窄"的原理)见委托令牌与缩权

层次三 · scope 映射——委托语言怎么对齐

Human IAM 里的权限词汇(角色、组、权限点)与委托 scope(服务.能力:动作 形态的授权切片)是两套语言。scope 映射是中间的翻译层,做三件事:

  • 词汇对齐——把目录侧断言(如"张三 ∈ 报表-只读组",示意)映射为可委托 scope 的白名单;
  • 粒度对齐——角色是粗粒度的,scope 是细粒度的:一个角色解锁的是一组 scope 的可委托上限,用户在授权确认页仍可以只勾选其中一部分;
  • 变更传导——目录侧的授权变化经映射层传导到委托侧:角色被回收,对应 scope 从下一次签发起自动出局。

映射的方向是单向的:目录断言作为输入进入三方交集,委托 scope 永远不会反向改写你的权限模型。

Provider 抽象:一个接口,对接多家 Human IAM

三个整合层次收敛为 Provider 接口上的三个能力面:联邦登录、目录读取、权限评估。每家 Human IAM 的协议细节(端点形态、claim 命名、目录 API)被封装在各自的 provider 实现内部,GenAuth 的委托引擎只面对统一接口——对接下一家 IdP,是加一个 provider,而不是改一次内核。

GenAuth(Agent Identity)ImplementedRoadmapRoadmapRoadmap委托引擎签发 · 缩权 · 审计Human IAM Provider 接口联邦登录 | 目录读取 | 权限评估AuthingAzure AD(Entra ID)Okta标准 OIDC

当前的 provider 名录只有两栏——要么已实现,要么在路线图,没有第三种状态:

ImplementedRoadmap
AuthingAzure AD(Entra ID)
Okta
标准 OIDC

每个 provider 的对接形态、配置项与当前进度,都在各自页面如实标注。

标准挂靠与兼容路线

标准在整合中的位置
OpenID Connect Core 1.0身份联邦层的协议底座:企业账号登录 + 身份断言
OAuth 2.0(RFC 6749)scope 作为委托范围的表达语言
Token Exchange(RFC 8693)委托令牌(Delegate Token)的兑换与 delegation 语义挂靠,详见 B3
IETF AAT 草案"每跳只收窄"(attenuation)的标准化方向

兼容路线声明:ID-JAG(Identity Assertion Authorization Grant,OAuth 工作组在研标准)及其商业化形态 XAA 正在把"企业 IdP 作为跨应用授权的裁决点"写进标准,GenAuth 的 Provider 抽象将其列为身份联邦层的既定兼容方向——协议定稿即接入,不做私有分叉。

下一步