我的客户端有AzureAD高级版,所以我们可以将组分配给角色
我们可以用脚本创建新组(在其本地AD中),向这些组添加用户,并将组同步到AAD
我们可以用脚本操作manifest文件
但是我还没有弄明白的是怎么做"Assign Group to App role"自动。必须有人进入Azure门户>目录在应用程序比;我们的app>用户和组>找到分配>分配比;找到匹配的角色…(冲洗并重复)。
该应用程序本质上是sharepoint(外部到Azure -我们只是联合本地AD到AAD的A&A到应用程序),并且组匹配限制访问各种库的角色。不幸的是,我的客户的商业模式非常多样化,这意味着我们有很多组要映射到很多角色。
PowerShell是我们选择的脚本管理语言。
我在Get-AzureAdGroup -SearchString "groupname"
上取得了一点进展,这给了我objectId
。我可以将其管道到Get-AzureAdGroupAppRoleAssignment
,这给了我id
,它与清单文件中的GUID相匹配。所以这些都联系在一起,除了实际分配组的角色。
所以,接下来我开始看基于这个博客的GraphAPI。(这篇博客是关于在没有AAD Premium的情况下将用户批量添加到单个特定角色)。
我已经成功地获得了GET https://graph.windows.net/[tenant].onmicrosoft.com/servicePrincipals/[app id]/appRoleAssignments?api-version=1.6
的少量成功,但是我的一些测试组,即使它们出现在分配的Azure门户中,也不会出现在对上述REST查询的响应中。有些会,当我通过门户取消分配时,它们也会从响应中删除。缺乏一致性使我对我的查询没有信心。
-
是否有本地powershell cmdlet来执行AppRoleAssignments?(这将是我的首选GraphAPI)。
-
为什么GraphAPI的结果不一致?
提前感谢您的指点
我正在调查*-AzureAd*
cmdlet(来自AzureADPreview
模块),但微软文档有点轻-它只是一个预览,但我认为他们可以有更好的文档:
输入<<p> 输出/em>
输入类型是可以通过管道传输到cmdlet的对象的类型。
输出类型是cmdlet发出的对象的类型。
这些cmdlet 似乎封装了GraphAPI REST调用。
更新2
AzureADPreview
cmdlet是正确的解决方案。
Connect-AzureAD -TenantId xxxxx-xxxx-xxxx-etc
$app = Get-AzureADServicePrincipal -SearchString "display name of app"
foreach ($AD_group_name in $list_of_names_to_map) {
$AADGroup = Get-AzureADGroup -SearchString $AD_group_name
$AppRole = $App.AppRoles | ?{$_.value -like $AADGroup.DisplayName}
$NewAssignmentParams = @{
'id' = $AppRole.Id;
'objectid' = $AADGroup.ObjectId;
'PrincipalId' = $AADGroup.ObjectId;
'ResourceId' = $App.ObjectId;
}
New-AzureADGroupAppRoleAssignment @NewAssignmentParams
}
我在更新2中描述的模块和cmdlet是正确的解决方案。
$NewAssignmentParams = @{
'id' = $AppRole.Id;
'objectid' = $AADGroup.ObjectId;
'PrincipalId' = $AADGroup.ObjectId;
'ResourceId' = $App.ObjectId;
}
New-AzureADGroupAppRoleAssignment @NewAssignmentParams
, id
可以从应用程序的AppRoles
属性或manifest文件中获得objectId
,principalId
为映射给角色
的AD组的objectId
属性ResourceId
是应用程序的objectId
属性
Get-AzADGroup -SearchString "Your azure ad or on prem ad group"
这将生成一些信息。复制Id,然后运行:
New-AzRoleAssignment -ObjectId 8baabe9f-245e-456b-9bd8-b8c09002df52 -RoleDefinitionName Contributor -ResourceGroupName "Your RG Name"