如何从外部应用程序管理Azure应用程序角色

6ioyuze2  于 2023-03-03  发布在  其他
关注(0)|答案(1)|浏览(170)

我正在构建一个使用基于角色的访问权限的应用程序,并已在Azure应用程序注册中创建了自定义应用程序角色,还为一些用户分配了企业应用程序中的角色。我的问题是,我们是否可以通过应用程序而不是使用Azure来删除这些自定义应用程序角色并将其分配给用户?
我试过使用Microsoft Graph API来解决这个问题。在前端(React)我调用了Graph API来实现这一点,并且运行良好。但它需要启用“AppRoleAssignment.ReadWrite.All”权限,这对于我正在执行的任务来说似乎是很高的级别,因为它可以分配任何角色(自定义或AAD角色),应用程序,即使只有管理员角色执行此任务,我也不放心将此作用域提供给最终用户。是否有更好的方法来实现此操作。也有一种方法来分配其中一个自定义角色作为默认的新用户?。感谢帮助!

nnsrf1az

nnsrf1az1#

我尝试在我的环境中重现相同的操作,以便使用Powershell将应用程序角色分配给用户

您可以按照以下步骤获取用户对象ID和应用程序对象ID
用户对象ID:

转到Azure门户〉Azure Active Directory〉用户〉选择用户

应用程序对象ID:

转到Azure门户〉Azure Active Directory〉企业应用程序〉选择你的应用程序

Powershell脚本:

Connect-AzureAD
$user = Get-AzureADUser -ObjectId "userobjectID"
$servicePrincipal = Get-AzureADServicePrincipal -ObjectId "AppobjectID"
$role = $app.AppRoles | Where-Object {$_.DisplayName -eq "Reader"}
#Check Approle ID
$role.Id
New-AzureADUserAppRoleAssignment -ObjectId "userobjectID" -PrincipalId $user.ObjectId -ResourceId $servicePrincipal.ObjectId -Id "ApproleID"
 Remove-AzureADUserAppRoleAssignment -ObjectId "userobjectId" -AppRoleAssignmentId "ApprolID"

答复:

运行上述代码后,应用程序角色将添加到应用程序中,如下所示。

另外,是否有方法将其中一个自定义角色作为默认角色分配给新用户?
已创建动态组,用于在新用户加入时向用户分配应用程序角色。

转到Azure门户〉Azure Active Directory〉组〉新建组。

创建组后,将应用程序角色分配给用户,如下所示。

转到Azure门户〉Azure Active Directory〉企业应用程序〉所有应用程序〉选择你的应用程序

参考:New-AzureADUserAppRoleAssignmentRemove-AzureADUserAppRoleAssignment

相关问题