在权利管理中针对访问包配置职责分离检查

在权利管理中,可以配置多个策略,并为需要通过访问包访问的每个用户社区提供不同的设置。 例如,员工可能只需要经理批准即可访问某些应用程序,但来自其他组织的来宾可能同时需要发起人和资源团队部门经理的批准才能访问。 在针对目录中已有用户的策略中,可以指定可为其请求访问的特定用户组。 但是,你可能需要避免用户获得过多的访问权限。 为了满足此要求,需要根据请求者已经拥有的访问权限进一步限制谁可以请求访问权限。

通过对访问包的职责设置的分离,可以配置属于安全组成员或已分配一个访问包的用户无法请求另一个访问包。

有关尝试请求不兼容访问权限的 myaccess 体验

有关职责分离检查的方案

例如,你有一个访问包市场营销活动,你的组织和其他组织的人员都可以请求访问该包,以便在活动进行时与你组织的营销部门合作。 由于营销部门的员工已有权访问该营销活动材料,因此你不希望他们请求访问包的访问权限。 或者,假设你已有一个动态成员身份安全组“营销部门员工”,其中包括了所有营销员工。 你可以指明该访问包与该动态成员资格组不兼容。 然后,当营销部门的员工在查找要请求的访问包时,他们无法请求访问“营销活动”访问包

类似地,假设你的应用程序有两个应用角色(“西部销售”和“东部销售”,表示销售区域),你想要确保某个用户在某个时间只属于一个销售区域。 如果你有两个访问包:访问包“西部管辖区”提供“西部销售”角色,访问包“东部管辖区”提供“东部销售”角色,则可进行以下配置:

  • 西部管辖区访问包配置为与东部管辖区访问包不兼容,并将
  • 东部管辖区访问包配置为与西部管辖区访问包不兼容 。

如果你一直在使用 Microsoft 标识管理器或其他本地标识管理系统来自动访问本地应用程序,则也可以将这些系统与权利管理进行集成。 如果你通过权限管理来控制对 Microsoft Entra 集成应用的访问,并希望防止用户获得不兼容的访问权限,则可以配置一个访问包与安全组不兼容。 这可能是本地标识管理系统通过 Microsoft Entra Connect 发送到 Microsoft Entra ID 的 AD 安全组。 此检查可确保用户无法请求访问包,前提是该访问包提供的访问权限与用户在本地应用中的访问权限不兼容。

先决条件

若要使用权利管理并将用户分配到访问包,必须具有以下许可证之一:

  • Microsoft Entra ID P2 或 Microsoft Entra ID 治理
  • 企业移动性 + 安全性 (EMS) E5 许可证

将一个访问包或组成员身份配置为不兼容,因此无法请求访问另一个访问包

按照以下步骤更改现有访问包的不兼容组或其他访问包的列表:

  1. 以至少是标识治理管理员的身份登录Microsoft Entra 管理中心

    提示

    可以完成此任务的其他最低特权角色包括目录所有者和访问包管理者。

  2. 浏览到 ID 治理>权利管理>访问包

  3. 在“访问包”页上,打开用户将请求的访问包。

  4. 在左侧菜单中,选择职责分离

  5. “不兼容的访问包”选项卡上的列表属于其他访问包。 如果用户已在该列表中分配了访问包,则不允许他们请求此访问包。

  6. 如果你要阻止已分配有另一个访问包的用户请求此访问包,请选择添加访问包,然后选择为该用户分配的访问包。 然后,该访问包将添加到“不兼容的访问包”选项卡上的访问包列表中。

    配置不兼容的访问包

  7. 如果想要阻止具有现有组成员身份的用户请求此访问包,请选择 “添加组 ”,然后选择该用户已加入的已启用安全性的组。 之后,该组将添加到“不兼容的组”选项卡上的组列表中。

  8. 如果希望分配给此访问包的用户无法请求该访问包,因为每个不兼容的访问包关系都是单向的,则更改为该访问包,并将此访问包添加为不兼容。 例如,你希望具有西部地区访问包的用户无法请求东部地区访问包,并且具有东部地区访问包的用户无法请求西部地区访问包。 如果首先在西部地区访问包上,将东部地区访问包添加为不兼容,接着更改为东部地区访问包,并将西部地区访问包添加为不兼容。

以编程方式通过 Graph 配置不兼容的访问包

