如何通过Graph API重置Azure AD B2C中的用户密码?

时间:2018-06-12 09:25:43

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

如何使用Microsoft Graph API重置用户的密码? 有办法吗?如果是的话,我无法找到办法。

请告诉我,如何实现这一目标? 谢谢!

2 个答案:

答案 0 :(得分:1)

您可以通过修补用户对象来重置用户密码:

PATCH https://graph.windows.net/myorganization/users/{user_id}?api-version=1.6

{
    "passwordProfile": {
        "password": "{password}",
        "forceChangePasswordNextLogin": false
    },
    "passwordPolicies": "DisablePasswordExpiration"
}

有关详细信息,请参阅Reset a user's password

答案 1 :(得分:0)

推荐使用Chris建议的方法。 正如我在这篇帖子(permissionissue中所写的那样,您还应该注意正确的权限配置,因为只有在您授予应用程序正确的特权的情况下,才可以从应用程序中更改密码。

在“重置密码”流中,无法模拟用户,因为您没有用户的凭据,因此您应授予对其他用户进行呼叫的应用程序的管理员特权。这意味着您必须信任该应用程序的代码并谨慎使用。

我曾经向我的应用授予“帮助台管理员”角色,这足以更改其他用户的密码。 通过以下Powershell脚本:

Install-Module MSOnline
Install-Module AzureAD
Connect-MsolService
Connect-AzureAD

$applicationId = "{your app ID}"
$sp = Get-MsolServicePrincipal -AppPrincipalId $applicationId
Add-MsolRoleMember -RoleObjectId <your Role ID> -RoleMemberObjectId $sp.ObjectId -RoleMemberType servicePrincipal

您应该在Active Directory上使用具有管理员特权的用户运行此代码。 您可以使用以下命令获取适当的roleID:

Get-AzureADDirectoryRole

现在,您的应用程序具有足够的特权来调用PATCH方法来更改其他用户的密码。