Compartilhar via

在权利管理中查看、添加和删除访问包的分配

在权利管理中,可以看到谁被分配到访问包、其策略、状态和标识生命周期(预览版)。 如果访问包具有适当的策略,还可以直接将标识分配给访问包。 本文介绍如何查看、添加和删除访问包的分配。

查看谁有任务分配

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

    提示

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

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

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

  4. 选择“分配”,查看活动分配的列表。

    访问包分配情况的列表

  5. 选择具体的分配,查看更多详细信息。

  6. 若要查看未正确配置所有资源角色的任务列表,请选择筛选状态,并选择“交付中”。

    在“请求”页上找到用户的对应请求,可以查看有关传递错误的更多详细信息。

  7. 若要查看过期的分配,请选择筛选状态,然后选择已过期

  8. 若要下载已筛选列表的 CSV 文件,请选择“下载”。

以编程方式查看任务

使用Microsoft Graph查看作业

您还可以使用 Microsoft Graph 检索访问包中的作业。 具有合适角色的用户,只要其应用程序具有委派 EntitlementManagement.Read.AllEntitlementManagement.ReadWrite.All 权限,即可调用 API 来 列出 accessPackageAssignments。 具有应用程序权限或EntitlementManagement.Read.All权限EntitlementManagement.ReadWrite.All的应用程序还可以使用此 API 检索所有目录的分配,并且目录中具有角色分配的应用程序可以使用此 API 检索该目录中的分配。

Microsoft Graph将返回页面中的结果,并且将继续在属性@odata.nextLink中返回下一页结果的引用,直到读取完所有的结果页面。 若要读取所有结果,必须继续使用每个响应中返回的 @odata.nextLink 属性调用Microsoft Graph,直到不再返回 @odata.nextLink 属性,如在应用中Microsoft Graph数据中所述。

当标识治理管理员可以从多个目录中检索访问包时,如果仅将用户或应用程序服务主体分配给特定于目录的委托管理角色,则请求必须提供筛选器以指示特定访问包,如:$filter=accessPackage/id eq '00001111-aaaa-2222-bbbb-3333cccc4444'

通过 PowerShell 查看任务

您还可以使用来自 Microsoft Graph PowerShell cmdlets for Identity Governance 模块版本 2.1.x 或更高版本的 Get-MgEntitlementManagementAssignment cmdlet,在 PowerShell 中检索分配到访问包的任务。 此脚本演示如何使用 Microsoft Graph PowerShell cmdlet 模块版本 2.4.0 检索特定访问包的所有分配。 此 cmdlet 将访问包 ID 作为参数包含在 Get-MgEntitlementManagementAccessPackage cmdlet 的响应中。 确保在使用 Get-MgEntitlementManagementAccessPackage cmdlet 时包含 -All 参数,以返回分配的所有页。

Connect-MgGraph -Environment China -ClientId 'YOUR_CLIENT_ID' -TenantId 'YOUR_TENANT_ID' -Scopes "EntitlementManagement.Read.All"
$accesspackage = Get-MgEntitlementManagementAccessPackage -Filter "displayName eq 'Marketing Campaign'"
if ($null -eq $accesspackage) { throw "no access package"}
$assignments = @(Get-MgEntitlementManagementAssignment -AccessPackageId $accesspackage.Id -ExpandProperty target -All -ErrorAction Stop)
$assignments | ft Id,state,{$_.Target.id},{$_.Target.displayName}

上述查询返回已过期、正在递送和已递送的任务。 如果要排除已过期或正在传递的分配,可以使用包含访问包 ID 以及分配状态的筛选器。 此脚本演示如何使用筛选器仅检索特定访问包处于 Delivered 状态的分配。 然后,该脚本将生成一个 CSV 文件 assignments.csv,其中每个任务占一行。

Connect-MgGraph -Environment China -ClientId 'YOUR_CLIENT_ID' -TenantId 'YOUR_TENANT_ID' -Scopes "EntitlementManagement.Read.All"
$accesspackage = Get-MgEntitlementManagementAccessPackage -Filter "displayName eq 'Marketing Campaign'"
if ($null -eq $accesspackage) { throw "no access package"}
$accesspackageId = $accesspackage.Id
$filter = "accessPackage/id eq '" + $accesspackageId + "' and state eq 'Delivered'"
$assignments = @(Get-MgEntitlementManagementAssignment -Filter $filter -ExpandProperty target -All -ErrorAction Stop)
$sp = $assignments | select-object -Property Id,{$_.Target.id},{$_.Target.ObjectId},{$_.Target.DisplayName},{$_.Target.PrincipalName}
$sp | Export-Csv -Encoding UTF8 -NoTypeInformation -Path ".\assignments.csv"

直接分配身份

在某些情况下,你可能希望将特定标识直接分配给访问包,以便标识不必完成请求访问包的过程。 若要直接分配标识,访问包必须具有允许管理员直接分配的策略。

注意

将标识分配到访问包时,管理员需要根据现有策略要求验证标识是否符合该访问包的条件。 否则,身份无法成功分配给访问包。

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

    提示

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

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

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

  4. 在左侧菜单中,选择“任务”。

  5. 选择“新建分配”以打开“将用户添加到访问包”界面。

    将标识添加到访问包的屏幕截图。

  6. 在“选择策略”列表中,选择将会控制和跟踪用户的未来请求和生命周期的策略。 如果希望所选用户具有不同的策略设置,可选择“创建新策略”来添加新策略。

  7. 选择策略后,你将能够在所选策略下添加用户以选择要将此访问包分配到的用户。

    注意

    如果选择有问题的策略,则一次只能分配一个用户。 如果目录中已存在外部用户,请使用 “我的目录”选项中的“标识 ”并选择现有用户。 当目录中不存在用户时,请使用 “外部用户 ”选项。

  8. 设置所选用户的分配开始与结束日期和时间。 如果未提供结束日期,则使用该策略的生命周期设置。

  9. 可选地为您的直接分配提供理由,以便进行记录保存。

  10. 如果所选策略包含其他请求者信息,请选择“查看问题”以代表用户回答这些问题,然后选择“保存”。

    作业 - 单击“查看问题”

    工作分配 - 问题窗格

  11. 选择 “添加” 以将所选标识直接分配给访问包。

    片刻之后,选择“ 刷新 ”以查看“分配”列表中的标识。

注意

如果策略要求审批,则访问包分配管理器将无法再绕过审批设置。 这意味着,在未获得指定审批者的批准情况下,不能直接分配身份给包。 如果需要绕过审批,我们建议在不需要审批的访问包上创建第二个策略,该策略仅限于需要访问权限的标识。

直接分配任何身份(预览版)

权利管理还允许将外部标识直接分配给访问包,以便更轻松地与合作伙伴协作。 为此,访问包必须具有一个策略,该策略允许尚未在您的目录中的标识请求访问。

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

    提示

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

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

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

  4. 在左侧菜单中,选择“任务”。

  5. 选择新任务以打开将访问包分配给身份

  6. 选择策略列表中,选择一个政策,该政策应设定为适用于不在您目录中的用户

  7. 选择“外部用户”(预览版)。 你可以指定要分配到此访问包的用户。 任务分配 - 将任何用户添加到权限包

  8. 输入标识 名称 (可选)和标识 电子邮件地址 (必需)。

    注意

    • 要添加的身份必须位于策略范围内。 例如,如果将策略设置为特定连接的组织,则标识电子邮件地址必须来自所选组织的域名。 如果您尝试添加的标识其电子邮件地址为 jen@foo.com,但所选组织的域名是 bar.com,那么您将无法将该标识添加到访问包中。
    • 同样,如果将策略设置为包含 所有配置的已连接组织,则标识电子邮件地址必须来自其中一个配置的已连接组织。 否则,不会将身份添加到访问包。
    • 如果要将任何标识添加到访问包,则需要确保在配置策略时选择所有用户 (所有已连接组织 + 任何外部用户 )。
  9. 设置所选身份的分配开始和结束的日期和时间。 如果未提供结束日期,则使用该策略的生命周期设置。

  10. 选择 “添加” 以将所选标识直接分配给访问包。

  11. 片刻之后,选择“ 刷新 ”以查看“分配”列表中的标识。

以编程方式直接分配标识

使用 Microsoft Graph 向访问包分配标识

还可以使用Microsoft Graph将标识直接分配给访问包。 具有委派 EntitlementManagement.ReadWrite.All 权限的应用程序、具有 EntitlementManagement.ReadWrite.All 应用程序权限的应用程序或目录角色中的应用程序的标识可以调用 API 来创建 accessPackageAssignmentRequest。 在此请求中,requestType 属性的值应为 adminAddassignment 属性是一个结构,包含所分配用户的 targetId

使用 PowerShell 将用户分配到访问包

可以使用 Microsoft Graph PowerShell cmdlets for Identity Governance 模块 2.1.x 或更高版本中的 New-MgEntitlementManagementAssignmentRequest cmdlet,将用户分配到访问包。 此脚本演示了如何使用 Microsoft Graph PowerShell cmdlet 模块版本 2.4.0。

Connect-MgGraph -Environment China -ClientId 'YOUR_CLIENT_ID' -TenantId 'YOUR_TENANT_ID' -Scopes "EntitlementManagement.ReadWrite.All"
$accesspackage = Get-MgEntitlementManagementAccessPackage -Filter "displayname eq 'Marketing Campaign'" -ExpandProperty "assignmentpolicies"
if ($null -eq $accesspackage) { throw "no access package"}
$policy = $accesspackage.AssignmentPolicies[0]
$userid = "00aa00aa-bb11-cc22-dd33-44ee44ee44ee"
$params = @{
   requestType = "adminAdd"
   assignment = @{
      targetId = $userid
      assignmentPolicyId = $policy.Id
      accessPackageId = $accesspackage.Id
   }
}
New-MgEntitlementManagementAssignmentRequest -BodyParameter $params

你还可以为目录中的现有用户集合配置任务分配,包括那些被分配给应用程序的用户或被列在文本文件中的用户。

您还可以使用 Microsoft Graph PowerShell cmdlets for Identity Governance 模块版本 2.4.0 或更高版本中的 New-MgBetaEntitlementManagementAccessPackageAssignment cmdlet,通过 PowerShell 将目录中的多个用户分配给访问包。 该 cmdlet 接受参数

  • 访问包 ID,该 ID 包含在来自 Get-MgEntitlementManagementAccessPackage cmdlet 的响应中,
  • 访问包分配策略的 ID,包括在来自 assignmentpolicies cmdlet 的响应中 Get-MgEntitlementManagementAccessPackage 字段中的策略。
  • 目标用户的对象 ID,可以是字符串数组,或是从 Get-MgGroupMember cmdlet 返回的用户成员列表。

例如,如果要确保当前为组成员的所有用户也具有访问包的分配,可以使用此 cmdlet 为当前没有分配的用户创建请求。 此 cmdlet 仅会创建分配,不会移除不再是组成员的用户的分配。 如果你希望通过分配访问包来跟踪组的成员身份,并在一段时间内增加和删除分配,请改为使用自动分配策略

Connect-MgGraph -Environment China -ClientId 'YOUR_CLIENT_ID' -TenantId 'YOUR_TENANT_ID' -Scopes "EntitlementManagement.ReadWrite.All,Directory.Read.All"
$members = @(Get-MgGroupMember -GroupId "a34abd69-6bf8-4abd-ab6b-78218b77dc15" -All)

$accesspackage = Get-MgEntitlementManagementAccessPackage -Filter "displayname eq 'Marketing Campaign'" -ExpandProperty "assignmentPolicies"
if ($null -eq $accesspackage) { throw "no access package"}
$policy = $accesspackage.AssignmentPolicies[0]
$req = New-MgBetaEntitlementManagementAccessPackageAssignment -AccessPackageId $accesspackage.Id -AssignmentPolicyId $policy.Id -RequiredGroupMember $members

如果想为目录中尚未存在的用户添加分配,可以使用来自 Microsoft Graph PowerShell Identity Governance cmdlets 的 New-MgBetaEntitlementManagementAccessPackageAssignmentRequest cmdlet,Beta 模块版本 2.1.x 或更高版本的 Beta 模块。 此脚本演示了如何使用 Microsoft Graph beta 配置文件和 Microsoft Graph PowerShell cmdlet 模块版本 2.4.0。 该 cmdlet 接受参数

  • 访问包 ID,该 ID 包含在来自 Get-MgEntitlementManagementAccessPackage cmdlet 的响应中,
  • 访问包分配策略 ID 包含在策略中,该策略位于 assignmentpolicies cmdlet 的响应的 Get-MgEntitlementManagementAccessPackage 字段中,
  • 目标用户的电子邮件地址。
Connect-MgGraph -Environment China -ClientId 'YOUR_CLIENT_ID' -TenantId 'YOUR_TENANT_ID' -Scopes "EntitlementManagement.ReadWrite.All"
$accesspackage = Get-MgEntitlementManagementAccessPackage -Filter "displayname eq 'Marketing Campaign'" -ExpandProperty "assignmentPolicies"
if ($null -eq $accesspackage) { throw "no access package"}
$policy = $accesspackage.AssignmentPolicies[0]
$req = New-MgBetaEntitlementManagementAccessPackageAssignmentRequest -AccessPackageId $accesspackage.Id -AssignmentPolicyId $policy.Id -TargetEmail "sample@example.com"

将访问分配配置为生命周期工作流的一部分

在Microsoft Entra生命周期工作流功能中,可以将 Request 用户访问包分配任务添加到载入工作流。 该任务可以指定用户应具有的访问包。 在为用户运行工作流时,将自动创建访问包分配请求。

  1. 至少使用 Identity Governance AdministratorLifecycle Workflows Administrator 角色登录到 Microsoft Entra 管理中心

  2. 浏览到 ID 治理>生命周期工作流>工作流

  3. 选择员工入职或调动工作流。

  4. 选择“任务”,然后选择“添加任务”

  5. 选择“请求用户访问包分配”,然后选择“添加”

  6. 选择新添加的任务。

  7. 选择“选择访问包”,然后选择应将新用户或移动用户分配到的访问包。

  8. 选择“选择策略”,然后选择该访问包中的访问包分配策略

  9. 选择“保存”

删除任务

可删除用户或管理员之前请求的分配。

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

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

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

  4. 在左侧菜单中,选择“任务”。

  5. 选中你想从访问包中删除其分配的用户旁边的复选框。

  6. 选择左窗格顶部附近的“删除”按钮。

    分配 - 从访问包中删除用户

    会显示通知,告知该分配已被删除。

以编程方式删除任务分配

使用Microsoft Graph删除工作分配

还可以使用 Microsoft Graph 删除用户对访问包的分配。 在具有委派 EntitlementManagement.ReadWrite.All 权限的角色、或具有 EntitlementManagement.ReadWrite.All 应用程序权限的应用程序、或位于目录角色的应用程序中,有相应权限的用户可以调用 API 来创建 accessPackageAssignmentRequest。 在此请求中,requestType 属性的值应为 adminRemoveassignment 属性是一个结构,包含确定 id 是否被删除的 accessPackageAssignment 属性。

使用 PowerShell 删除分配

可以使用 PowerShell 中的 New-MgEntitlementManagementAssignmentRequest cmdlet 从 Microsoft Graph 标识治理 PowerShell cmdlets 模块版本 2.1.x 或更高版本中删除用户的分配。 此脚本演示了如何使用 Microsoft Graph PowerShell cmdlet 模块版本 2.4.0。

Connect-MgGraph -Environment China -ClientId 'YOUR_CLIENT_ID' -TenantId 'YOUR_TENANT_ID' -Scopes "EntitlementManagement.ReadWrite.All"
$accessPackageId = "9f573551-f8e2-48f4-bf48-06efbb37c7b8"
$userId = "11bb11bb-cc22-dd33-ee44-55ff55ff55ff"
$filter = "accessPackage/Id eq '" + $accessPackageId + "' and state eq 'Delivered' and target/objectId eq '" + $userId + "'"
$assignment = Get-MgEntitlementManagementAssignment -Filter $filter -ExpandProperty target -all -ErrorAction stop
if ($assignment -ne $null) {
   $params = @{
      requestType = "adminRemove"
      assignment = @{ id = $assignment.id }
   }
   New-MgEntitlementManagementAssignmentRequest -BodyParameter $params
}

在生命周期工作流中配置移除分配

在 Microsoft Entra 生命周期工作流功能中,可以将 删除用户的访问包分配 任务添加到离职处理流程中。 该任务可以指定用户可能分配到的访问包。 在为用户运行工作流时,其访问包分配将被自动移除。

  1. 使用具有以下角色的帐户登录到 Microsoft Entra 管理中心Identity Governance AdministratorLifecycle 工作流管理员

  2. 浏览到 ID 治理>生命周期工作流>工作流

  3. 选择员工离职工作流。

  4. 选择“任务”,然后选择“添加任务”

  5. 选择“移除用户的访问包分配”,然后选择“添加”。

  6. 选择新添加的任务。

  7. 选择“选择访问包”,然后选择应将要离职的用户从中移除的一个或多个访问包

  8. 选择“保存”

后续步骤