可以使用 Microsoft Graph 配置与访问包不兼容的组和其他访问包。 具有适当角色的用户可以使用具有委派EntitlementManagement.ReadWrite.All权限的应用程序,或具有EntitlementManagement.ReadWrite.All应用程序权限的应用程序,调用API来添加、删除和列出一个访问包的不兼容组和访问包

通过 Microsoft PowerShell 配置不兼容的访问包

您还可以使用 PowerShell 中的 cmdlet 来配置与访问包不兼容的组和其他访问包,这些 cmdlet 由 Microsoft Graph PowerShell 标识治理模块(版本 1.16.0 或更高)提供。

以下脚本演示如何使用 Graph 的 v1.0 配置文件来创建关系,以指示另一个访问包不兼容。

Connect-MgGraph -Scopes "EntitlementManagement.ReadWrite.All"

$apid = "00001111-aaaa-2222-bbbb-3333cccc4444"
$otherapid = "11112222-bbbb-3333-cccc-4444dddd5555"

$params = @{
   "@odata.id" = "https://graph.microsoft.com/v1.0/identityGovernance/entitlementManagement/accessPackages/" + $otherapid
}
New-MgEntitlementManagementAccessPackageIncompatibleAccessPackageByRef -AccessPackageId $apid -BodyParameter $params

查看已配置为与此访问包不兼容的其他访问包

遵循以下步骤,查看已指示与现有访问包不兼容的其他访问包列表:

  1. 以至少是标识治理管理员的身份登录Microsoft Entra 管理中心

    提示

    可以完成此任务的其他最低特权角色包括目录所有者和访问包管理者。

  2. 浏览到 ID 治理>权利管理>访问包

  3. 在“访问包”页上打开访问包。

  4. 在左侧菜单中,选择职责分离

  5. 选择“不兼容”

标识已具有不兼容的对另一个访问包的访问权限的用户

如果在已分配用户的访问包上配置了不兼容的访问权限设置,则可以下载具有该附加访问权限的用户的列表。 同时还分配到了不兼容访问包的用户将无法重新请求访问权限。

可按照以下步骤查看分配有两个访问包的用户的列表。

  1. 以至少是标识治理管理员的身份登录Microsoft Entra 管理中心

    提示

    可以完成此任务的其他最低特权角色包括目录所有者和访问包管理者。

  2. 浏览到 ID 治理>权利管理>访问包

  3. 在“访问包”页上,打开你已在其中将另一个访问包配置为不兼容的访问包。

  4. 在左侧菜单中,选择职责分离

  5. 在表中,如果第二个访问包的“附加访问权限”列中包含非零值,则表示一个或多个用户具有分配。

    标记为与现有访问分配不兼容的访问包的屏幕截图。

  6. 选择该计数以查看不兼容分配的列表。

  7. 如果需要,可以选择下载按钮将该分配列表保存为 CSV 文件。

识别具有不兼容的对另一个访问包的访问权限的用户

如果在已为其分配了用户的访问包上配置不兼容的访问设置,那么还分配了不兼容访问包或组的其他用户将无法重新请求访问。

可按照以下步骤查看分配有两个访问包的用户的列表。

  1. 以至少是标识治理管理员的身份登录Microsoft Entra 管理中心

    提示

    可以完成此任务的其他最低特权角色包括目录所有者和访问包管理者。

  2. 浏览到 ID 治理>权利管理>访问包

  3. 打开你将在其中配置不兼容分配的访问包。

  4. 在左侧菜单中,选择分配

  5. 状态字段中,确保选择了已交付状态。

  6. 选择下载按钮,并将生成的 CSV 文件保存为包含分配列表的第一个文件。

  7. 在导航栏中,选择 “ID 治理”。

  8. 在左侧菜单中,选择访问包,然后打开计划指示为不兼容的访问包。

  9. 在左侧菜单中,选择分配

  10. 状态字段中,确保选择了已交付状态。

  11. 选择下载按钮,并将生成的 CSV 文件保存为包含分配列表的第二个文件。

  12. 使用 Excel 等电子表格程序打开这两个文件。

  13. 这两个文件中都列出的用户具有已存在的不兼容分配。

以编程方式识别已具有不兼容访问权限的用户

可以使用 Microsoft Graph 检索访问包的分配,这些分配的范围仅限于那些也拥有另一个访问包分配的用户。 具有委派 EntitlementManagement.Read.AllEntitlementManagement.ReadWrite.All 权限的应用程序的管理角色中的用户可以调用 API 来 列出其他访问权限

