Microsoft Entra 本地应用程序标识预配体系结构
概述
下图展示了本地应用程序预配流程的概况。
有三个主要组件用于在本地应用程序中预配用户:
- 预配代理在 Microsoft Entra ID 与本地环境之间提供连接。
- Extensible Connectivity (ECMA) Connector 主机会将预配请求从 Microsoft Entra ID 转换为向目标应用程序发出的请求。 它充当 Microsoft Entra ID 与应用程序之间的网关。 你可以使用它来导入与 Microsoft Identity Manager 配合使用的现有 ECMA2 连接器。 如果已构建了 SCIM 应用程序或 SCIM 网关,则不需要 ECMA 主机。
- Microsoft Entra 预配服务充当同步引擎。
注意
不需要 Microsoft Identity Manager 同步。 但是,你可以先使用它来构建并测试 ECMA2 连接器,然后再将其导入 ECMA 主机。 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=<anchorvalue>,OBJECT=<type>。 这还假定“连接”页中未选中“DN 是定位点”。
genericSQL 连接器要求使用 LDAP 格式填充 DN。 泛型 SQL 连接器使用 LDAP 样式,其组件名称为“OBJECT=”。 这样,它可以使用分区(每种对象类型都是分区)。
由于 ECMA 连接器主机当前仅支持 USER 对象类型,因此 OBJECT=<type> 将为 OBJECT=USER。 因此,定位点值为 ljacobson 的用户的 DN 将是:
CN=ljacobson,OBJECT=USER
用户创建工作流
Microsoft Entra 预配服务会查询 ECMA 连接器主机,以查看用户是否存在。 该服务使用匹配属性作为筛选器。 此属性是在 Azure 门户中的“企业应用程序”->“本地预配”->“预配”->“属性匹配”下定义的。 该属性由 1 表示匹配优先级。 可以定义一个或多个匹配属性,并根据优先级为它们排序。 若要更改匹配属性,也可以这样做。
ECMA 连接器主机接收 GET 请求并查询其内部缓存,以查看用户是否存在并基于导入。 这是使用上述匹配属性完成的。 如果定义多个匹配属性,Microsoft Entra 预配服务将为每个属性发送一个 GET 请求,并且 ECMA 主机将检查其缓存中是否存在匹配项,直到找到匹配属性。
如果用户不存在,Microsoft Entra ID 将发出 POST 请求来创建用户。 ECMA 连接器主机将使用 HTTP 201 来响应 Microsoft Entra ID,并为用户提供 ID。 此 ID 派生自对象类型页中定义的定位点值。 此定位点由 Microsoft Entra ID 用于查询 ECMA 连接器主机,以便发出将来和后续的请求。
如果 Microsoft Entra ID 中的用户发生更改,Microsoft Entra ID 将发出 GET 请求,以使用上一步中的定位点(而不是步骤 1 中的匹配特性)检索用户。 例如,这允许更改 UPN,而不会中断该用户在 Microsoft Entra ID 中与应用之间的链接。
代理最佳做法
- 当前不支持将相同代理用于本地预配功能和 Workday/SuccessFactors/Microsoft Entra Connect 云同步。 我们正积极致力于在与其他预配场景相同的代理上支持本地预配。
-
- 避免对代理与 Azure 之间的出站 TLS 通信进行任何形式的内联检查。 这种内联检查会导致通信流降级。
- 代理必须与 Azure 和应用程序通信,因此,代理的位置会影响这两个连接的延迟时间。 可通过优化每个网络连接来尽量降低端到端流量的延迟。 优化每个连接的方法包括:
- 减少跃点两个端点之间的距离。
- 选择要遍历的适当网络。 例如,遍历专用网络的速度可能比遍历公共 Internet 速度更快,因为前者是专用链接。
- 代理和 ECMA 主机依赖于证书进行通信。 ECMA 主机生成的自签名证书应仅用于测试目的。 自签名证书默认在两年后过期,无法吊销。 Microsoft 建议对生产用例使用来自受信任 CA 的证书。
高可用性
为高可用性/故障转移方案提供了以下信息。
对于使用 ECMA 连接器的本地应用程序,建议为每个数据中心配置一个主动代理和一个被动代理(被动代理已配置但未启用,并且未在 Microsoft Entra 中分配给企业应用)。
执行故障转移时,建议执行以下操作:
- 停止活动代理 (A)。
- 从企业应用程序取消分配代理 A。
- 重启被动代理 (B)。
- 将代理 B 分配到企业应用程序。
对于使用 SCIM 连接器的本地应用:建议每个应用程序有两个活动代理。
预配代理问题
下面为一些常见问题提供了解答。
如何知道我的预配代理的版本?
- 登录到安装有预配代理的 Windows Server。
- 转到“控制面板”“卸载或更改程序”。
- 查找与“Microsoft Entra Connect 预配代理”条目相对应的版本。
是否可以在运行 Microsoft Entra Connect 或 Microsoft Identity Manager 的同一服务器上安装预配代理?
是的。 可以在运行 Microsoft Entra Connect 或 Microsoft Identity Manager 的同一服务器上安装预配代理,但这不是必需的。
如何将预配代理配置为使用代理服务器来处理出站 HTTP 通信?
预配代理支持使用出站代理。 可通过编辑代理配置文件“C:\Program Files\Microsoft Azure AD Connect Provisioning Agent\AADConnectProvisioningAgent.exe.config”对其进行配置。在文件的末尾添加以下行,恰好添加在尾随的 标记前面。 将变量 [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 Server。
- 转到“控制面板”“卸载或更改程序”。
- 卸载以下程序:
- 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 连接器的定位点。