重置用户密码

The*_*Guy 6 azure-ad-graph-api microsoft-graph-api

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

现在看来,这只能通过使用服务主体登录的powershell 的 MSOnline Set-AzureADUserPasswordcmdlet获得。

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

我的下一次尝试是使用Azure AD 端点,但我担心的是我看到了建议我们使用 Microsoft 图形 API 的相同消息。这是否意味着 Azure 广告端点将消失?

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

Nan*_* Yu 5

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

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

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

}
Run Code Online (Sandbox Code Playgroud)

文档中的解释:

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

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

  1. Access directory as the signed in userRequired permissionsAzure AD 应用的刀片中添加 Microsoft Graph 的权限: 在此处输入图片说明

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

然后您可以使用 Resource Owner Flow 获取 Microsoft Graph 的访问令牌,Directory.AccessAsUser.All权限允许管理员更改您租户中其他用户的密码。

这是否意味着 Azure 广告端点将消失?

目前,Microsoft Graph 支持 Azure AD Graph 支持的大部分目录功能,但不是全部。请参阅Microsoft Graph 和 Azure AD Graph 之间的差距