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

Entra External ID集成Angular遇AADSTS399266错误求助

解决AADSTS399266错误:Blob grant token received with wrong issuer type

问题背景

我们的应用需支持含Gmail在内的多租户协作,采用Entra External ID方案,前端基于Angular v17开发,遵循官方示例完成配置后,在授权码交换ID Token阶段触发POST请求至https://<my domain>.ciamlogin.com//oauth2/v2.0/token时出现错误:AADSTS399266: Blob grant token received with wrong issuer type。已尝试启用「Allow public client flows」,问题仍未解决。

已完成的配置项:

  • 创建SPA应用注册,设置重定向URI为http://localhost:4200;
  • 启用ID Tokens;
  • 账户类型选择「任何组织目录中的账户(任何Microsoft Entra ID租户 - 多租户)」;
  • 创建用户流并关联该SPA应用注册;
  • 添加openid、offline_access、email委派权限并授予管理员同意;
  • MSAL参数配置:
auth: {
    clientId: <my SPA App Registration App ID>
    authority: 'https://<my domain>.ciamlogin.com/', // 该链接来自应用注册端点,确认正确
    redirectUri: '/', 
    postLogoutRedirectUri: '/',
  },

关键遗漏配置及修复步骤

1. 修正Authority参数格式

Entra External ID的Authority不能仅使用域名,必须包含租户ID或用户流标识,正确格式二选一:

// 格式1:包含租户ID的通用端点
authority: 'https://<my domain>.ciamlogin.com/<tenant-id>/v2.0/'

// 格式2:关联用户流的端点
authority: 'https://<my domain>.ciamlogin.com/tfp/<tenant-id>/<user-flow-name>/'

说明:<tenant-id>可在Entra ID租户概述页面获取;<user-flow-name>是你创建的用户流名称(例如B2C_1_signup_signin)。

2. 确保用户流支持外部身份提供商

检查用户流是否启用了Gmail等外部身份源:

  • 进入Entra ID -> 外部身份 -> 用户流
  • 编辑目标用户流,在「身份提供商」选项中添加并启用Google
  • 确认用户流的「属性和声明」中包含email等所需字段

3. 对齐重定向URI配置

确保应用注册中的重定向URI与MSAL配置完全匹配:

  • 若MSAL设置redirectUri: '/',需在应用注册中添加http://localhost:4200/(注意末尾斜杠)
  • 确认重定向URI类型设置为「单页应用(SPA)」

4. 验证权限配置有效性

  • 确认offline_access权限属于「Microsoft Identity Platform」的委派权限
  • 重新执行管理员同意操作,确保权限已生效

5. 禁用隐式流(若启用)

SPA应使用授权码+PKCE流程,无需隐式流:

  • 进入应用注册 -> 认证 -> 隐式授予和混合流
  • 取消勾选「ID令牌」和「访问令牌」选项

内容的提问来源于stack exchange,提问作者nanna-dao

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 02:50:13