如何不使用Graph API通过Web API实现Azure AD用户密码重置?
不支持的终端用户操作
任何终端用户通过PowerShell v1、v2或Microsoft Graph API重置自身密码的操作。
你之前尝试调用graphClient.Me.ChangePassword接口失败,就是因为上述官方限制,普通终端用户身份调用该接口默认不被允许。以下是对应问题的解决方案:
允许用户自主重置密码的配置步骤
Azure Portal 手动配置步骤
- 登录Azure Portal进入Azure Active Directory管理中心
- 在左侧「安全性」分类下找到「密码重置」配置项
- 第一步配置启用范围:可选择所有用户启用,或仅给指定安全组内的用户启用自助密码重置(SSPR)功能
- 第二步配置身份验证方法:要求用户至少配置1-2种验证手段,可选范围包括手机短信、邮箱验证码、安全问题、Microsoft Authenticator推送验证等
- 第三步配置注册规则:可设置要求用户下次登录时强制注册SSPR验证信息,也可自定义验证信息的有效期
- 若为本地AD与Azure AD同步的混合环境,需额外在Azure AD Connect配置中开启「密码写回」功能,同时为同步服务账号授予本地AD的密码修改权限
- 保存所有配置后,可使用测试账号验证SSPR功能是否正常可用
编程自动化配置步骤
- 可调用Microsoft Graph的密码重置策略接口,批量配置SSPR的启用范围、验证方法等规则
- 也可使用Azure AD PowerShell模块,执行
Set-AzureADMSPasswordResetPolicy相关命令完成批量配置
不使用Graph API修改Azure AD密码的替代方案
- 方案一:引导用户使用Azure AD官方自助密码重置服务,用户完成身份验证后即可自行修改或重置密码,无需调用任何API
- 方案二:管理员可直接在Azure Portal的对应用户详情页操作重置密码,也可通过Azure AD PowerShell模块执行
Reset-AzureADUserPassword命令完成密码重置 - 方案三:自研应用需要集成密码修改能力时,可直接跳转至Azure AD官方的密码修改页面完成操作,无需自行开发密码修改逻辑、调用相关接口
- 方案四:混合环境下可直接在本地AD中修改用户密码,通过Azure AD Connect同步至Azure AD,可避开Graph API的操作限制
内容的提问来源于stack exchange,提问作者Tassisto
相关产品推荐
相关产品推荐

