首页 文章

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

提问于
浏览
1

图谱API - 我们正在尝试重置office 365 azure广告用户的密码,因为它在守护程序app \ service中使用 client credentials grant flow从azure广告获取访问令牌,但无法重置用户的密码 . 它响应“ Insufficient privileges to complete the operation ”,我已向应用程序授予以下权限 .

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

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

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

谢谢

2 回答

  • 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

    希望这可以帮助,

  • 0

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

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

    • 以管理员身份运行windows powershell

    编写下一个PowerShell cmdlet

    • 安装模块AzureAD

    • Connect-AzureAD

    • $ app = Get-AzureADServicePrincipal -SearchString "AppName"

    • $ role = Get-AzureADDirectoryRole | Where-Object {$ _ . DisplayName -eq "Company Administrator"}

    • Add-AzureADDirectoryRoleMember -ObjectId $ role.ObjectId -RefObjectId $ app.ObjectId

    注意:在AD中按应用程序名称更改“AppName” . 使用具有GlobalAdministrator权限的用户连接到AzureAD .

相关问题