如何使用Microsoft Graph API重置用户的密码? 有办法吗?如果是的话,我无法找到办法。
请告诉我,如何实现这一目标? 谢谢!
答案 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方法来更改其他用户的密码。