使用 PowerShell 识别已具有不兼容访问权限的用户

还可使用用于标识治理的 Microsoft Graph PowerShell cmdlet 模块 2.1.0 或更高版本中的 Get-MgEntitlementManagementAssignment cmdlet 查询具有访问包分配的用户。

例如,如果有两个访问包,一个 ID 为 00aa00aa-bb11-cc22-dd33-44ee44ee44ee,另一个 ID 为 11bb11bb-cc22-dd33-ee44-55ff55ff55ff,则可以检索有第一个访问包分配的用户,然后将其与有第二个访问包分配的用户进行比较。 还可使用类似于以下的 PowerShell 脚本来报告同时有两个访问包分配的用户:

$c = Connect-MgGraph -Scopes "EntitlementManagement.Read.All"

$ap_w_id = "00aa00aa-bb11-cc22-dd33-44ee44ee44ee"
$ap_e_id = "11bb11bb-cc22-dd33-ee44-55ff55ff55ff"
$apa_w_filter = "accessPackage/id eq '" + $ap_w_id + "' and state eq 'Delivered'"
$apa_e_filter = "accessPackage/id eq '" + $ap_e_id + "' and state eq 'Delivered'"
$apa_w = @(Get-MgEntitlementManagementAssignment -Filter $apa_w_filter -ExpandProperty target -All)
$apa_e = @(Get-MgEntitlementManagementAssignment -Filter $apa_e_filter -ExpandProperty target -All)
$htt = @{}; foreach ($e in $apa_e) { if ($null -ne $e.Target -and $null -ne $e.Target.Id) {$htt[$e.Target.Id] = $e} }
foreach ($w in $apa_w) { if ($null -ne $w.Target -and $null -ne $w.Target.Id -and $htt.ContainsKey($w.Target.Id)) { write-output $w.Target.Email } }

为替代方案配置多个访问包

如果访问包已配置为不兼容,那么分配给该不兼容访问包的用户无法请求该访问包,管理员也不能进行新的不兼容分配。

例如,如果“生产环境”访问包已将“开发环境”包标记为不兼容,并且用户有“开发环境”访问包的分配,那么“生产环境”的访问包管理者无法为该用户创建“生产环境”的分配。 为了能够实施该分配,需要首先删除用户对开发环境访问包的现有分配。

如果存在可能需要覆盖“职责分离”规则的特殊情况,通过配置额外的访问包来捕获具有重叠访问权限的用户,可以让审批者、审阅者和审核者清楚地了解这些分配的特殊性质。

例如,如果存在一种情况,其中某些用户需要同时访问生产和部署环境,则可以创建一个新的访问包“生产和开发环境”。 该访问包可以将生产环境访问包的一些资源角色和开发环境访问包的一些资源角色作为其资源角色。

如果不兼容访问的动机是一个资源的角色有问题,那么可以从组合访问包中省略该资源,并明确要求通过管理员将用户分配给资源的角色。 如果这是第三方应用程序或你自己的应用程序,则可以通过使用下一部分所述的 应用程序角色分配活动 工作簿监视这些角色分配来确保监督。

根据治理流程,该组合访问包的策略可以是:

  • “直接分配”策略,用于确保只有访问包管理器会与访问包交互,也可以是
  • “用户可以请求访问”策略,这样用户就可以发送请求,这意味着可能还需要一个额外的批准环节

相较于其他访问包上的策略,此策略的生命周期设置的有效天数可能要更短,或者需要更频繁的访问评审,并进行定期监督,以确保用户不会保留超过必要的访问时间。

监视和报告访问权限分配

可以使用 Azure Monitor 工作簿来了解用户如何接收其访问权限。

  1. 配置 Microsoft Entra ID 以 将审核事件发送到 Azure Monitor

  2. 名为访问包活动的工作簿显示与特定访问包相关的每个事件。

    查看访问包事件

  3. 若要查看应用程序角色分配是否发生更改(分配不是由于访问包分配而创建),可以选择名为“应用程序角色分配活动”的工作簿。 如果选择省略权利活动,那么只显示不是由权利管理对应用程序角色所做的更改。 例如,如果全局管理员直接将用户分配给应用程序角色,会显示一行信息。

    查看应用角色分配

后续步骤