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

调用Access Token API时scope参数无效的问题求助

解决方案:AADSTS70011 无效Scope错误排查

核心原因

Token请求中的scope参数被错误传入URL编码后的字符串(如user.read%20mail.read),Azure AD的token端点无法识别这种编码格式的分隔符。

具体排查步骤

  • 修正Scope参数格式
    在POST请求的表单数据中,scope需使用未编码的空格或+分隔权限,禁止传入URL编码后的%20。示例C#代码:

    var formData = new Dictionary<string, string>
    {
        ["client_id"] = "你的客户端ID",
        ["scope"] = "offline_access user.read mail.read", // 直接用空格分隔权限
        ["code"] = "获取到的授权Code",
        ["redirect_uri"] = "http://localhost:63135/Account/MicrosoftCode",
        ["grant_type"] = "authorization_code",
        ["client_secret"] = "你的客户端密钥" // 机密客户端需添加该参数
    };
    var content = new FormUrlEncodedContent(formData);
    var response = await new HttpClient().PostAsync("https://login.microsoftonline.com/common/oauth2/v2.0/token", content);
    
  • 避免双重编码
    不要手动对scope字符串做URL编码(如HttpUtility.UrlEncode),FormUrlEncodedContent会自动处理参数编码,手动编码会导致%20被二次编码,引发识别错误。

  • 确认Content-Type头
    确保请求的Content-Type为application/x-www-form-urlencoded,FormUrlEncodedContent会自动设置该头,不要手动修改为其他类型。

  • 核对权限配置
    虽然Postman可正常运行,仍需确认Azure AD应用中已添加User.Read、Mail.Read权限,且已完成对应同意流程(委托权限需用户同意,应用权限需管理员同意)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 13:35:33