【问题标题】:Microsoft Graph Api-Change PasswordMicrosoft Graph Api-更改密码
【发布时间】:2020-04-24 17:45:49
【问题描述】:

我在 Azure AD 中创建了用户,并在 Microsoft graph api 的帮助下尝试更改用户的密码,但由于需要管理员权限而收到错误消息。 感谢您的帮助

【问题讨论】:

标签: azure-ad-graph-api


【解决方案1】:

   {
   "passwordProfile": {
                "forceChangePasswordNextSignIn": false,
                "password": "newPassword"
            }
    }

尝试打补丁并更改属性。这在过去也对我有用。

【讨论】:

  • 这完全适用于 Graph API(如果您的权限足够)。为什么不给你点赞?
【解决方案2】:

我不确定您使用的是哪个 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.

【讨论】:

  • 感谢您提供该链接 - changePassword 端点上的文档已被深埋!
  • 我不认为 Microsoft Graph API 代码 sn-p 是正确的,不要认为你可以用 Microsoft Graph API 做你建议的事情。
  • @mattruma,回复是2017年,两年可能会改变一切。我现在还没有确认。
  • 我不认为这个答案是正确的,至少现在是这样。如果您的应用程序的 Graph API 权限足够,您现在完全可以使用graph.microsoft.com/v1.0/users 端点和下面 Acrhaf C. 建议的补丁。
  • @user12861 你能详细说明你的经历吗?因为它在 2021 年对我不起作用。
【解决方案3】:

创建应用程序的用户,或应用程序中的用户,必须在角色设置中指定为“用户管理员”。

【讨论】:

    【解决方案4】:

    为了更改密码,您需要为您的应用程序赋予“帮助台管理员”的角色,这必须通过 windows powershell 完成。

    这些是要在 Windows Power shell 中键入的命令序列,以使您的应用具有帮助台管理员的角色。

    1. Install-Module MSOnline
    2. Install-Module AzureAD
    3. Connect-MsolService(之后会提示登录,登录的用户应该是全局管理员)
    4. Connect-AzureAD(之后会提示登录,登录的用户应该是全局管理员)
    5. $tenantID= "yourtenantid"
    6. $appID = "your app id"
    7. $myAp = Get-MsolServicePrincipal -AppPrincipalId $appID -TenantID $tenantID
    8. $objectId = $myAp.ObjectId
    9. Add-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!"
    }
    

    那么密码就更新成功了!

    【讨论】:

      猜你喜欢
      • 2018-02-01
      • 1970-01-01
      • 2018-08-29
      • 1970-01-01
      • 1970-01-01
      • 2018-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多