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

使用Azure Managed Identity向App Service认证时Logic App调用API返回403如何解决

问题解决方案

你目前缺少的核心是托管身份的权限授权、以及Web API侧的应用权限校验配置,具体操作步骤如下:

1. 为托管身份授予API应用权限

  • 进入Web API对应的App Registration管理页,打开「公开API」选项卡,创建应用类型的权限(不要选委托权限,托管身份为服务主体,仅支持应用权限),自定义权限名称如Api.Application.Access,保存后记录权限值。
  • 打开Azure AD「企业应用程序」页面,搜索你Logic App的名称,找到对应的系统分配托管身份的服务主体条目。
  • 进入该服务主体的「权限」页,点击「添加权限」,切换到「我的组织使用的API」标签,搜索选中你的Web API的App Registration,勾选上一步创建的应用权限,最后点击「授予<租户名>的管理员同意」完成授权。

2. 调整.NET Web API的授权逻辑

默认[Authorize]属性仅校验令牌的有效性、受众等基础字段,不会校验权限声明,需要补充权限校验规则:

代码配置示例(.NET 6+)

// Program.cs 中添加授权策略
builder.Services.AddAuthorization(options =>
{
    options.AddPolicy("ApplicationAccessPolicy", policy =>
    {
        // 校验令牌中是否包含我们定义的应用权限角色声明
        policy.RequireClaim("roles", "Api.Application.Access");
    });
});

// 启用授权中间件
app.UseAuthorization();

修改接口授权属性

将原有的[Authorize]替换为[Authorize(Policy = "ApplicationAccessPolicy")],如果需要全局生效可以设置为默认授权策略。

3. 可选校验项

确认Logic App HTTP连接器中填写的Audience值,和Web API App Registration「公开API」页的应用程序ID URI完全一致,不要多写斜杠、路径等后缀。

内容的提问来源于stack exchange,提问作者Mo B.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 21:15:04