如何使用Graph API重置Office 365 Azure AD用户的密码?

时间:2018-01-09 14:47:52

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

图表API - 我们正在尝试重置office 365 azure广告用户的密码,因为它在守护程序app \ service中使用客户端凭据授予流程从azure广告获取访问令牌,但无法重置用户密码。它响应“完成操作的权限不足”, 我已向应用程序授予以下权限。

1)User.ReadWrite.All - 读取和写入所有用户的完整配置文件(应用程序+委派权限) 2)Directory.AccessAsUser.All - 作为登录用户访问目录(委派权限)

我的O365应用程序是“多租户Web Api”应用程序,已获得管理员同意。 我的应用程序的主要目的是将用户从我的Web应用程序(用户详细信息等)同步到Azure AD。我的应用程序能够同步除密码之外的所有用户配置文件详细信息。

可以由租户管理员授权的守护程序服务应用程序重置组织中用户的密码吗?

由于

2 个答案:

答案 0 :(得分:0)

目前,Microsoft Graph(和AzureAD Graph)不会公开任何仅限应用程序的权限(可由守护程序应用程序使用)来重置用户密码。这是一种特别特权的操作,很容易被滥用。只要登录用户是管理员,我们就会在交互式委派流程中使用Directory.AccessAsUser.All支持此操作。

如果您需要重置密码的应用程序权限,请在UserVoice上申请:https://officespdev.uservoice.com/forums/224641-feature-requests-and-feedback/category/101632-microsoft-graph-o365-rest-apis

希望这有帮助,

答案 1 :(得分:0)

我遇到了同样的问题,需要15天才能找到解决方案。虽然权限是从应用程序提供的,但是无法重置用户的密码。为此,"公司管理员"必须提供

我按照接下来的步骤操作了:

  1. 以管理员身份运行Windows PowerShell
  2. 编写下一个PowerShell cmdlet

    • 安装模块AzureAD
    • 连接-AzureAD
    • $ app = Get-AzureADServicePrincipal -SearchString" AppName"
    • $ role = Get-AzureADDirectoryRole | Where-Object {$ _。 DisplayName -eq"公司管理员"}
    • Add-AzureADDirectoryRoleMember -ObjectId $ role.ObjectId -RefObjectId $ app.ObjectId

    注意:更改" AppName"通过AD中的应用程序名称。使用具有GlobalAdministrator权限的用户连接到AzureAD。