本文介绍如何在权利管理中创建与管理资源和访问包的目录。
创建目录
目录是资源和访问包的容器。 需要将相关的资源和访问包分组时,可以创建目录。 管理员可以创建目录。 此外,被委托了目录创建者角色的用户可为其拥有的资源创建目录。 创建目录的非管理员将成为第一个目录所有者。 目录所有者可以将更多用户、用户组或应用程序服务主体添加为目录所有者。
若要创建目录,请执行以下操作:
- 至少以标识治理管理员身份登录到 Microsoft Entra 管理中心。 - 提示 - 可以完成此任务的其他最低特权角色包括目录创建者。 用户如果已分配有“用户管理员”角色,则将无法再在其未拥有的目录中创建目录或管理访问包。 如果组织中的用户已分配有“用户管理员”角色,以配置目录、访问包或权利管理中的策略,则应为这些用户分配“Identity Governance 管理员”角色。 
- 浏览到“标识治理”“权利管理”>“目录”。   
- 选择“新建目录”。 
- 输入目录的唯一名称,并提供说明。 - 用户将在访问包的详细信息中看到此信息。 
- 如果你希望此目录中的访问包在创建后立即可供用户请求,请将“启用”设置为“是” 。 
- 如果希望允许已连接组织的外部目录中的用户请求此目录中的访问包,请将“已为外部用户启用”设置为“是”。 访问包还必须具有允许来自已连接组织的用户进行请求的策略。 如果此目录中的访问包仅适用于目录中已有的用户,则将“已为外部用户启用”设置为“否”。   
- 选择“创建”以创建该目录。 
以编程方式创建目录
可通过两种编程方式创建目录。
使用 Microsoft Graph 创建目录
可以使用 Microsoft Graph 创建目录。 如果用户具有某个应用程序的适当角色,且该应用程序具有委托的 EntitlementManagement.ReadWrite.All 权限,或如果某个应用程序具有前述EntitlementManagement.ReadWrite.All应用程序权限,则该用户或该应用程序可以调用 API 来创建类别。
使用 PowerShell 创建目录
还可使用New-MgEntitlementManagementCatalog 模块版本 2.2.0 或更高版本中的  cmdlet 在 PowerShell 中创建目录。
Connect-MgGraph -Environment China -ClientId 'YOUR_CLIENT_ID' -TenantId 'YOUR_TENANT_ID' -Scopes "EntitlementManagement.ReadWrite.All"
$catalog = New-MgEntitlementManagementCatalog -DisplayName "Marketing"
将资源添加到目录
若要在访问包中包含资源,这些资源必须存在于目录中。 可向目录添加的资源类型包括组、应用程序和 SharePoint Online 站点。
- 组可以是云创建的 Microsoft 365 组,或者云创建的 Microsoft Entra 安全组。 - 无法将源自于本地 Active Directory 的组分配为资源,因为无法在 Microsoft Entra ID 中更改其所有者或成员属性。 若要向用户授予对使用 AD 安全组成员身份的应用程序的访问权限,请在 Microsoft Entra ID 中创建新的安全组,配置组写回 AD,使该组能够写入 AD,以便基于云的组可供基于 AD 的应用程序使用。 
- 在 Microsoft Entra ID 中也无法将源自于 Exchange Online 的组修改为通讯组,因此不能将这些组添加到目录中。 
 
- 应用程序可以是 Microsoft Entra 企业应用程序,包括服务型软件 (SaaS) 应用程序、本地部署应用程序以及你自己的与 Microsoft Entra ID 集成的应用程序。 - 有关如何为具有多个角色的应用程序选择适当资源的详细信息,请参阅如何确定在访问包中包含哪些资源角色。
 
