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

调用Azure AD Identity.Client的AcquireTokenByUsernamePassword遇406错误及排查

解决Azure AD Identity.Client AcquireTokenByUsernamePassword方法的406错误

问题场景

我下载了Azure的up-console示例代码,严格按照ReadMe完成客户端应用注册、项目配置后,运行时输入登录Azure门户的邮箱账号和对应密码,调用AcquireTokenByUsernamePassword方法时触发了406错误。

核心出错代码

private async Task<AuthenticationResult> GetTokenForWebApiUsingUsernamePasswordAsync(IEnumerable<string> scopes, string username, SecureString password) {
    AuthenticationResult result = null;
    result = await App.AcquireTokenByUsernamePassword(scopes, username, password).ExecuteAsync();
    return result;
}

已完成的配置与操作步骤

客户端应用注册流程

  • 在Azure门户的“应用注册(预览)”页面创建名为up-console的应用,支持“任何组织目录中的账户”
  • 记录应用的“客户端ID”用于后续配置
  • 在应用清单中将allowPublicClient属性设置为true并保存
  • 添加Microsoft Graph的委托权限User.Read、User.ReadBasic.All,并完成租户管理员同意

项目配置

  • 在appsettings.json中完成如下参数配置:
    {
        "Authentication": {
            "AzureCloudInstance": "AzurePublic",
            "AadAuthorityAudience": "AzureAdMyOrg",
            "ClientId": "[复制的Azure AD客户端ID]",
            "TenantId": "[复制的Azure AD租户ID]",
            "Tenant": "[复制的Azure AD租户ID]"
        }
    }
    
  • 清理解决方案、重新生成后启动调试

解决方法

经过测试,改用Azure AD中新创建的用户账号(仔细复制用户名和密码)后,代码可以正常运行并获取到令牌。目前尚未明确使用最初创建目录的管理员邮箱账号时触发406错误的具体原因,但切换新用户账号可解决该问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:42:12