通过Azure AD B2C图谱API

时间:2017-06-22 14:11:09

标签: azure-ad-b2c azure-ad-graph-api

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

请求被发布到:

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

提供的JSON格式如下:

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

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

  

找不到“me”段的资源。

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

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

enter image description here

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

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

enter image description here

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

Screenshot of error

点击“详细信息”无济于事 - 它只是说如果问题仍然存在,请联系 支撑

如果我必须沿着重置路线走,那么有没有办法获取用户提供的密码并验证它?

1 个答案:

答案 0 :(得分: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。

修改: 根据{{​​3}}:

  

为登录用户调用changePassword操作以更改自己的密码。

     

注意:此操作只能在登录用户上调用。

如果您想更改其他用户的密码,则需要使用Azure AD Graph Reference for Change Password

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