- 站点可以是 SharePoint Online 站点或 SharePoint Online 站点集合。 
注意
按站点名称或确切的 URL 搜索 SharePoint 站点,因为搜索框区分大小写。
必备角色:请参阅将资源添加到目录所需的角色。
若要将资源添加到目录,请执行以下操作:
- 至少以标识治理管理员身份登录到 Microsoft Entra 管理中心。 
- 浏览到“标识治理”“权利管理”>“目录”。 
- 在“目录”页中,打开要将资源添加到的目录。 
- 在左侧菜单中选择“资源”。 
- 选择“添加资源”。 
- 选择资源类型“组和团队”、“应用程序”或“SharePoint 站点” 。 - 如果看不到想要添加的资源或无法添加资源,请确保具有所需的 Microsoft Entra 目录角色和权利管理角色。 可能需要求助某个具有所需角色的人员将资源添加到目录。 有关详细信息,请参阅将资源添加到目录所需的角色。 
- 选择一个或多个要添加到目录中的所需类型的资源。   
- 完成后,选择“添加”。 - 现在,可将这些资源包含在目录中的访问包内。 
在目录中添加资源属性
属性是请求者在提交访问请求之前需要回答的必填字段。 他们为这些属性提供的回答将显示给审批者,并且会标记在 Microsoft Entra ID 中的用户对象上。
注意
在资源上设置的所有属性都需要一个答案,然后对包含该资源的访问包的请求才能提交。 如果请求者不提供答案,将不会处理其请求。
若要要求为访问请求提供属性,请执行以下操作:
- 在左侧菜单中选择“资源”,此时将显示目录中的资源列表。 
- 选择要添加属性的资源旁边的省略号,然后选择“需要属性”。   
- 选择属性类型: - 内置包括 Microsoft Entra 用户配置文件属性。
- “目录架构扩展”提供了一种在 Microsoft Entra 用户中存储更多数据的方法。
 
- 如果选择“内置”,请从下拉列表中选择一个属性。 如果选择“目录架构扩展”,请在文本框中输入属性名称。 - 注意 - User.mobilePhone 属性是一个敏感属性,只能由某些管理员更新。 有关详细信息,请参阅谁可以更新敏感用户属性?。 
- 选择你希望请求者为其答案使用的答案格式。 答案格式包括“短文本”、“多选”和“长文本” 。 
- 如果选择“多选”,请选择“编辑和本地化”以配置答案选项。 - 在显示的“查看/编辑问题”窗格中,在“答案值”框中输入你希望在请求者回答问题时向其提供的响应选项 。
- 选择响应选项的语言。 如果选择其他语言,则可将响应选项本地化。
- 输入所需数量的响应,然后选择“保存”。
 
- 如果希望在直接分配和自助服务请求期间可编辑属性值,请选择“是”。 - 注意   - 如果在“属性值可编辑”框中选择“否”,并且属性值为空,则用户可以输入该属性的值 。 该值在保存后无法编辑。
- 如果在“属性值可编辑”框中选择“否”,并且属性值不为空,则用户将无法在直接分配和自助式请求期间编辑预先存在的值 。
   
- 如果你要添加本地化内容,请选择“添加本地化内容”。 - 在“为问题添加本地化内容”窗格中,为要本地化与选定属性相关的问题的语言选择语言代码。 
- 使用配置的语言,在“本地化文本”框中输入问题。 
- 添加所有所需的本地化内容后,选择“保存”。   
 
