具有全局管理员权限的Azure AD应用程序

nem*_*cer 1 azure azure-active-directory azure-ad-graph-api azure-ad-b2c

因此,我正在尝试在azure AD上设置一个可以删除用户的应用程序。

我已经注册了该应用程序,并使用客户端ID和安全证书来获取访问令牌。

我能够授予应用程序创建用户的权限,并且工作正常,但是当我删除图形API时,我获得403权限不足,无法完成操作。

我正在通过图其余API尝试此操作。我尝试删除的用户也是通过rest调用创建的。用户与应用程序位于同一租户中,因此我不尝试从多个租户中删除用户。

看来我需要做的是给予应用程序“全局管理员”或“公司管理员”权限,但是我正在研究在何处以及如何执行此操作。

任何帮助,将不胜感激。

Sha*_*izi 5

这里看看我的答案。

您可以通过将应用程序的服务主体添加到Company Administrator目录角色中来提高该应用程序在租户中的访问级别。这将为应用程序提供与公司管理员相同的权限,后者可以执行任何操作。对于任何类型的目录角色,您都可以按照这些相同的说明进行操作,具体取决于要授予此应用程序的访问级别。

请注意,这只会影响您的应用在租户中的访问权限。

另外,您必须已经是租户的公司管理员才能遵循这些说明。

为了进行更改,您将需要安装Azure Active Directory PowerShell模块

安装模块后,请使用管理员帐户向租户进行身份验证:

Connect-MSOLService
Run Code Online (Sandbox Code Playgroud)

然后,我们需要获取我们要提升的服务主体的对象ID,以及租户的公司管理员角色。

通过应用程序ID GUID搜索服务主体:

$sp = Get-MsolServicePrincipal -AppPrincipalId <App ID GUID>
Run Code Online (Sandbox Code Playgroud)

按名称搜索目录角色

$role = Get-MsolRole -RoleName "Company Administrator"
Run Code Online (Sandbox Code Playgroud)

现在,我们可以使用Add-MsolRoleMember命令将此角色添加到服务主体。

Add-MsolRoleMember -RoleObjectId $role.ObjectId -RoleMemberType ServicePrincipal -RoleMemberObjectId $sp.ObjectId
Run Code Online (Sandbox Code Playgroud)

要检查一切是否正常,请找回公司管理员角色的所有成员:

Get-MsolRoleMember -RoleObjectId $role.ObjectId
Run Code Online (Sandbox Code Playgroud)

您应该在该列表中看到您的应用程序,该位置RoleMemberTypeServicePrincipalDisplayName是您的应用程序名称。

现在,您的应用程序应该能够使用客户端凭据流执行公司管理员可以执行的所有Graph API调用,而无需用户登录。

让我知道这是否有帮助!

  • 不过请特别注意,Company Admin本质上是AAD中的最高角色,允许该应用程序执行所需的任何操作。您还应该能够使用新的AAD cmdlet来执行此操作,而无需使用旧的cmdlet。 (2认同)
  • 这与网络有关,但是一旦我离开了我们的专用网络,我便能够遵循您的命令。我使用了azureAD cmdlet的2.0版本,但是您的步骤使其正常运行。我将编辑您的回复,以为可能偶然遇到此问题的任何人提供较新的版本命令。谢谢您的帮助!! (2认同)