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

AADSTS50194报错:单租户Azure AD应用不支持/common端点问题

问题根因

触发AADSTS50194错误有两个核心配置问题:

  • 你只修改了令牌兑换阶段ConfidentialClientApplication的Authority配置,但OpenIdConnect认证中间件的授权请求端点仍然硬编码了多租户专用的/common路径,这是报错的直接原因。用户输入凭据后,AAD收到发往/common端点的单租户应用授权请求,会直接拦截返回错误,根本走不到后面的令牌兑换逻辑。
  • 全局定义的Authority变量域名配置错误,你写的https://graph.microsoft.com/是微软Graph资源接口地址,不是AAD身份认证的权威端点,就算走到令牌兑换阶段,用这个地址也无法正常获取令牌。
修复步骤
  1. 修正全局Authority变量的取值,使用AAD认证域名拼接租户ID,替换原来错误的Graph域名配置:
// 修正后:使用AAD认证端点格式,v2.0版本和原有配置对齐
public static string Authority = $"https://login.microsoftonline.com/{tenantId}/v2.0";
  1. 替换OpenIdConnect中间件里硬编码的/common端点,引用正确的单租户Authority配置,同时补充单租户场景下的颁发者校验参数,避免验签失败:
app.UseOpenIdConnectAuthentication(
    new OpenIdConnectAuthenticationOptions
    {
        ClientId = appId,
        // 替换原硬编码的"https://login.microsoftonline.com/common/v2.0"
        Authority = Authority,
        Scope = $"openid email profile offline_access {graphScopes}",
        RedirectUri = redirectUri,
        PostLogoutRedirectUri = redirectUri,
        TokenValidationParameters = new TokenValidationParameters
        {
            ValidateIssuer = true,
            // 显式指定单租户合法颁发者,减少验签异常
            ValidIssuer = Authority
        },
        Notifications = new OpenIdConnectAuthenticationNotifications
        {
            AuthenticationFailed = OnAuthenticationFailedAsync,
            AuthorizationCodeReceived = OnAuthorizationCodeReceivedAsync
        }
    }
);
  1. 配置校验(全程保持单租户架构,无需修改应用为多租户模式):
  • 登录Azure AD应用注册页,确认当前应用的「支持的账户类型」选中的是「仅此组织目录中的账户」单租户选项
  • 确认PrivateSettings.config中存储的ida:tenantId为当前AAD租户的GUID格式ID,不要用租户名称拼写,避免取值错误
  • 确认配置文件中的ida:RedirectUri和Azure AD应用注册页配置的重定向URI完全一致,包括端口、路径,无尾斜杠等格式差异

修改完成后重启应用,授权流程会全程走租户专属端点,不会再触发/common端点相关的报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 17:27:22