You need to enable JavaScript to run this app. Azure AD认证正常时Postman调用.NET5 Azure Web API返回401未授权
优惠活动
大模型
产品
解决方案
定价
更多

Azure AD认证正常时Postman调用.NET5 Azure Web API返回401未授权

配置问题排查清单
  • 首先检查Postman请求令牌时的scope参数是否正确:请求token时必须使用你API注册时暴露的scope,格式一般为api://<你的API Client ID>/<自定义scope名>,不能使用Graph或者其他第三方资源的scope,否则token的受众声明不匹配,API校验会直接返回401。
  • 检查令牌的受众(aud)声明:把你拿到的JWT令牌复制到任意本地JWT解析工具中,确认aud字段的值和你appsettings.json里的ClientId完全一致,如果aud是api://<ClientId>格式,你需要在服务注册时显式添加合法受众:
services.AddMicrosoftIdentityWebApiAuthentication(Configuration, "AzureAd", jwtBearerOptions =>
{
    jwtBearerOptions.TokenValidationParameters.ValidAudiences = new List<string>
    {
        Configuration["AzureAd:ClientId"],
        $"api://{Configuration["AzureAd:ClientId"]}"
    };
});
  • 检查TenantId配置是否正确:如果你的API是单租户访问,appsettings.json里的TenantId必须填写你实际的租户ID,不能使用common、organizations这类通配值,否则租户校验不通过。
  • 检查Postman请求头格式:请求头中的Authorization字段必须是Bearer <你的令牌>格式,注意Bearer和令牌字符串之间有且仅有一个空格,不能多写、漏写空格或者拼写错误。
  • 检查Azure AD的API权限配置:进入你API对应的Azure AD注册页,在「公开API」板块确认已经添加了至少一个自定义scope,同时Postman使用的客户端应用已经被授予了该scope的访问权限,需要管理员同意的权限要提前完成管理员同意操作。
  • 检查中间件顺序:你当前的UseAuthentication和UseAuthorization顺序是正确的,但要确认这两个中间件是放在UseRouting之后、UseEndpoints之前,顺序错误也会导致授权失效。
  • 移除无用配置:Web API不需要CallbackPath配置,这个参数是给带前端登录逻辑的Web应用使用的,你可以直接删掉appsettings.json里的CallbackPath字段,不会影响API的令牌校验逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 21:24:03