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

如何配置Azure应用服务调用Azure .NET Core API的全域权限(无需前端令牌处理)

我来帮你梳理下实现这个需求的关键步骤,都是基于Azure AD的配置,基本不用改太多前端代码就能搞定:

核心配置思路

要实现Azure全权处理认证、前端能直接调用API所有端点的目标,关键是让前端应用的身份令牌被API自动信任,同时给前端授予API的全域应用权限,不用逐个配置端点权限。

1. 确认API应用注册的「应用ID URI」配置正确

  • 打开Azure AD,找到你的.NET Core API对应的应用注册,在「概述」页面找到「应用ID URI」。如果还没设置,点击「设置」按钮生成一个,格式通常是api://{你的API客户端ID}。
  • 这个URI是API的唯一身份标识,后续前端应用要通过它请求权限,必须确保它固定且准确。

2. 给API应用注册添加全域应用权限

  • 进入API应用注册的「应用权限」页面,点击「添加权限」→「我的API」,选中你的.NET Core API。
  • 注意别选「委派权限」(那是给终端用户的权限),要选应用权限(这是给前端应用本身的权限,符合你要的全域访问需求)。
  • 如果权限列表里没有现成的全域权限,就先去API的「公开API」页面添加一个应用权限范围,设置为允许「应用角色」,命名可以是access_as_application这类清晰的名称。
  • 添加完权限后,一定要点击「授予管理员同意」——这一步是关键,不做的话权限根本不会生效。

3. 给前端应用注册配置API的全域权限

  • 找到你的Angular+Node.js应用对应的Azure AD注册,进入「API权限」页面,点击「添加权限」→「我的API」,选中你的.NET Core API。
  • 同样选择应用权限,勾选之前添加的全域权限,然后点击「授予管理员同意」完成配置。

4. 配置API的身份验证,自动信任前端令牌

  • 对于.NET Core API,在appsettings.json里配置Azure AD验证参数,确保它信任前端应用的身份,并且识别正确的令牌受众:
    "AzureAd": {
      "Instance": "https://login.microsoftonline.com/",
      "TenantId": "{你的Azure AD租户ID}",
      "ClientId": "{API的客户端ID}",
      "Audience": "{API的应用ID URI}"
    }
    
  • 然后在Program.cs里添加认证中间件,启用JWT验证,让API自动验证令牌的有效性:
    builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
        .AddMicrosoftIdentityWebApi(builder.Configuration.GetSection("AzureAd"));
    
  • 记得给API的所有端点加上[Authorize]属性,这样只有携带有效令牌的请求才能访问。

5. 配置前端App Service,自动获取并携带令牌

  • 进入前端应用的Azure App Service控制台,找到「认证」→「身份提供者」,选择Microsoft Identity。
  • 在「认证设置」里勾选「登录时获取令牌」,然后在「目标资源」中填入你的API的应用ID URI。
  • 这样配置后,用户登录时Azure App Service会自动帮前端获取访问API的令牌,并存到会话里。前端发起请求到API时,会自动带上这个令牌,完全不用在Angular代码里写任何令牌请求逻辑。

6. 验证配置是否生效

  • 部署更新后的API和前端应用,登录后尝试调用任意API端点,如果能正常返回数据,就说明配置成功了。
  • 如果遇到403错误,先检查这几点:
    • 应用权限是否已经完成「授予管理员同意」
    • API的「应用ID URI」和配置文件里的Audience是否一致
    • 前端App Service的「目标资源」是否填对了API的应用ID URI

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 12:27:53