所以我试图建立在Azure AD能,除其他事项外删除用户的应用程序。
我有注册的应用程序,并使用客户端ID和秘密获得访问令牌。
我能够给应用程序的权限才能创建用户和工作正常,但是当我去删除在图形API,我收到了403组足够的权限来完成操作。
我在图形API其余尝试此。那我试图删除的用户是通过REST调用做出很好。用户是相同的租用户的应用程序,所以我不试图删除多个租户的用户。
看来我需要做的是给应用程序无论是全球管理员或公司管理员权限,但我纺的地点和或如何做到这一点的轮子。
任何帮助,将不胜感激。
看看我的回答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调用,该公司管理员可以做,都没有一个用户登录的,使用客户端凭证流。
让我知道如果这有助于!
更新:
答案上面已经更新为使用Azure Active Directory V2 PowerShell
如果您尚未安装的
AzureAD
模块,你需要安装它。见Azure Active Directory PowerShell Module Version for Graph for Azure AD administrative tasks有关模块或只需运行的详细信息:
Install-Module AzureAD
一旦你安装的模块,以验证您的管理员帐户租客:
Connect-AzureAD
然后,我们需要得到我们想要提升服务主体,并为您的租户公司管理员角色。
$sp = Get-AzureRmADServicePrincipal | Where DisplayName -eq '<service-principal-name>'
按名称搜索目录角色
$role = Get-AzureADDirectoryRole | Where DisplayName -eq 'Company Administrator'
现在,我们可以使用
Add-AzureADDirectoryRoleMember
命令这个角色添加到服务主体。
Add-AzureADDirectoryRoleMember -ObjectId $role.ObjectId -RefObjectId $sp.Id
要检查一切正常,让我们回到公司管理员角色的所有成员:
Get-AzureADDirectoryRoleMember -ObjectId $role.ObjectId
你应该看到在列表,其中显示名称是应用程序的名称,您的应用程序。
现在,您的应用程序应该能够执行任何图形API调用,该公司管理员可以做,都没有一个用户登录的,使用客户端凭证流。