我正在尝试使用Graph API来更改B2C租户上当前登录用户的用户 .
该请求将发布到:
https://graph.windows.net/me/changePassword?api-version=1.6
提供的JSON采用以下格式:
{"currentPassword":"[currentpassword]","newPassword":"[newpassword]"}
不幸的是我继续得到以下错误,我不知道为什么(或者我不知道为什么使用'我'别名会有问题) . 我也尝试将租户名称包含在我发布请求的位置,但这没有区别 .
找不到段'我'的资源 .
我已设法通过重置密码来更改密码 . 然而,问题是可以在不提供当前密码的情况下更改密码 . 理想情况下,我希望用户必须在更新密码的过程中输入此内容 . 事实证明,缺少“我”的问题可能归结为缺少权限 .
我已尝试将“Access目录作为登录用户”权限添加为应用程序的委派权限 . 我到了这个页面:
请注意,我还必须将登录URL设置为http://localhost/testapp/,并将应用程序ID URI设置为https://patrickscorp.onmicrosoft.com/testapp,因为如果未设置这两个设置,则经典门户网站拒绝保存更改 .
在“对其他应用程序的权限”下,我点击了“添加应用程序”,然后选择了“Windows Azure Active Directory” . 然后我确保选中了“以用户身份登录的访问目录” .
但是保存只会导致出现以下错误:
单击“详细信息”没有帮助 - 只是说如果问题仍然存在,请联系支持人员
如果我必须沿着重置路线走下去,那么是否有办法获取用户提供的密码并进行验证?
1 回答
调用Azure AD Graph需要路径中的tenantName,如下所示:
这与Microsoft Graph形成对比,后者不需要它,因为它从用户令牌中推断出来并且被调用如下:
但是,请务必注意,目前Azure AD B2C建议使用Azure AD Graph .
EDIT :根据Azure AD Graph Reference for Change Password:
如果你想改变其他一些用户's password, you' ll需要使用Reset Password: