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

使用MSAL的ConfidentialClientApplicationBuilder获取Token时遇异常求助

AADSTS50049: Unknown or invalid instance异常的解决办法

问题描述

我尝试通过以下代码调用AcquireTokenForClient方法获取访问令牌,但执行时触发了异常。

代码示例

var clientID = "XXXXXXXXXXXXXXXXXXXXXXXXXXXX";
var clientSecret = "XXXXXXXXXXXXXXXXXXXXXXXXXXXX";

var authority = "https://<your-tenant>.b2clogin.com/<your-tenant>.onmicrosoft.com/<your-policyID>";

var clientApplication = ConfidentialClientApplicationBuilder.Create(clientID)
  .WithClientSecret(clientSecret)
  .WithAuthority(authority)
  .Build();

var scopes = new string[] { "{resourceId}/.default" };

var authenticationResult = await clientApplication.AcquireTokenForClient(scopes)
  .ExecuteAsync()
  .ConfigureAwait(false);

var accesstoken = authenticationResult.AccessToken;

异常信息

Unhandled exception. System.AggregateException: One or more errors occurred. (AADSTS50049: Unknown or invalid instance.
 ---&gt; MSAL.CoreCLR.4.59.0.0.MsalServiceException:
        ErrorCode: invalid_instance
Microsoft.Identity.Client.MsalServiceException: AADSTS50049: Unknown or invalid instance. 
   at Microsoft.Identity.Client.OAuth2.OAuth2Client.ThrowServerException(HttpResponse response, RequestContext requestContext)
   at Microsoft.Identity.Client.OAuth2.OAuth2Client.CreateResponse[T](HttpResponse response, RequestContext requestContext)
   at Microsoft.Identity.Client.OAuth2.OAuth2Client.ExecuteRequestAsync[T](Uri endPoint, HttpMethod method, RequestContext requestContext, Boolean expectErrorsOn200OK, Boolean addCommonHeaders, Func`2 onBeforePostRequestData)
   at Microsoft.Identity.Client.OAuth2.OAuth2Client.DiscoverAadInstanceAsync(Uri endpoint, RequestContext requestContext)
   at Microsoft.Identity.Client.Instance.Discovery.NetworkMetadataProvider.SendInstanceDiscoveryRequestAsync(Uri authority, RequestContext requestContext)
   at Microsoft.Identity.Client.Instance.Discovery.NetworkMetadataProvider.FetchAllDiscoveryMetadataAsync(Uri authority, RequestContext requestContext)
   at Microsoft.Identity.Client.Instance.Discovery.NetworkMetadataProvider.GetMetadataAsync(Uri authority, RequestContext requestContext)
   at Microsoft.Identity.Client.Instance.Discovery.InstanceDiscoveryManager.FetchNetworkMetadataOrFallbackAsync(RequestContext requestContext, Uri authorityUri)
   at Microsoft.Identity.Client.Instance.Discovery.InstanceDiscoveryManager.GetMetadataEntryAsync(AuthorityInfo authorityInfo, RequestContext requestContext, Boolean forceValidation)
   at Microsoft.Identity.Client.Instance.AuthorityManager.RunInstanceDiscoveryAndValidationAsync()
   at Microsoft.Identity.Client.Internal.Requests.ClientCredentialRequest.GetAccessTokenAsync(CancellationToken cancellationToken, ILoggerAdapter logger)
   at Microsoft.Identity.Client.Internal.Requests.ClientCredentialRequest.ExecuteAsync(CancellationToken cancellationToken)
   at Microsoft.Identity.Client.Internal.Requests.RequestBase.RunAsync(CancellationToken cancellationToken)
   at Microsoft.Identity.Client.ApiConfig.Executors.ConfidentialClientExecutor.ExecuteAsync(AcquireTokenCommonParameters commonParameters, AcquireTokenForClientParameters clientParameters, CancellationToken cancellationToken)

解决办法

  • 修正Authority格式:AAD B2C的客户端凭证流不支持在Authority中包含用户策略/自定义策略。正确的Authority应为:

    https://<your-tenant>.b2clogin.com/<your-tenant>.onmicrosoft.com/v2.0/
    

    或使用租户ID替代域名:

    https://<your-tenant>.b2clogin.com/<tenant-id>/v2.0/
    
  • 验证Scope的正确性:将{resourceId}替换为目标API的应用ID URI,格式应为:

    var scopes = new string[] { "https://<your-tenant>.onmicrosoft.com/your-api/.default" };
    

    .default后缀表示使用该API的所有应用级权限。

  • 检查应用注册配置:确认客户端应用已被授予目标API的应用权限(非委托权限),且完成了管理员同意;同时验证客户端ID和Secret是否正确、未过期。

  • 禁用实例发现(可选):若网络限制导致实例发现失败,可在构建客户端时添加配置:

    var clientApplication = ConfidentialClientApplicationBuilder.Create(clientID)
      .WithClientSecret(clientSecret)
      .WithAuthority(authority)
      .WithInstanceDiscovery(false)
      .Build();
    

    注意:仅在确认Authority完全正确时使用,避免引入安全风险。

  • 升级MSAL版本:当前使用的MSAL 4.59.0版本较旧,尝试升级到最新稳定版,修复可能存在的兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 10:14:58