Microsoft Entra 本地应用程序标识预配体系结构

概述

下图概述了本地应用程序预配的工作原理。

本地应用程序预配架构示意图。

将用户预配到本地应用程序中有三个主要组件:

  • 预配代理提供 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 连接器主机具有几个用于实现本地预配的区域。 下图是呈现这些各个区域的概念图。 下表更详细地描述了这些区域。

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 在“连接”页中 未选中 “定位点”。

DN 未勾选锚点

genericSQL 连接器要求使用 LDAP 格式填充 DN。 泛型 SQL 连接器使用具有组件名称“OBJECT=”的 LDAP 样式。 这样,它就可以使用分区(每个对象类型都是分区)。

由于 ECMA 连接器主机当前仅支持 USER 对象类型,因此 OBJECT=type< 将为 OBJECT=>USER。 因此,具有 ljacobson 定位点值的用户的 DN 将为:

CN=ljacobson,OBJECT=USER

用户创建工作流

  1. Microsoft Entra 预配服务会查询 ECMA 连接器主机,以查看用户是否存在。 它使用 匹配属性 作为筛选器。 此属性在企业应用程序 ( 本地预配 -> 预配 -> 预配 -> 属性匹配)下的 Microsoft Entra 管理中心中定义。 它用 1 表示优先级顺序。 可以定义一个或多个匹配属性,并根据优先级设置它们优先级。 如果想要更改匹配属性,也可以这样做。 匹配属性

  2. ECMA 连接器主机接收 GET 请求并查询其内部缓存,以查看用户是否存在以及是否已被导入。 这是使用上面的匹配属性完成的。 如果定义多个匹配属性,Microsoft Entra 预配服务会为每个属性发送 GET 请求,ECMA 主机会检查其缓存中的匹配项,直到找到匹配项。

  3. 如果用户不存在,Microsoft Entra ID 发出 POST 请求来创建用户。 ECMA 连接器主机向 Microsoft Entra ID 返回 HTTP 201 响应,并为用户提供 ID。 此 ID 派生自对象类型页中定义的定位点值。 此锚点将由 Microsoft Entra ID 用于查询 ECMA 连接器主机,以处理将来及后续的请求。

  4. 如果 Microsoft Entra ID 中用户信息发生更改,Microsoft Entra ID 将发出 GET 请求,以使用上一步中的锚点检索用户,而不是使用步骤 1 中的匹配属性。 例如,这允许 UPN 更改,而不会中断Microsoft Entra ID 和应用中用户之间的链接。

代理最佳做法

    • 避免对代理与 Azure 之间的出站 TLS 通信进行任何形式的内联检查。 这种类型的内联检查会导致通信流降低。
  • 代理必须与 Azure 和应用程序通信,因此代理的位置会影响这两个连接的延迟。 可以通过优化每个网络连接来最大程度地减少端到端流量的延迟。 优化每个连接的方法包括:
  • 减少跃点两端之间的距离。
  • 选择要遍历的正确网络。 例如,由于专用链接,遍历专用网络而不是公共 Internet 的速度可能更快。
  • 代理使用证书进行安全通信。 有关系统使用的两个证书的详细信息,包括过期行为和建议以供生产使用,请参阅 证书管理

证书管理

本地应用程序预配依赖于两个不同的证书。 了解这两个证书有助于规划生产部署、监视代理运行状况以及防止服务中断。

ECMA 连接器主机证书

Microsoft Entra ECMA 连接器主机在端口 8585(https://localhost:8585/ecma2host_<connectorName>/scim)上公开 HTTPS 终结点,供预配代理调用。 ECMA 连接器主机使用的 TLS 证书保护该终结点。 首次运行 Microsoft ECMA2Host 配置向导时,它会通过选择 Generate 证书1 来提示创建证书。 自动生成的证书是自签名的,证书的使用者可选名称 (SAN) 与主机名匹配。

有关 ECMA 连接器主机证书的关键事实:

  • 自签名证书仅用于测试。 默认情况下,它会在两年内过期,无法撤销。 Microsoft建议使用受信任的证书颁发机构(CA)颁发的证书进行生产使用。
  • 证书使用者必须与安装了 ECMA 连接器主机的 Windows 服务器的主机名匹配。 有关详细信息,请参阅 SSL 证书
  • 手动替换过期的证书。 转到 ECMA 主机的 “设置” 选项卡以查看证书到期日期。 如果证书已过期,请选择“ 生成证书 ”以创建新证书。 有关分步指南,请参阅 排查测试连接问题

预配代理注册证书

预配代理使用单独的证书在安装过程中向Microsoft混合标识服务(HIS)注册自身。 代理在设置过程中创建此证书,并使用Microsoft Entra令牌将代理和证书注册到 HIS 注册服务。 有关代理如何向 HIS 注册的详细信息,请参阅 代理安装

Important

云同步记录了相关的清理方案:当云同步代理已卸载或停止且证书过期时,代理将永久删除,并且无法再与Microsoft 服务交互。 有关详细信息,请参阅 卸载后从门户中删除代理。 对于本地应用程序预配,如果需要注册证书生存期或恢复过程的指南,请联系Microsoft支持人员。

若要将服务中断的风险降到最低:

  • 通过Microsoft Entra 管理中心定期监视代理运行状况。
  • 在两年自签名证书到期之前规划更换 ECMA 连接器主机证书。
  • 对于生产部署,请将自签名 ECMA 连接器主机证书替换为受信任的 CA 颁发的证书。

高可用性

为高可用性/故障转移方案提供了以下信息。

对于使用 ECMA 连接器的本地应用:建议为每个数据中心配置一个主动代理和一个被动代理(已配置但停止使用,且未分配给 Microsoft Entra 中的企业应用)。

执行故障转移时,建议执行以下操作:

  1. 停止活跃代理(A)。
  2. 从企业应用程序取消分配代理 A。
  3. 重启被动代理(B)。
  4. 将代理 B 分配到企业应用程序。

ECMA 连接器的高可用性示意图。

对于使用 SCIM 连接器的本地应用:建议每个应用程序有两个活动代理。

SCIM 连接器的高可用性示意图。

预配代理问题

此处回答了一些常见问题。

如何查看预配代理的版本?

  1. 登录到安装预配代理的 Windows 服务器。
  2. 转到 控制面板>卸载或更改程序
  3. 查找与 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 租户通信,并且没有防火墙阻止代理所需的端口?

还可以检查所有必需的端口是否处于打开状态。

如何卸载预配代理?

  1. 登录到安装预配代理的 Windows 服务器。
  2. 转到 控制面板>卸载或更改程序
  3. 卸载以下程序:
  • Microsoft Entra Connect 预配代理
  • Microsoft Entra Connect 代理更新程序
  • Microsoft Entra Connect 预配代理包

后续步骤