首页 文章

通过Azure AD B2C Graph API更改登录用户的密码

提问于
浏览
1

我正在尝试使用Graph API来更改B2C租户上当前登录用户的用户 .

该请求将发布到:

https://graph.windows.net/me/changePassword?api-version=1.6

提供的JSON采用以下格式:

{"currentPassword":"[currentpassword]","newPassword":"[newpassword]"}

不幸的是我继续得到以下错误,我不知道为什么(或者我不知道为什么使用'我'别名会有问题) . 我也尝试将租户名称包含在我发布请求的位置,但这没有区别 .

找不到段'我'的资源 .

我已设法通过重置密码来更改密码 . 然而,问题是可以在不提供当前密码的情况下更改密码 . 理想情况下,我希望用户必须在更新密码的过程中输入此内容 . 事实证明,缺少“我”的问题可能归结为缺少权限 .

我已尝试将“Access目录作为登录用户”权限添加为应用程序的委派权限 . 我到了这个页面:

enter image description here

请注意,我还必须将登录URL设置为http://localhost/testapp/,并将应用程序ID URI设置为https://patrickscorp.onmicrosoft.com/testapp,因为如果未设置这两个设置,则经典门户网站拒绝保存更改 .

在“对其他应用程序的权限”下,我点击了“添加应用程序”,然后选择了“Windows Azure Active Directory” . 然后我确保选中了“以用户身份登录的访问目录” .

enter image description here

但是保存只会导致出现以下错误:

Screenshot of error

单击“详细信息”没有帮助 - 只是说如果问题仍然存在,请联系支持人员

如果我必须沿着重置路线走下去,那么是否有办法获取用户提供的密码并进行验证?

1 回答

  • 0

    调用Azure AD Graph需要路径中的tenantName,如下所示:

    https://graph.windows.net/mytenant.onmicrosoft.com/me/changePassword?api-version=1.6
    

    这与Microsoft Graph形成对比,后者不需要它,因为它从用户令牌中推断出来并且被调用如下:

    https://graph.microsoft.com/v1.0/me/changePassword
    

    但是,请务必注意,目前Azure AD B2C建议使用Azure AD Graph .

    EDIT :根据Azure AD Graph Reference for Change Password

    为登录用户调用changePassword操作以更改自己的密码 . 注意:只能在登录用户上调用此操作 .

    如果你想改变其他一些用户's password, you' ll需要使用Reset Password

    https://graph.windows.net/mytenant.onmicrosoft.com/users/{user_id}?api-version=1.6
    

相关问题