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

如何解决Java中com.microsoft.aad.msal4j.MsalServiceException:AADSTS90002异常?

解决AADSTS90002: Tenant 'tenant.id' not found异常的方案
  • 确认租户ID有效性
    检查配置中使用的租户ID是否为Azure AD的有效GUID,避免使用tenant.id这类占位符或拼写错误。可直接在Azure门户的Azure AD概述页面复制正确的租户ID。

  • 核验身份认证配置
    若测试用AAD身份访问Blob存储,需确保:

    • 应用注册所属租户与存储账户关联的租户完全一致
    • 配置的客户端ID、密钥(或证书)属于该租户下的有效应用注册
    • 若用托管身份,JUnit测试中模拟TokenCredential时需指定正确的租户ID上下文
  • 检查BlobClient初始化逻辑
    确认初始化BlobClient时的认证配置无误:

    • 使用DefaultAzureCredential时,确保环境变量AZURE_TENANT_ID、AZURE_CLIENT_ID、AZURE_CLIENT_SECRET已设置为对应租户的有效值
    • 手动构建ClientSecretCredential需显式传入正确租户ID,示例代码:
      ClientSecretCredential credential = new ClientSecretCredentialBuilder()
          .tenantId("实际租户GUID")
          .clientId("你的客户端ID")
          .clientSecret("你的客户端密钥")
          .build();
      BlobClient blobClient = new BlobClientBuilder()
          .endpoint("https://你的存储账户.blob.core.windows.net")
          .containerName("目标容器名")
          .blobName("目标Blob名")
          .credential(credential)
          .buildClient();
      
  • 隔离测试环境配置
    确保JUnit测试使用独立的配置文件(如application-test.yml),其中租户ID等参数为测试环境的有效值,避免与生产占位符混淆。

  • 排查令牌请求逻辑
    若自定义了令牌获取逻辑,检查请求Azure AD令牌的URL中租户部分是否为有效ID,避免出现tenant.id占位符:

    错误示例:https://login.microsoftonline.com/tenant.id/oauth2/v2.0/token
    正确示例:https://login.microsoftonline.com/12345678-1234-1234-1234-1234567890ab/oauth2/v2.0/token

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 13:16:15