在权利管理中更改访问包的资源角色

访问包管理者随时可以更改访问包中的资源,而无需考虑如何预配用户对新资源的访问权限,或者从以前的资源中删除用户的访问权限。 本文介绍如何更改现有访问包的资源角色。

检查资源的目录

提示

本文中的步骤可能因开始使用的门户而略有不同。

如果需要向访问包添加资源,你应检查访问包的目录中是否有所需的资源。 如果你是访问包管理员,则不能将资源添加到目录,即使你拥有这些资源也是如此。 你只能使用目录中提供的资源。

必备角色:全局管理员、Identity Governance 管理员、目录所有者或访问包管理员

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

  2. 浏览到“标识治理”>“权利管理”>“访问包”。

  3. 在“访问包”页上,打开要检查的访问包以确保其目录具有必要的资源。

  4. 在左侧菜单中,选择“目录”,然后打开目录。

  5. 在左侧菜单中,选择“资源”,查看此目录中的资源列表。

    目录中的资源列表

  6. 如果资源尚未在目录中,而你是管理员或目录所有者,则可以将资源添加到目录。 可添加的资源类型包括组、已与目录集成的应用程序和 SharePoint Online 站点。 例如:

    • 组可以是云创建的 Microsoft 365 组,或者云创建的 Microsoft Entra 安全组。 无法将源自于本地 Active Directory 的组分配为资源,因为无法在 Microsoft Entra ID 中更改其所有者或成员属性。 若要授予用户对使用 AD 安全组成员身份的应用程序的访问权限,请在 Microsoft Entra ID 中创建新组,配置组写回到 AD,并启用将组写入 AD。 在 Microsoft Entra ID 中也无法修改作为通讯组源自于 Exchange Online 的组。
    • 应用程序可以是 Microsoft Entra 企业应用程序,包括服务型软件 (SaaS) 应用程序,使用不同目录或数据库的本地应用程序,以及你自己的与 Microsoft Entra ID 集成的应用程序。
    • 站点可以是 SharePoint Online 站点或 SharePoint Online 站点集合。
  7. 如果你是访问包管理员并且需要将资源添加到目录,则可以请求目录所有者添加这些资源。

确定要包含在访问包中的资源角色

资源角色是与资源关联且有资源定义的权限的集合。 如果将目录的每个资源的资源角色添加到访问包中,资源即可供用户分配。 你可以添加由组、团队、应用程序和 SharePoint 站点提供的资源角色。 当用户收到访问包的分配时,他们会被添加到访问包中的所有资源角色中。

当他们丢失访问包分配时,他们会被系统从访问包中的所有资源角色中删除。

注意

如果用户被添加到权利管理之外的资源,并且即使他们后来收到访问包分配并且其访问包分配过期时也需要保留访问权限,则不要将资源角色添加到访问包。

如果希望某些用户收到与其他用户不同的资源角色,那就需要在目录中创建多个访问包,并为每个资源角色创建单独的访问包。 还可以将访问包标记为彼此不兼容,以使用户无法请求访问会给他们过多访问权限的包。

具体而言,应用程序可以具有多个应用角色。 将某个应用程序的应用角色作为资源角色添加到访问包时,如果该应用程序有多个应用角色,那么你需要在访问包中为这些用户指定相应的角色。

注意

如果某个应用程序具有多个应用程序角色,并且该应用程序的多个角色位于一个访问包中,则用户将接收这些应用程序包含的所有角色。 但是,如果希望用户仅拥有应用程序的部分角色,则需要在目录中创建多个访问包,并对每个应用程序角色使用不同的访问包。

此外,应用程序还可以依赖安全组来表达权限。 例如,应用程序可能具有单个应用角色 User,并且检查两个组(一个 Ordinary Users 组和一个 Administrative Access 组)的成员身份。 应用程序的用户必须是这两个组之一的成员。 如果想要将该用户配置为可以请求任一权限,则在目录中放入三个资源:应用程序、组 Ordinary Users 和组 Administrative Access。 然后,在该目录中创建两个访问包,并指示每个访问包与另一个访问包彼此不兼容

  • 第一个访问包,其中包含两个资源角色:应用程序的应用角色 User 和组 Ordinary Users 的成员身份
  • 第二个访问包,其中包含两个资源角色:应用程序的应用角色 User 和组 Administrative Access 的成员身份

检查用户是否已分配到资源角色

当管理员将资源角色添加到访问包时,处于该资源角色但未分配到该访问包的用户将留在资源角色中,但不会被分配到该访问包。 例如,如果用户是组的成员,然后创建了访问包,并将该组的成员角色添加到访问包,则用户不会自动接收访问包分配。

如果希望具有资源角色成员身份的用户也分配到访问包,则可以使用 Microsoft Entra 管理中心直接将用户分配到访问包,也可以通过 Graph 或 PowerShell 批量分配。 这样,分配到访问包的用户也将接收对访问包中其他资源角色的访问权限。 但是,由于那些担任资源角色的用户在添加到访问包之前已经具有访问权限,因此当删除其访问包分配时,他们会被系统从该资源角色中删除。

添加资源角色

必备角色:全局管理员、Identity Governance 管理员、目录所有者或访问包管理员

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

  2. 浏览到“标识治理”>“权利管理”>“访问包”。

  3. 在“访问包”页上,打开要向其中添加资源角色的访问包。

  4. 在左侧菜单中,选择“资源角色”。

  5. 选择“添加资源角色”以打开“将资源角色添加到访问包”页。

    访问包 - 添加资源角色

  6. 根据是要添加组或团队的成员身份、应用程序访问权限还是 SharePoint 站点访问权限,执行以下某个资源角色部分中的步骤。

添加组或团队资源角色

为用户分配访问包后,可让权利管理自动将用户添加到组或 Microsoft Teams 中的团队中。

  • 如果某个组或团队的成员身份是作为访问包的一部分的资源角色,而某个用户已分配到该访问包,则该用户作为成员将添加到该组或团队(如果未在其中)。
  • 当用户的访问包分配过期时,将从组或团队中移除他们,除非他们当前拥有包括同一组或团队的其他访问包分配。

可以选择任意 Microsoft Entra 安全组或 Microsoft 365 组。 可以管理组的管理员角色中的用户可将任何组添加到目录;如果目录所有者是组的所有者,则他们可将任何组添加到该目录中。 选择组时,请记住以下 Microsoft Entra 约束:

  • 当用户(包括来宾)作为成员添加到组或团队时,他们可以查看该组或团队的所有其他成员。
  • Microsoft Entra ID 无法更改使用 Microsoft Entra Connect 从 Windows Server Active Directory 同步的组的成员身份,或在 Exchange Online 中作为通讯组创建的组的成员身份。 如果计划管理针对使用 AD 安全组的应用程序的访问权限,请参阅如何使用权利管理设置组写回
  • 无法通过添加或移除成员来更新动态组的成员身份,因此,因此动态组成员身份不适合用于权利管理。
  • Microsoft 365 组具有其他约束(如面向管理员的 Microsoft 365 组概述中所述),包括每个组限制为 100 个所有者、可同时访问组会话的成员数限制,以及每个成员限制为 7,000 个组。

有关详细信息,请参阅比较组Microsoft 365 组和 Microsoft Teams

  1. 在“将资源角色添加到访问包”页上,单击“组和团队”以打开“选择组”窗格。

  2. 选择要包含在访问包中的组和团队。

    访问包 - 添加资源角色 - 选择组

  3. 选择“选择” 。

    选择组或团队后,“子类型”列会列出以下子类型之一:

    子类型 描述
    安全 用于授予对资源的访问权限。
    分发 用于向一组人员发送通知。
    Microsoft 365 未启用 Teams 的 Microsoft 365 组。 用于公司内部和外部用户之间的协作。
    已启用 Teams 的 Microsoft 365 组。 用于公司内部和外部用户之间的协作。
  4. 在“角色”列表中,选择“所有者”或“成员”。

    我们通常会选择“成员”角色。 如果你选择“所有者”角色,则用户将成为该组的所有者,这样这些用户就可以添加或删除其他成员或所有者。

    访问包 - 为组或团队添加资源角色

  5. 选择 添加

    添加访问包后,任何对访问包具有现有分配的用户都将自动成为该组或团队的成员(或所有者)。 有关详细信息,请参阅应用更改时

添加应用程序资源角色

为用户分配访问包时,可以让 Microsoft Entra ID 自动为用户分配 Microsoft Entra 企业应用程序的访问权限,包括 SaaS 应用程序、内部部署应用程序以及组织中与 Microsoft Entra ID 集成的应用程序。 对于通过联合单一登录与 Microsoft Entra ID 集成的应用程序,Microsoft Entra ID 为分配给应用程序的用户颁发联合身份验证令牌。

应用程序可以在其清单中定义多个应用程序角色并通过应用程序角色 UI 进行管理。 将某个应用程序的应用角色添加到访问包时,如果该应用程序有多个应用角色,那么需要在该访问包中为这些用户指定相应角色。 如果使用 Microsoft 身份验证库,则还可以通过代码示例来了解如何使用应用角色进行访问控制。

注意

如果某个应用程序具有多个应用程序角色,并且该应用程序的多个角色位于一个访问包中,则用户将接收这些应用程序包含的所有角色。 但是,如果希望用户仅拥有应用程序的部分角色,则需要在目录中创建多个访问包,并对每个应用程序角色使用不同的访问包。

一旦应用程序角色成为访问包的资源:

  • 为某个用户分配该访问包时,该用户将添加到该应用程序角色(如果该用户没有该角色)。 如果应用程序需要属性,则从请求中收集的属性值将被写入用户。
  • 当用户的访问包分配过期时,将从应用程序中移除其访问权限,除非他们具有对包括该应用程序角色的其他访问包的分配。 如果应用程序需要属性,那么这些属性将从用户中删除。

选择应用程序时,请注意以下事项:

  • 应用程序还可能已将组分配到其应用角色。 可以选择添加组来取代访问包中的应用程序及其角色,但是,用户在“我的访问权限”门户中看不到作为访问包的一部分的应用程序。
  • Microsoft Entra 管理中心可能还会显示不能作为应用程序进行选择的服务的服务主体。 特别是,Exchange Online 和 SharePoint Online 是服务,而不是在目录中具有资源角色的应用程序,因此它们不能包含在访问包中。 相反,使用基于组的许可为需要访问这些服务的用户建立适当的许可。
  • 如果应用程序仅支持个人 Microsoft 帐户用户进行身份验证但不支持目录中的组织帐户,则其没有应用程序角色,无法添加到访问包目录。
  1. 在“将资源角色添加到访问包”页上,单击“应用程序”以打开“选择应用程序”窗格。

  2. 选择要包含在访问包中的应用程序。

    访问包 - 添加资源角色 - 选择应用程序

  3. 选择“选择” 。

  4. 在“角色”列表中,选择应用程序角色。

    访问包 - 为应用程序添加资源角色

  5. 选择 添加

    添加此应用程序时,对访问包具有现有分配的任何用户将自动获得此应用程序的访问权限。 有关详细信息,请参阅应用更改时

添加 SharePoint 站点资源角色

为用户分配访问包时,Microsoft Entra ID 可自动为用户分配对 SharePoint Online 站点或 SharePoint Online 网站集的访问权限。

  1. 在“将资源角色添加到访问包”页上,选择“SharePoint 站点”以打开“选择 SharePoint Online 站点”窗格。

    访问包 - 添加资源角色 - 选择 SharePoint 站点 - 门户视图

  2. 选择要包含在访问包中的 SharePoint Online 站点。

    访问包 - 添加资源角色 - 选择 SharePoint Online 站点

  3. 选择“选择” 。

  4. 在“角色”列表中,选择 SharePoint Online 站点角色。

    访问包 - 为 SharePoint Online 站点添加资源角色

  5. 选择 添加

    添加此 SharePoint Online 站点时,对访问包具有现有分配的任何用户将自动获得此 SharePoint Online 站点的访问权限。 有关详细信息,请参阅应用更改时

以编程方式添加资源角色

可通过两种方式以编程方式将资源角色添加到访问包:Microsoft Graph 和 PowerShell cmdlets for Microsoft Graph。

使用 Microsoft Graph 将资源角色添加到访问包

可以使用 Microsoft Graph 将资源角色添加到访问包。 通过具有委托的 EntitlementManagement.ReadWrite.All 权限的应用程序,相应角色中的用户可以调用 API 来:

  1. 列出目录中的资源并为目录中尚未包含的任何资源创建 accessPackageResourceRequest
  2. 检索类别中每个资源的角色和范围。 然后,在接下来创建 resourceRoleScope 时将会使用此角色列表来选择角色。
  3. 为该访问包中所需的每个资源角色创建 resourceRoleScope

使用 Microsoft PowerShell 将资源角色添加到访问包

还可以通过适用于 Identity Governance 的 Microsoft Graph PowerShell cmdlet 模块 2.1.x 或更高模块版本中的 cmdlet 在 PowerShell 中将资源角色添加到访问包。

首先,检索要包含在访问包中的类别(以及该类别中的资源及其范围和角色)的 ID。 使用类似于以下示例的脚本。 这假定目录中有一个应用程序资源。

Connect-MgGraph -Environment China -ClientId 'YOUR_CLIENT_ID' -TenantId 'YOUR_TENANT_ID' -Scopes "EntitlementManagement.ReadWrite.All"

$catalog = Get-MgEntitlementManagementCatalog -Filter "displayName eq 'Marketing'" -All
if ($catalog -eq $null) { throw "catalog not found" }
$rsc = Get-MgEntitlementManagementCatalogResource -AccessPackageCatalogId $catalog.id -Filter "originSystem eq 'AadApplication'" -ExpandProperty scopes
if ($rsc -eq $null) { throw "resource not found" }
$filt = "(id eq '" + $rsc.Id + "')"
$rrs = Get-MgEntitlementManagementCatalogResource -AccessPackageCatalogId $catalog.id -Filter $filt -ExpandProperty roles,scopes

然后,将该资源中的资源角色分配给相应访问包。 例如,如果希望将先前返回的资源的第一个资源角色添加为访问包的资源角色,可以使用与下方所示类似的脚本。

$apid = "cdd5f06b-752a-4c9f-97a6-82f4eda6c76d"

$rparams = @{
    role = @{
        id =  $rrs.Roles[0].Id
        displayName =  $rrs.Roles[0].DisplayName
        description =  $rrs.Roles[0].Description
        originSystem =  $rrs.Roles[0].OriginSystem
        originId =  $rrs.Roles[0].OriginId
        resource = @{
            id = $rrs.Id
            originId = $rrs.OriginId
            originSystem = $rrs.OriginSystem
        }
    }
    scope = @{
        id = $rsc.Scopes[0].Id
        originId = $rsc.Scopes[0].OriginId
        originSystem = $rsc.Scopes[0].OriginSystem
    }
}

New-MgEntitlementManagementAccessPackageResourceRoleScope -AccessPackageId $apid -BodyParameter $rparams

删除资源角色

必备角色:全局管理员、Identity Governance 管理员、目录所有者或访问包管理员

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

  2. 浏览到“标识治理”>“权利管理”>“访问包”。

  3. 在“访问包”页上,打开要从中删除资源角色的访问包。

  4. 在左侧菜单中,选择“资源角色”。

  5. 在资源角色列表中,找到要删除的资源角色。

  6. 选择省略号 (...),然后选择“移除资源角色”。

    删除此资源角色后,对访问包具有现有分配的任何用户对此资源角色的访问权限将自动撤销。

应用更改时

在权利管理中,Microsoft Entra ID 每天会多次处理访问包中的分配和资源的批量更改。 因此,如果你做了分配或更改了访问包的资源角色,可能需要在长达 24 小时之后,才会在 Microsoft Entra ID 中做出该项更改,此外,还需要花费一段时间将这些更改传播到其他 Microsoft Online Services 或连接的 SaaS 应用程序。 如果所做的更改只影响几个对象,则更改可能在几分钟后即可在 Microsoft Entra ID 中应用,之后,其他 Microsoft Entra 组件会检测到该更改并更新 SaaS 应用程序。 如果更改会影响数千个对象,则应用更改需要花费较长的时间。 例如,如果某个访问包具有 2 个应用程序分配和 100 个用户分配,而你决定将一个 SharePoint 站点角色添加到该访问包,则在将所有用户加入 SharePoint 站点角色之前可能会出现延迟。 可以通过 Microsoft Entra 审核日志和 SharePoint 站点审核日志来监视进度。

删除团队成员时,也会将其从 Microsoft 365 组中删除。 从团队的聊天功能中删除可能会延迟。 有关详细信息,请参阅组成员身份

后续步骤