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

使用MSAL获取令牌时遇AADSTS7000218错误求助

解决方案:AADSTS7000218 错误排查

核心原因

AADSTS7000218 错误表明Azure AD将你的桌面应用识别为机密客户端,因此要求提供client_secret或client_assertion,但你的应用实际是公共客户端(桌面/原生应用),无需这类凭证。

关键修复步骤

1. 修正重定向URI的类型

你的应用清单中,重定向URI的类型配置错误:

"replyUrlsWithType": [
    {
        "url": "https://login.microsoftonline.com/common/oauth2/nativeclient",
        "type": "Web"
    }
]

Web类型是给机密客户端(如Web应用)使用的,桌面应用需要将类型改为PublicClient(或Native,取决于Entra ID版本)。

操作:

  • 登录Entra ID控制台,找到你的应用注册
  • 进入身份验证 -> 平台配置
  • 删除当前的Web类型重定向URI
  • 添加移动和桌面应用类型的重定向URI,选择https://login.microsoftonline.com/common/oauth2/nativeclient(或自动生成的msal{你的ClientID}://auth)
  • 保存后,应用清单中的type会自动更新为PublicClient

2. 验证代码配置

确保代码中未误添加机密客户端相关配置:

  • 确认使用PublicClientApplicationBuilder创建实例(你的代码已正确使用)
  • 不要添加.WithClientSecret()等机密客户端专属配置
  • 替换YOUR_CLIENT_ID为你应用注册的实际appId

3. 清除MSAL缓存

旧的账户缓存可能导致身份验证请求异常:

  • Windows系统:删除%AppData%/.IdentityService目录下的缓存文件
  • 重新运行应用,触发交互式登录

4. 确认应用注册的公共客户端设置

  • 再次确认应用清单中allowPublicClient为true
  • 在Entra ID控制台的概述 -> 管理 -> 认证中,确认“允许公共客户端流”已开启

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 02:23:15