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

Microsoft SSO报错:The account does not exist in this organization 求助

Microsoft SSO个人账号登录失败问题排查与解决

问题描述

我正在实现Microsoft SSO功能,期望任何微软账号都能登录应用。当前组织内的应用用户登录正常,但使用个人微软账号登录时,出现错误提示:

The account does not exist in this organization

错误截图:
错误截图

我的SSO端点代码如下:

const REDIRECT_URI = "http://localhost:3000/redirect";

const cca = new msal.ConfidentialClientApplication(config);

const scopes = ["user.read"];

router.get("/auth", (req, res) => {
  // 构造授权码请求对象
  const authCodeUrlParameters = {
    scopes: scopes,
    redirectUri: REDIRECT_URI,
  };

  // 请求授权码并跳转
  cca
    .getAuthCodeUrl(authCodeUrlParameters)
    .then((response) => {
      return res.send(response);
    })
    .catch((error) => res.send(error));
});

router.get("/redirect", (req, res) => {
  // 使用重定向请求中的授权码构造令牌请求对象
  const tokenRequest = {
    code: `${req.query.code}`,
    scopes: scopes,
    redirectUri: REDIRECT_URI,
  };
  // 用授权码交换令牌
  cca
    .acquireTokenByCode(tokenRequest)
    .then(async (response) => {
      res.send(response);
    })
    .catch((error) => res.status(500).send(error));
});

解决方案

1. 修改Azure AD应用账户类型

问题核心是你的Azure AD应用注册被限制为仅允许组织内部账号登录,需调整为支持全量微软账号:

  • 登录Azure门户,找到目标应用注册。
  • 进入「概述」页面,找到「支持的账户类型」设置项。
  • 将选项从「仅限此组织目录中的账户」切换为「任何组织目录中的账户和个人Microsoft账户(例如Skype、Xbox)」。
  • 保存配置更改。

2. 调整MSAL的Authority配置

检查config中的authority字段:

  • 若原配置为https://login.microsoftonline.com/{你的租户ID},需改为https://login.microsoftonline.com/common(该值支持所有组织账号和个人微软账号)。
  • 修改后重启应用,重新测试个人账号登录流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 15:25:41