You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需调用MS Graph时,Microsoft Entra ID是否需暴露API?仅验证可行吗?

用Microsoft Entra ID保护后端API的简化配置说明

你的场景梳理

  • 前端SPA通过Entra ID登录拿到Bearer令牌
  • 带着令牌调用你的后端API
  • 后端验证令牌,确认用户有指定角色
  • 后端连MS SQL返回数据,全程不用碰MS Graph

针对你的疑问的解答

你说的完全对——只有当后端需要主动调用MS Graph这类外部受保护资源时,才需要配置应用权限。那些教程之所以都提API范围和权限,是因为它们覆盖了通用场景,而你的情况是更简化的“纯令牌校验”场景,具体拆解:

1. 为什么要创建API范围?

这不是多此一举,而是为了让Entra ID生成专属于你的API的令牌。要是不创建API范围,前端拿到的令牌是给MS Graph用的(aud字段是Graph的ID),后端校验时会因为“受众不匹配”直接拒绝。创建API范围就是告诉Entra ID:这个令牌是发给我的API的,确保令牌的受众正确,避免无效请求。

2. 应用权限完全不需要配置

应用权限是给后端自己用的——比如后端要调Graph拿用户信息,才需要给API加Graph的应用权限。你只需要验证用户的令牌、检查角色声明,根本不需要这一步,别被教程带偏了。

3. 适配你场景的极简配置步骤

  • 在Entra ID里注册后端API应用,把受众设为你的API客户端ID(或自定义URI)
  • 给后端API建至少一个委派权限范围(比如叫access_as_user就行),不用碰应用权限
  • 注册前端SPA应用,在API权限里加你后端的那个委派范围,然后做管理员同意(SPA是公共客户端,得提前同意)
  • 前端请求令牌时,把scope指定为你后端的范围(比如api://<你的API客户端ID>/access_as_user)
  • 后端校验令牌时盯紧这几点:
    • 签名有效(用Entra ID的公钥验证)
    • aud字段和你的API客户端ID/URI匹配
    • roles或scp字段里有你要的角色/权限

这样就搞定了纯令牌验证保护API,完全和MS Graph的应用权限没关系。

内容的提问来源于stack exchange,提问作者Vidarious

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 22:32:50