- 在“需要属性”页上填写所有属性信息后,选择“保存”。 
添加多地域 SharePoint 站点
- 如果已为 SharePoint 启用多地域,请选择要从中选择站点的环境。   
- 然后选择要添加到目录中的站点。 
以编程方式将资源添加到目录
还可以使用 Microsoft Graph 将资源添加到目录。 通过具有委托的 EntitlementManagement.ReadWrite.All 权限的应用程序,相应角色中的用户或目录和资源所有者可以调用 API 来创建 resourceRequest。 具有应用程序权限 EntitlementManagement.ReadWrite.All 和资源更改权限的应用程序(例如 Group.ReadWrite.All)也可以将资源添加到目录。
使用 PowerShell 将资源添加到目录
还可使用New-MgEntitlementManagementResourceRequest 模块版本 2.1.x 或更高模块版本中的  cmdlet 在 PowerShell 中向目录添加资源。 以下示例演示了如何使用 Microsoft Graph PowerShell cmdlet 模块版本 2.4.0 将组作为资源添加到目录。
Connect-MgGraph -Environment China -ClientId 'YOUR_CLIENT_ID' -TenantId 'YOUR_TENANT_ID' -Scopes "EntitlementManagement.ReadWrite.All,Group.ReadWrite.All"
$g = Get-MgGroup -Filter "displayName eq 'Marketing'"
if ($null -eq $g) {throw "no group" }
$catalog = Get-MgEntitlementManagementCatalog -Filter "displayName eq 'Marketing'"
if ($null -eq $catalog) { throw "no catalog" }
$params = @{
  requestType = "adminAdd"
  resource = @{
    originId = $g.Id
    originSystem = "AadGroup"
  }
  catalog = @{ id = $catalog.id }
}
New-MgEntitlementManagementResourceRequest -BodyParameter $params
sleep 5
$ar = Get-MgEntitlementManagementCatalog -AccessPackageCatalogId $catalog.Id -ExpandProperty resources
$ar.resources
从目录中删除资源
可以从目录中删除资源。 仅当资源未在目录的任何访问包中使用时,才能从此目录中删除该资源。
必备角色:请参阅将资源添加到目录所需的角色。
若要从目录中删除资源,请执行以下操作:
- 至少以标识治理管理员身份登录到 Microsoft Entra 管理中心。 
- 浏览到“标识治理”“权利管理”>“目录”。 
- 在“目录”页中,打开要从中删除资源的目录。 
- 在左侧菜单中选择“资源”。 
- 选择要删除的资源。 
- 选择“删除” 。 或者,可以选择省略号 (...),然后选择“删除资源” 。 
添加更多目录所有者
创建了目录的用户将成为第一个目录所有者。 若要委托目录的管理,请将用户添加到目录所有者角色。 添加更多目录所有者有助于分担目录管理责任。
若要将用户分配到目录所有者角色,请执行以下操作:
- 至少以标识治理管理员身份登录到 Microsoft Entra 管理中心。 - 提示 - 可以完成此任务的其他最低特权角色包括目录所有者。 
- 浏览到“标识治理”“权利管理”>“目录”。 
- 在“目录”页中,打开要将管理员添加到的目录。 
- 在左侧菜单中,选择“角色和管理员”。   
- 选择“添加所有者”,以选择这些角色的成员。 
- 选择“选择”以添加这些成员。 
编辑目录
可以编辑目录的名称和说明。 用户将在访问包的详细信息中看到此信息。
若要编辑目录,请执行以下操作:
- 至少以标识治理管理员身份登录到 Microsoft Entra 管理中心。 - 提示 - 可以完成此任务的其他最低特权角色包括目录创建者。 
- 浏览到“标识治理”“权利管理”>“目录”。 
- 在“目录”页中,打开要编辑的目录。 
- 在该目录的“概述”页上选择“编辑” 。 
- 编辑目录的名称、说明或启用的设置。   
- 选择“保存”。 
删除目录
可以删除目录,但前提是它不包含任何访问包。
若要删除目录,请执行以下操作:
- 至少以标识治理管理员身份登录到 Microsoft Entra 管理中心。 - 提示 - 可以完成此任务的其他最低特权角色包括目录创建者。 
- 浏览到“标识治理”“权利管理”>“目录”。 
- 在“目录”页中,打开要删除的目录。 
- 在该目录的“概述”页上选择“删除” 。 
- 在出现的消息框中选择“是”。 
以编程方式删除目录
还可以使用 Microsoft Graph 删除目录。 如果用户具有某个应用程序的适当角色,且该应用程序具有委托的 EntitlementManagement.ReadWrite.All 权限,则可以调用 API 来EntitlementManagement.ReadWrite.All。