【发布时间】:2020-04-24 17:45:49
【问题描述】:
我在 Azure AD 中创建了用户,并在 Microsoft graph api 的帮助下尝试更改用户的密码,但由于需要管理员权限而收到错误消息。 感谢您的帮助
【问题讨论】:
-
您是否要更改其他用户的密码?还是您的登录用户?
-
我正在尝试同时更改其他用户和我登录用户的密码
我在 Azure AD 中创建了用户,并在 Microsoft graph api 的帮助下尝试更改用户的密码,但由于需要管理员权限而收到错误消息。 感谢您的帮助
【问题讨论】:
{
"passwordProfile": {
"forceChangePasswordNextSignIn": false,
"password": "newPassword"
}
}
尝试打补丁并更改属性。这在过去也对我有用。
【讨论】:
我不确定您使用的是哪个 api,Azure AD Graph API 还是 Microsoft Graph api。但不管是哪个api,修改密码操作都是用来让登录用户修改自己的密码:
微软图形 API:
POST https://graph.microsoft.com/v1.0/me/changePassword
Content-Type: application/json
{
"currentPassword": "Test1234!",
"newPassword": "Test5678!"
}
Azure AD 图形 API:
POST https://graph.windows.net/me/changePassword?api-version=1.6
Content-Type: application/json
{
"currentPassword": "138122cC@",
"newPassword": "138122c@"
}
请参考文档:https://msdn.microsoft.com/Library/Azure/Ad/Graph/api/functions-and-actions#changePassword
注意:此操作只能在登录用户上调用。除了使用如下所示的 me 别名来寻址操作之外,您还可以使用 /users//changePassword 或 /users/userPrincipalName/changePassword,但如果使用这些寻址方式,则目标用户必须是登录用户。
如果目标用户不是登录用户,则会抛出错误:Access to change password operation is denied.
【讨论】:
创建应用程序的用户,或应用程序中的用户,必须在角色设置中指定为“用户管理员”。
【讨论】:
为了更改密码,您需要为您的应用程序赋予“帮助台管理员”的角色,这必须通过 windows powershell 完成。
这些是要在 Windows Power shell 中键入的命令序列,以使您的应用具有帮助台管理员的角色。
Install-Module MSOnlineInstall-Module AzureADConnect-MsolService(之后会提示登录,登录的用户应该是全局管理员)Connect-AzureAD(之后会提示登录,登录的用户应该是全局管理员)$tenantID= "yourtenantid"$appID = "your app id"$myAp = Get-MsolServicePrincipal -AppPrincipalId $appID -TenantID $tenantID$objectId = $myAp.ObjectIdAdd-MsolRoleMember -RoleName "Helpdesk Administrator" -RoleMemberType ServicePrincipal- RoleMemberObjectId $objectId
在完成所有这些步骤之后,如果你这样做了
POST https://graph.microsoft.com/v1.0/me/changePassword
Content-Type: application/json
{
"currentPassword": "Test1234!",
"newPassword": "Test5678!"
}
那么密码就更新成功了!
【讨论】: