具有全局管理员权限的Azure AD应用程序
因此,我正尝试在Azure AD上设置一个应用程序,以便删除用户。具有全局管理员权限的Azure AD应用程序
我已经注册了应用程序并使用客户端ID和secert来获取访问令牌。
我能够给应用程序创建用户的权限,并且工作正常,但是当我通过图API删除时,我得到403个没有足够权限来完成操作。
我试图通过图rest API。我试图删除的用户也是通过其余的调用完成的。用户与应用程序处于同一租户,因此我不想从多个租户中删除用户。
看来我需要做的是给应用程序或者全局管理员权限或公司管理员权限,但我正在旋转*在哪里以及如何做到这一点。
任何帮助,将不胜感激。
看看我的回答here。
您可以通过添加应用程序到
Company Administrator
Directory角色的服务主体提升访问的租客 水平的应用程序了。这将为应用程序提供与公司管理员相同的 权限级别,该管理员可以做任何事情 。对于任何类型的 目录角色,您都可以遵循这些相同的说明,具体取决于您希望给此应用程序的访问级别 。请注意,这只会影响您的应用在租户中的访问。
此外,您还必须是租户的公司管理员才能遵循这些说明。
为了进行更改,您需要安装Azure Active Directory PowerShell Module。
一旦你安装的模块,验证您租客 您的管理员帐户:
Connect-MSOLService
然后,我们需要得到我们 想要提升双方服务主体的对象ID,与本公司管理员角色为您的租户。
搜索服务主要由应用程序ID GUID:
$sp = Get-MsolServicePrincipal -AppPrincipalId <App ID GUID>
搜索目录中作用的名称
$role = Get-MsolRole -RoleName "Company Administrator"
现在我们可以使用
Add-MsolRoleMember
命令这个角色添加到 的服务主体。Add-MsolRoleMember -RoleObjectId $role.ObjectId -RoleMemberType ServicePrincipal -RoleMemberObjectId $sp.ObjectId
要检查一切正常,让我们回到了 公司管理员角色的所有成员:
Get-MsolRoleMember -RoleObjectId $role.ObjectId
你应该看到在列表中的应用程序,其中
RoleMemberType
是ServicePrincipal
和DisplayName
是您的 应用程序的名称。现在,您的应用程序应该能够执行公司管理员可以执行的所有图形API调用 ,所有这些都不需要用户登录, 使用客户机凭证流程。
让我知道这是否有帮助!
尽管如此,公司管理员本质上是AAD中的最高角色,允许应用程序执行任何想要的操作。您应该可以使用新的AAD cmdlet执行此操作,无需使用旧的。 – juunas
我认为这会起作用,但似乎是我无法保持公开会议。我运行connect-azureAD命令,但然后关闭会话。我会更新,当我可以想到这一点,但这看起来很有希望。 –
尝试使用旧的“MSOL”cmdlet。我发现他们更加一致。 –