概述
下图概述了本地应用程序预配的工作原理。
将用户预配到本地应用程序中有三个主要组件:
- 预配代理提供 Microsoft Entra ID 与本地环境之间的连接。
- Extensible Connectivity(ECMA) 连接器主机将预配请求从 Microsoft Entra ID 转换为向目标应用程序发出的请求。 它充当Microsoft Entra ID 与应用程序之间的网关。 可以使用它导入与 Microsoft Identity Manager 一起使用的现有 ECMA2 连接器。 如果已生成 SCIM 应用程序或 SCIM 网关,则不需要 ECMA 主机。
- Microsoft Entra 预配服务充当同步引擎。
注释
Microsoft标识管理器同步不是必需的。 但是,在将 ECMA2 连接器导入 ECMA 主机之前,可以使用它来构建和测试 ECMA2 连接器。 ECMA2 连接器专用于 MIM,而 ECMA 主机专门用于与预配代理一起使用。
防火墙要求
无需打开连接到公司内部网络的入站连接。 预配代理仅使用到预配服务的出站连接,这意味着无需为传入连接打开防火墙端口。 你也不需要外围(DMZ)网络,因为所有连接都是出站的,并通过安全通道进行。
此处详细介绍了预配代理所需的出站终结点。
ECMA 连接器主机体系结构
ECMA 连接器主机具有几个用于实现本地预配的区域。 下图是呈现这些各个区域的概念图。 下表更详细地描述了这些区域。
| 面积 | 说明 |
|---|---|
| 端点 | 负责与 Microsoft Entra 预配服务的通信和数据传输 |
| 内存中缓存 | 用于存储从本地数据源导入的数据 |
| Autosync | 提供 ECMA 连接器主机与本地数据源之间的异步数据同步 |
| 业务逻辑 | 用于协调所有 ECMA 连接器主机活动。 可在 ECMA 主机中配置自动同步时间。 这在属性页中。 |
关于锚点属性和识别名
提供了以下信息以更好地解释泛型SQL 连接器使用的定位点属性和可分辨名称。
定位点属性是对象类型的唯一属性,该属性不会更改,并表示 ECMA 连接器主机内存中缓存中的该对象。
可分辨名称(DN)是一个名称,它通过指示其在目录层次结构中的当前位置来唯一标识对象。 或者,在分区中使用 SQL。 该名称通过连接目录分区根目录的锚点属性来形成。
当我们想到采用传统格式的传统 DN(如 Active Directory 或 LDAP)时,我们会想到类似这样的东西:
CN=Lola Jacobson,CN=Users,DC=contoso,DC=com
但是,对于像 SQL 这样平面的、非分层的数据源来说,DN 需要已经存在于其中一个表中,或者从我们提供给 ECMA 连接器主机的信息中创建。
这可以通过在配置 genericSQL 连接器时选中复选框中的 自动生成 来实现。 选择自动生成 DN 时,ECMA 主机会生成 LDAP 格式的 DN:CN=<锚定值>,OBJECT=<类型>。 这还假定 DN 在“连接”页中 未选中 “定位点”。
genericSQL 连接器要求使用 LDAP 格式填充 DN。 泛型 SQL 连接器使用具有组件名称“OBJECT=”的 LDAP 样式。 这样,它就可以使用分区(每个对象类型都是分区)。
由于 ECMA 连接器主机当前仅支持 USER 对象类型,因此 OBJECT=type< 将为 OBJECT=>USER。 因此,具有 ljacobson 定位点值的用户的 DN 将为:
CN=ljacobson,OBJECT=USER
用户创建工作流
Microsoft Entra 预配服务会查询 ECMA 连接器主机,以查看用户是否存在。 它使用 匹配属性 作为筛选器。 此属性在企业应用程序 ( 本地预配 -> 预配 -> 预配 -> 属性匹配)下的 Microsoft Entra 管理中心中定义。 它用 1 表示优先级顺序。 可以定义一个或多个匹配属性,并根据优先级设置它们优先级。 如果想要更改匹配属性,也可以这样做。
ECMA 连接器主机接收 GET 请求并查询其内部缓存,以查看用户是否存在以及是否已被导入。 这是使用上面的匹配属性完成的。 如果定义多个匹配属性,Microsoft Entra 预配服务会为每个属性发送 GET 请求,ECMA 主机会检查其缓存中的匹配项,直到找到匹配项。
如果用户不存在,Microsoft Entra ID 发出 POST 请求来创建用户。 ECMA 连接器主机向 Microsoft Entra ID 返回 HTTP 201 响应,并为用户提供 ID。 此 ID 派生自对象类型页中定义的定位点值。 此锚点将由 Microsoft Entra ID 用于查询 ECMA 连接器主机,以处理将来及后续的请求。
如果 Microsoft Entra ID 中用户信息发生更改,Microsoft Entra ID 将发出 GET 请求,以使用上一步中的锚点检索用户,而不是使用步骤 1 中的匹配属性。 例如,这允许 UPN 更改,而不会中断Microsoft Entra ID 和应用中用户之间的链接。
代理最佳做法
-
- 避免对代理与 Azure 之间的出站 TLS 通信进行任何形式的内联检查。 这种类型的内联检查会导致通信流降低。
- 代理必须与 Azure 和应用程序通信,因此代理的位置会影响这两个连接的延迟。 可以通过优化每个网络连接来最大程度地减少端到端流量的延迟。 优化每个连接的方法包括:
- 减少跃点两端之间的距离。
- 选择要遍历的正确网络。 例如,由于专用链接,遍历专用网络而不是公共 Internet 的速度可能更快。
- 代理和 ECMA 主机依赖于证书进行通信。 ECMA 主机生成的自签名证书应仅用于测试目的。 自签名证书默认在两年内过期,无法吊销。 Microsoft建议将受信任的 CA 中的证书用于生产用例。
高可用性
为高可用性/故障转移方案提供了以下信息。
对于使用 ECMA 连接器的本地应用:建议为每个数据中心配置一个主动代理和一个被动代理(已配置但停止使用,且未分配给 Microsoft Entra 中的企业应用)。
执行故障转移时,建议执行以下操作:
- 停止活跃代理(A)。
- 从企业应用程序取消分配代理 A。
- 重启被动代理(B)。
- 将代理 B 分配到企业应用程序。
对于使用 SCIM 连接器的本地应用:建议每个应用程序有两个活动代理。
预配代理问题
此处回答了一些常见问题。
如何查看预配代理的版本?
- 登录到安装预配代理的 Windows 服务器。
- 转到 控制面板>卸载或更改程序。
- 查找与 Microsoft Entra Connect 预配代理条目对应的版本。
是否可以在运行 Microsoft Entra Connect 或 Microsoft Identity Manager 的同一台服务器上安装预配代理?
是的。 可以在运行 Microsoft Entra Connect 或 Microsoft Identity Manager 的同一台服务器上安装预配代理,但这不是必需的。
如何将预配代理配置为使用代理服务器进行出站 HTTP 通信?
配置代理支持使用出站代理服务。 可以通过编辑代理配置文件 C:\Program Files\Azure AD Connect Provisioning Agent\AADConnectProvisioningAgent.exe.config对其进行配置。将以下行添加到文件末尾,紧跟在结束 </configuration> 标记之前。 将变量 [proxy-server] 和 [proxy-port] 替换为代理服务器名称和端口值。
<system.net>
<defaultProxy enabled="true" useDefaultCredentials="true">
<proxy
usesystemdefault="true"
proxyaddress="http://[proxy-server]:[proxy-port]"
bypassonlocal="true"
/>
</defaultProxy>
</system.net>
如何确保预配代理可以与 Microsoft Entra 租户通信,并且没有防火墙阻止代理所需的端口?
还可以检查所有必需的端口是否处于打开状态。
如何卸载预配代理?
- 登录到安装预配代理的 Windows 服务器。
- 转到 控制面板>卸载或更改程序。
- 卸载以下程序:
- Microsoft Entra Connect 预配代理
- Microsoft Entra Connect 代理更新程序
- Microsoft Entra Connect 预配代理包
预配代理历史记录
本文列出了已发布的 Microsoft Entra Connect 预配代理的版本和功能。 Microsoft Entra 团队会定期更新预配代理的新特性和功能。 确保不要将同一代理用于本地预配和云同步/HR 驱动的预配。
Microsoft提供对最新代理版本及其前一个版本的直接支持。
下载链接
本地应用预配已集成到预配代理中,可从门户获取。 请参阅 安装预配代理。
1.1.892.0
2022 年 5 月 20 日 - 已发布以供下载
修复的问题
- 添加了对将更改导出到整数属性的支持,这有利于客户使用通用 LDAP 连接器。
1.1.846.0
2022 年 4 月 11 日 - 已发布以供下载
修复的问题
- 在将用户预配到 AD LDS 时,增加对 ObjectGUID 的支持,作为通用 LDAP 连接器的锚点。