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

PHP对接Azure AD认证时遇AADSTS50126错误排查

问题描述

我有一个通过Azure Active Directory(AAD)实现用户登录认证的PHP应用,该应用调用https://login.microsoftonline.com/common/oauth2/token API,发送的POST数据如下:

array(7) {
  ["grant_type"]=>  string(8) "password"
  ["username"]=>  string(13) "me@example.com"
  ["password"]=>  string(8) "********"
  ["scope"]=>  string(20) "openid profile email"
  ["resource"]=>  string(25) "https://graph.windows.net"
  ["client_id"]=>  string(36) "********-****-****-****-************"
  ["client_secret"]=>  string(40) "****************************************"
}

该应用在多个不同域名、ID和密钥的客户端中均可正常运行,但在某个新客户端中,持续收到API返回的错误:

"AADSTS50126: Error validating credentials due to invalid username or password."

我确认所有数据均正确,请问该错误的原因是什么?是否可能是该客户端的Azure AD配置存在特殊设置导致?

可能的原因及排查方向
  • 新客户端对应租户启用了MFA(多因素认证):密码授权流(grant_type=password)不支持MFA验证,若用户账号在该租户中开启了MFA,AAD会直接返回凭证无效的错误。
  • 租户开启了"安全默认值":Azure AD安全默认值会强制所有用户使用MFA,同时禁用密码授权流这类不安全的认证方式,直接导致请求失败。
  • 用户账号在该租户状态异常:比如账号被锁定、密码过期,或者未被授权访问目标资源https://graph.windows.net,都会触发凭证验证错误。
  • 客户端应用权限配置错误:新客户端可能未被授予访问https://graph.windows.net的权限,或者权限类型不匹配(比如需要委派权限却只配置了应用权限),导致AAD拒绝请求。
  • 租户禁用了密码授权流:管理员可能在租户身份验证策略中明确禁止使用密码授权类型,即便账号密码正确,也会返回凭证无效的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 18:09:25