重置用户密码

时间:2017-09-06 14:25:29

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

我正在尝试通过非交互式登录找到用于重置Azure Active目录中用户密码(所有用户,而不仅仅是经过身份验证的用户)的解决方案。

现在看起来这只能通过使用服务主体登录的powershell的MSOnline Set-AzureADUserPassword cmdlet来实现。

我想找到一个使用API​​端点的解决方案,所以我可以使用C#。我发现的最接近的解决方案是Microsoft Graph API,但在设置之后,我意识到我只能通过交互式登录和同意流重置密码。它不允许通过非交互式。

我的下一次尝试是使用Azure AD endpoint,但我担心的是我看到的相同消息建议我们使用Microsoft图谱API。这是否意味着azure ad endpoint将会消失?

是否有推荐的方法而不使用PowerShell?

1 个答案:

答案 0 :(得分:4)

您可以更新用户的passwordProfile属性以重置用户密码:

PATCH https://graph.microsoft.com/v1.0/users/{id | userPrincipalName}
Content-type: application/json
Authorization: bearer TOKEN

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

}

正如document中的解释:

  
    

更新passwordProfile属性时,需要以下权限:Directory.AccessAsUser.All。

  

然后您可以使用Resource Owner Flow,因为需求需要非交互式登录。要启用Directory.AccessAsUser.All委托权限,您应该:

  1. 在Azure AD应用的Access directory as the signed in user刀片中添加Microsoft Graph的Required permissions权限: enter image description here

  2. 该权限需要管理员同意,请点击您的管理员帐户Grant Permissions按钮。

  3. 然后,您可以使用资源所有者流获取Microsoft Graph的访问令牌,Directory.AccessAsUser.All权限允许管理员更改您租户中的其他用户密码。

      
        

    这是否意味着azure ad endpoint将会消失?

      

    目前,Microsoft Graph支持Azure AD Graph支持的大多数目录功能,但不是全部。请参阅Gaps between Microsoft Graph and Azure AD Graph