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

基于Azure AD的服务器间身份验证配置异常排查

Azure AD服务器到服务器API认证未授权问题排查

问题描述

尝试通过Azure AD实现API间的服务器到服务器身份验证,已完成以下配置但调用目标API始终返回**未授权(Unauthorized)**异常:

  • 配置了appsettings中的AzureAd节点
  • Startup中添加了认证授权中间件
  • 控制器添加了[Authorize]属性
  • 完成Azure AD应用注册的API暴露与权限配置,且验证凭据无误

相关配置代码

Token生成代码

var oauthApi = RestService.For<IMidaApi>(
                $"https://login.microsoftonline.com/{_settings.TenantId}",
                new RefitSettings(new NewtonsoftJsonContentSerializer())
            );
var data = new Dictionary<string, string>
{
    { "grant_type", "client_credentials" },
    { "client_id", _settings.ClientId},
    { "client_secret", _settings.SecretKey },
    { "scope", "api://1d1d113c-4b3b-****-******-********/.default" },
};
var response = await oauthApi.GetTokenAsync(data);

appsettings配置

"AzureAd": {
    "Instance": "https://sts.windows.net/",
    "Audience": "api://1d1d113c-4b3b-4a2e-****-***********",
    "ClientId": "1d1d113c-4b3b-4a2e-****-***********",
    "TenantId": "3be67c15-c670-43c3-****-***********"
}

Startup配置

services.AddMicrosoftIdentityWebApiAuthentication(builder.Configuration);
app.UseAuthentication();

app.UseAuthorization();

可能遗漏的配置点

  • Instance地址不匹配:当前appsettings中Instance使用https://sts.windows.net/,但获取token的地址是https://login.microsoftonline.com/,两者不一致会导致中间件验证token时issuer校验失败。需将appsettings的Instance统一修改为https://login.microsoftonline.com/。
  • Scope与Audience一致性检查:确认token请求中的scope对应的API ID(api://1d1d113c-4b3b-****-******-********)和appsettings中的Audience完全一致,包括GUID、后缀字符等细节。
  • 应用权限未授予管理员同意:客户端应用注册中添加的目标API客户端类型权限,必须由租户管理员授予管理员同意,否则token中不会包含有效权限声明,API验证不通过。
  • Token请求头附加错误:确认获取token后,是否将其以Authorization: Bearer {token}的格式正确添加到HttpClient的请求头中,这是常见的遗漏步骤。
  • API应用受众配置同步:目标API应用注册中暴露的API的Application ID URI,必须和token中的aud声明、appsettings中的Audience完全一致,若有修改需同步所有配置项。
  • Issuer验证配置:若租户为特定场景,可在AzureAd节点添加"ValidIssuers": ["https://login.microsoftonline.com/{TenantId}/v2.0"],确保中间件正确识别token的发行方。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 13:18:01