Microsoft身份平台OBO流:已知与授权客户端应用的区别
已知客户端应用 vs 授权客户端应用:核心差异
这两个功能看似相似,但作用场景与核心逻辑完全不同,具体区别如下:
1. 已知客户端应用(Known Client Applications)
- 专为**代表流(OBO)**设计,用于建立前端应用与后端API的信任关联。当前端获取到用户令牌后,后端API通过OBO流请求下游API令牌时,Azure AD会校验发起请求的前端应用是否在后端API的已知客户端列表内——只有在列表中的应用,其OBO请求才会被允许。
- 配置方式:在后端API的应用清单
knownClientApplications字段中添加前端应用的Client ID。 - 核心目的:验证OBO流的合法性,确保仅信任的前端应用能触发后端的OBO流程。
2. 授权客户端应用(Authorized Client Applications)
- 核心作用是跳过用户许可同意环节,针对客户端直接调用API的场景。若客户端在该列表中,且管理员已预先同意对应API权限,用户在客户端调用API时无需手动点击同意,Azure AD会自动授予权限。
- 配置方式:在Azure门户中API应用的「公开API」板块添加,同时需指定对应的权限范围。
- 核心目的:优化用户体验,避免重复的许可同意操作,与OBO流的合法性验证无关——即便不在该列表内,只要用户完成了许可同意,客户端仍可正常调用API。
差异总结
| 对比维度 | 已知客户端应用 | 授权客户端应用 |
|---|---|---|
| 适用核心场景 | 代表流(OBO)的合法性校验 | 客户端调用API时跳过用户许可同意 |
| 配置核心目标 | 保障OBO流的信任链安全 | 优化API调用的用户许可体验 |
| 与API的绑定逻辑 | 和后端API的OBO能力强绑定 | 和API的权限许可流程绑定 |
| 未配置的影响 | 前端发起的OBO请求会被Azure AD拒绝 | 用户调用API时需手动完成权限同意 |
内容的提问来源于stack exchange,提问作者baylee
相关产品推荐
相关产品推荐

