无法在Azure Token中获取本地SID问题求助
问题排查与解决方案
一、Azure Token中无法返回本地组SID及groups声明的问题
排查步骤:
- 确认组的同步状态与属性
- 登录Azure AD门户,查看用户所属的28个安全组:
- 确认组的来源为「Windows AD」(即从本地AD同步到Azure AD的组),只有这类组才会包含
on_premise_security_identifier属性; - 检查组的类型为「安全组」,Office 365组不支持返回本地SID。
- 确认组的来源为「Windows AD」(即从本地AD同步到Azure AD的组),只有这类组才会包含
- 登录Azure AD门户,查看用户所属的28个安全组:
- 验证应用注册配置的生效状态
- 你已在manifest中配置了
groupMembershipClaims: "SecurityGroup"和optionalClaims,但Azure AD配置变更可能需要15-30分钟同步生效,建议等待一段时间后重新获取Token测试; - 确保未在Token请求中通过
claims参数手动覆盖optionalClaims的配置,避免冲突。
- 你已在manifest中配置了
- 检查Token获取请求的参数
- 确保授权请求的
scope包含openid profile,无需额外添加Groups.ReadAll(groups声明是通过manifest配置直接返回,而非API权限获取); - 使用JWT解析工具解析返回的Token,确认payload中是否存在
groups字段:如果存在但无SID,说明组本身没有同步本地SID;如果完全没有groups字段,继续下一步排查。
- 确保授权请求的
- 确认用户的组归属权限
- 在Azure AD用户详情页的「所属组」中,确认用户确实属于目标安全组;
- 检查应用的「企业应用」配置中,是否开启了「需要用户分配」:如果开启,需确保用户或其所属组已被分配到该应用。
二、企业账号清空缓存后无法登录,个人账号可登录的问题
排查步骤:
- 确认应用注册的租户类型
- 检查应用注册的「支持的账户类型」:如果配置的是企业租户ID,应设置为「仅限此组织目录中的账户」(单租户);若当前为「任何组织目录中的账户和个人Microsoft账户」,个人账号能登录属于正常,但企业账号登录异常需检查租户内配置。
- 检查应用的用户分配状态
- 进入Azure AD的「企业应用」,找到该应用并进入「用户和组」:
- 确认企业账号或其所属组已被添加到应用的分配列表中;
- 如果开启了「需要用户分配」,未分配的用户将无法登录。
- 进入Azure AD的「企业应用」,找到该应用并进入「用户和组」:
- 验证登录请求的租户参数
- 确保授权请求中的
tenantId为正确的企业租户ID,而非common或organizations(使用common会允许个人账号登录,但可能导致企业账号的租户验证异常)。
- 确保授权请求中的
- 排查条件访问策略
- 检查Azure AD的「条件访问」策略,是否存在阻止该企业账号登录此应用的规则(如MFA要求、位置限制、设备合规性等),清空缓存后可能触发了策略的强制检查。
- 确认用户许可证状态
- 检查企业账号是否拥有有效的Azure AD或Office 365许可证,部分企业应用对用户许可证有要求,无许可证可能导致登录失败。
内容的提问来源于stack exchange,提问作者Thierry
相关产品推荐
相关产品推荐

