使用图谱API

时间:2017-10-13 12:44:33

标签: azure-active-directory azure-ad-graph-api

我正在尝试使用Graph Api删除Azure AD上的用户,但每次我尝试时都遇到错误说

  

没有足够的权限来完成操作。

在对found进行一些研究之后,我们必须将应用程序添加到Azure上的“公司管理员”角色,以便删除用户工作。 当我尝试添加角色时,我会遇到错误。

enter image description here

  

Add-MsolRoleMember:此角色不存在。检查名称,然后重试。   在行:1个字符:1   + Add-MsolRoleMember -RoleName“公司管理员”-RoleMemberType ServicePrin ...   + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       + CategoryInfo:OperationStopped:(:) [Add-MsolRoleMember],MicrosoftOnlineException       + FullyQualifiedErrorId:Microsoft.Online.Administration.Automation.RoleNotFoundException,Microsoft.Online.Admini      stration.Automation.AddRoleMember

2 个答案:

答案 0 :(得分:0)

我相信您应该可以使用RoleObjectId中的Add-MsolRoleMember参数轻松解决此问题。

我在blog post here中使用MSOL PowerShell模块完全覆盖了如何执行此操作,并使用几个步骤首先获取Company Administrator角色的对象ID,然后将其分配给服务负责人。

  
    

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

         

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

  
     

要进行更改,您需要安装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是应用程序的名称。

     

现在您的应用程序应该能够执行任何Graph API调用   公司管理员可以做的,所有这些都没有用户登录,   使用客户端凭据流程。

让我知道这是否有效!

答案 1 :(得分:0)

Shawn Tabrize的解决方案之外。我们可以获取令牌,该令牌包含调用Graph API的相应权限。例如,如果您要求使用Microsoft Graph REST,请Directory.AccessAsUser.All(请参阅enter image description here)。在这种情况下,您需要使用该租户的管理员来获取此访问令牌。

要检查令牌是否包含正确的权限,我们可以从here解码它。