如何使用powershell将AD组分配给Azure中的应用程序角色



我的客户端有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模块),但微软文档有点轻-它只是一个预览,但我认为他们可以有更好的文档:

输入


输入类型是可以通过管道传输到cmdlet的对象的类型。

<<p> 输出/em>
输出类型是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属性

使用新的AZ模块:
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"

相关内容

  • 没有找到相关文章

最新更新