场景 - 在将组预配到 Active Directory 的情况下使用目录扩展
场景:你在 Microsoft Entra ID 中有数百个组。 你需要将其中一些组(而不是全部组)预配回 Active Directory。 你想要一个可应用于组的快速筛选器,从而避免使用更复杂的范围筛选器。
可以使用在本场景中创建的环境进行测试或者加深对云同步的了解。
假设
- 此场景假定你已经有一个工作环境,该环境正在将用户同步到 Microsoft Entra ID。
- 有 4 个同步的用户。 Britta Simon、Lola Jacobson、Anna Ringdahl 和 John Smith。
- 已在 Active Directory 中创建了三个组织单位 - Sales、Marketing 和 Groups
- Britta Simon 和 Anna Ringdahl 用户帐户驻留在 Sales 组织单位中。
- Lola Jacobson 和 John Smith 用户帐户驻留在 Marketing 组织单位中。
- Microsoft Entra ID 中的组在 Groups 组织单位中预配。
提示
为了获得执行 Microsoft Graph PowerShell SDK cmdlet 的更好体验,请在 ISE 模式下使用带有 ms-vscode.powershell
扩展的 Visual Studio Code。
在 Microsoft Entra ID 中创建两个组
首先,在 Microsoft Entra ID 中创建两个组。 一个组是 Sales,另一个组是 Marketing。
若要创建两个组,请执行以下步骤。
- 至少以混合标识管理员身份登录到 Microsoft Entra 管理中心。
- 浏览到“标识”>“组”>“所有组”。
- 在顶部,单击“新建组”。
- 确保“组类型”设置为“安全”。
- 对于“组名称”,输入“Sales”
- 对于“成员身份类型”,将其保留在分配状态。
- 单击 “创建” 。
- 使用“Marketing”作为“组名称”重复此过程。
将用户添加到新创建的组
- 至少以混合标识管理员身份登录到 Microsoft Entra 管理中心。
- 浏览到“标识”>“组”>“所有组”。
- 在顶部的搜索框中输入“Sales”。
- 单击新“Sales”组。
- 在左侧,单击“成员”
- 在顶部,单击“添加成员”。
- 在顶部的搜索框中,输入“Britta Simon”。
- 勾选“Britta Simon”和“Anna Ringdahl”,然后单击“选择”
- 此时应该会成功地将她添加到该组。
- 在最左侧,单击“所有组”,重复此过程,使用“Marketing”组,并将“Lola Jacobson”和“John Smith”添加到该组。
注意
将用户添加到 Marketing 组时,请记下概述页上的组 ID。 稍后将使用此 ID 将新创建的属性添加到组。
安装和连接 Microsoft Graph PowerShell SDK
如果尚未安装,请按照 Microsoft Graph PowerShell SDK 文档中的说明安装 Microsoft Graph PowerShell SDK 的主要模块:
Microsoft.Graph
。使用管理权限打开 PowerShell
若要设置执行策略,请运行以下命令(出现提示时全部按“[A] 是”):
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
连接到你的租户(在登录时请务必接受代理):
Connect-MgGraph -Scopes "Directory.ReadWrite.All", "Application.ReadWrite.All", "User.ReadWrite.All, Group.ReadWrite.All"
创建 CloudSyncCustomExtensionApp 应用程序和服务主体
重要
只有具有标识符 URI“api://<tenantId>/CloudSyncCustomExtensionsApp”的应用程序和 Microsoft Entra Connect 创建的 Tenant Schema Extension App 才支持 Microsoft Entra 云同步的目录扩展。
获取租户 ID:
$tenantId = (Get-MgOrganization).Id $tenantId
注意
这将输出我们当前的租户 ID。 可以通过导航到 Microsoft Entra 管理中心>“标识”>“概述”来确认此租户 ID。
使用上一步中的
$tenantId
变量,检查 CloudSyncCustomExtensionApp 是否存在。$cloudSyncCustomExtApp = Get-MgApplication -Filter "identifierUris/any(uri:uri eq 'api://$tenantId/CloudSyncCustomExtensionsApp')" $cloudSyncCustomExtApp
如果 CloudSyncCustomExtensionApp 存在,请跳到下一步。 否则,请创建新的 CloudSyncCustomExtensionApp 应用:
$cloudSyncCustomExtApp = New-MgApplication -DisplayName "CloudSyncCustomExtensionsApp" -IdentifierUris "api://$tenantId/CloudSyncCustomExtensionsApp" $cloudSyncCustomExtApp
检查 CloudSyncCustomExtensionsApp 应用程序是否关联了安全主体。 如果你刚才创建了新应用,请跳到下一步。
Get-MgServicePrincipal -Filter "AppId eq '$($cloudSyncCustomExtApp.AppId)'"
如果你刚才创建了新应用或未返回安全主体,请为 CloudSyncCustomExtensionsApp 创建安全主体:
New-MgServicePrincipal -AppId $cloudSyncCustomExtApp.AppId
创建自定义扩展属性
提示
在此应用场景中,我们将创建一个要在 Microsoft Entra 云同步范围筛选器中使用的名为 WritebackEnabled
的自定义扩展特性,以便仅将 WritebackEnabled 设置为 True 的组写回到本地 Active Directory,这类似于 Microsoft Entra 管理中心内的“已启用写回”标志。
获取 CloudSyncCustomExtensionsApp 应用程序:
$cloudSyncCustomExtApp = Get-MgApplication -Filter "identifierUris/any(uri:uri eq 'api://$tenantId/CloudSyncCustomExtensionsApp')"
现在,在 CloudSyncCustomExtensionApp 下,创建名为“WritebackEnabled”的自定义扩展属性,并将其分配给 Group 对象:
New-MgApplicationExtensionProperty -Id $cloudSyncCustomExtApp.Id -ApplicationId $cloudSyncCustomExtApp.Id -Name 'WritebackEnabled' -DataType 'Boolean' -TargetObjects 'Group'
此 cmdlet 将创建一个类似于 extension_<guid>_WritebackEnabled 的属性。
创建云同步配置
至少以混合标识管理员身份登录到 Microsoft Entra 管理中心。
浏览到“标识”>“混合管理”>“Microsoft Entra Connect”>“云同步”。
选择“新配置”。
选择“Microsoft Entra ID 到 AD 同步”。
- 在“配置”屏幕上,选择你的域以及是否启用密码哈希同步。单击“创建”。
此时将打开“开始”屏幕。 在此处可以继续配置云同步
在左侧,单击“范围筛选器”,选择“组范围” - “所有组”
单击“编辑属性映射”并将“目标容器”更改为
OU=Groups,DC=Contoso,DC=com
。 单击“ 保存”。单击“添加属性范围筛选器”
为范围筛选器键入一个名称:
Filter groups with Writeback Enabled
在“目标属性”下,选择新创建的属性,该属性类似于 extension_<guid>_WritebackEnabled。
重要
下拉列表中显示的某些目标特性可能无法用作范围筛选器,因为并非所有属性都可以在 Entra ID 中进行管理,例如 extensionAttribute[1-15] 就不可以,因此建议为此特定目的创建自定义扩展属性。
- 在“运算符”下,选择“为真”
- 单击“ 保存”。 然后单击“保存”。
- 使配置保持禁用状态,并返回到该配置。
将新的扩展属性添加到其中一个组
在此部分中,我们要在现有组“Marketing”中为新创建的属性添加值。
使用 Microsoft Graph PowerShell SDK 设置扩展属性值
使用上一步中的
$cloudSyncCustomExtApp
变量获取扩展属性:$gwbEnabledExtAttrib = Get-MgApplicationExtensionProperty -ApplicationId $cloudSyncCustomExtApp.Id | Where-Object {$_.Name -Like '*WritebackEnabled'} | Select-Object -First 1 $gwbEnabledExtAttrib $gwbEnabledExtName = $gwbEnabledExtAttrib.Name
接下来,获取
Marketing
组:$marketingGrp = Get-MgGroup -ConsistencyLevel eventual -Filter "DisplayName eq 'Marketing'" $marketingGrp
然后,使用包含
extension_<guid>_WritebackEnabled
的变量$gwbEnabledExtName
为 Marketing 组设置值True
:Update-MgGroup -GroupId $marketingGrp.Id -AdditionalProperties @{$gwbEnabledExtName = $true}
若要确认,可以使用以下命令读取
extension_<guid>_WritebackEnabled
属性值:$marketingGrp = Get-MgGroup -ConsistencyLevel eventual -Filter "DisplayName eq 'Marketing'" -Property Id,$gwbEnabledExtName $marketingGrp.AdditionalProperties.$gwbEnabledExtName
使用 Microsoft Graph 资源管理器设置扩展属性值
你需要确保已同意 Group.ReadWrite.All
。 可以通过选择“修改权限”来执行此操作。
使用租户管理员帐户登录。 这可能需要是混合标识管理员帐户。 在创建此方案时使用了混合标识管理员帐户。 混合标识管理员帐户可能已经够用。
在顶部,将“GET”更改为“PATCH”
在地址框中输入:
https://graph.microsoft.com/v1.0/groups/<Group Id>
在请求正文中输入以下内容:
{ extension_<guid>_WritebackEnabled: true }
如果正确完成,则会看到 []。
现在,在顶部,将“PATCH”更改为“GET”,并查看 Marketing 组的属性。
测试配置
注意
使用按需预配时,不会自动预配成员。 需要选择要测试的成员,并且存在 5 个成员的限制。
- 至少以混合管理员的身份登录到 Microsoft Entra 管理中心。
- 浏览到“标识”>“混合管理”>“Microsoft Entra Connet”>“云同步”。
- 在“配置”下选择你的配置。
- 在左侧,选择“按需预配”。
- 在“已选择的组”框中输入“Marketing”
- 从“所选用户”部分中,选择要测试的一些用户。 选择“Lola Jacobson”和“John Smith”。
- 单击“预配”。 它应该会成功预配。
- 现在,尝试处理“Sales”组,添加“Britta Simon”和和“Anna Ringdahl”。 这应该不会预配。
- 在 Active Directory 中,应该会看到新创建的 Marketing 组。
- 现在,可以浏览到“标识”>“混合管理”>“Microsoft Entra Connect”>“云同步”>“概述”页面来查看和启用我们的配置,从而开始进行同步。