使用 Microsoft Entra Connect 管理和自定义 AD FS

本文介绍如何使用 Microsoft Entra Connect 管理和自定义 Active Directory 联合身份验证服务 (AD FS)。

你还将了解完全配置 AD FS 场可能需要执行的其他常见 AD FS 任务。 下表列出了这些任务:

任务 说明
管理 AD FS
修复信任 了解如何修复与 Microsoft 365 的联合身份验证信任。
使用备用登录 ID 与 Microsoft Entra ID 联合 了解如何使用备用登录 ID 配置联合身份验证。
添加 AD FS 服务器 了解如何使用额外的 AD FS 服务器扩展 AD FS 场。
添加 AD FS Web 应用程序代理(WAP)服务器 了解如何使用附加的 WAP 服务器扩展 AD FS 场。
添加联合域 了解如何添加联合域。
更新 TLS/SSL 证书 了解如何更新 AD FS 场的 TLS/SSL 证书。
自定义 AD FS
添加自定义公司徽标或插图 了解如何使用公司徽标和插图自定义 AD FS 登录页面。
添加登录说明 了解如何添加登录页面说明。
修改 AD FS 声明规则 了解如何修改各种联合身份验证方案的 AD FS 声明。

管理 AD FS

使用 Microsoft Entra Connect 向导时,可以在最少的用户干预下在 Microsoft Entra Connect 中执行各种 AD FS 相关任务。 在通过运行向导完成 Microsoft Entra Connect 的安装后,可以再次运行向导以执行其他任务。

修复信任

可以使用 Microsoft Entra Connect 检查 AD FS 和 Microsoft Entra ID 信任的当前运行状况,然后采取适当措施以修复信任。 要修复 Microsoft Entra ID 和 AD FS 信任,请执行以下操作:

  1. 从任务列表中选择“修复 Microsoft Entra ID 和 ADFS 信任”。

    用于修复 Microsoft Entra ID 和 AD FS 信任的“其他任务”页面的屏幕截图。

  2. 在“连接到 Microsoft Entra ID”页上,提供你的 Microsoft Entra ID 混合标识管理员凭据,然后选择“下一步”。

    屏幕截图显示了“连接到 Microsoft Entra ID”页,其中包含输入的示例凭据。

  3. 在“远程访问凭据” 页上,输入域管理员的凭据。

    显示“远程访问凭据”页面的屏幕截图,其中包含输入的示例域管理员凭据。

  4. 选择下一步

    Microsoft Entra Connect 会检查证书运行状况,并显示任何问题。

    显示当前证书状态的“证书”页面的屏幕截图。

    “已准备好配置”页会显示为修复信任而将要执行的操作列表。

    此屏幕截图显示了“已准备好进行配置”页,其中包含要执行的操作的列表。

  5. 选择“安装”以修复信任。

注意

Microsoft Entra Connect 只能对自签名的证书进行修复或采取措施。 Microsoft Entra Connect 无法修复第三方证书。

使用 alternateID 与 Microsoft Entra ID 联合

建议使 本地 用户主体名称(UPN)与 用户主体名称保持相同。 如果本地 UPN 使用不可路由的域(例如 Contoso.local) ,或者因本地应用程序依赖项而无法更改,建议设置备用登录 ID。 通过使用备用登录 ID,可以配置登录体验,用户可以在其中使用 UPN 以外的属性(例如电子邮件地址)进行登录。

Microsoft Entra Connect 中 UPN 的选择默认为 Active Directory 中的 userPrincipalName 属性。 如果为 UPN 选择任何其他属性并使用 AD FS 进行联合,Microsoft Entra Connect 会配置 AD FS 作为备用登录 ID。

下图显示了为 UPN 选择不同属性的示例:

显示用于为 UPN 选择不同属性的“Microsoft Entra 登录配置”页面的屏幕截图。

为 AD FS 配置备用登录 ID 包括两个主要步骤:

  1. 配置正确的颁发声明集: Microsoft Entra ID 信赖方信任中的颁发声明规则已修改为使用所选的 UserPrincipalName 属性作为用户的备用 ID。

  2. 在 AD FS 配置中启用备用登录 ID: 已更新 AD FS 配置,以便 AD FS 可以使用备用 ID 查找相应林中的用户。 此配置支持 Windows Server 2012 R2(带 KB2919355)或更高版本上的 AD FS。 如果 AD FS 服务器为 2012 R2,则 Microsoft Entra Connect 会检查是否存在所需的知识库 (KB)。 如果未检测到 KB,则配置完成后会显示警告,如下图所示:

    “配置完成”页面的屏幕截图,显示了 Windows Server 2012 R2 上缺少 KB 的警告。

    如果缺少 KB,可以安装所需的 KB2919355 以修正配置。 然后,可以按照 修复信任 中的说明进行操作。

注意

有关 alternateID 及其手动配置步骤的详细信息,请参阅 配置备用登录 ID

添加 AD FS 服务器

注意

要添加 AD FS 服务器,Microsoft Entra Connect 需要 PFX 证书。 因此,只有使用 Microsoft Entra Connect 配置了 AD FS 场,才能执行此操作。

  1. 选择“部署其他联合身份验证服务器”,然后选择“下一步”。

    用于部署其他联合身份验证服务器的“其他任务”窗格的屏幕截图。

  2. 在“连接到 Microsoft Entra ID”页上,输入你的 Microsoft Entra ID 混合标识管理员凭据,然后选择“下一步”。

    屏幕截图显示了“连接到 Microsoft Entra ID”页,其中包含输入的示例凭据。

  3. 提供域管理员凭据。

    屏幕截图显示了“连接到 Microsoft Entra ID”页,其中包含输入的示例凭据。

  4. Microsoft Entra Connect 要求提供在使用 Microsoft Entra Connect 配置新的 AD FS 场时提供的 PFX 文件的密码。 选择“输入密码”以提供 PFX 文件的密码。

    “域管理员凭据”页面的屏幕截图,其中包含输入的示例凭据。

    此屏幕截图显示了输入 PFX 文件密码后的“指定 SSL 证书”页。

  5. 在“AD FS 服务器” 页上,输入要添加到 AD FS 场的服务器名称或 IP 地址。

    显示“AD FS 服务器”页面的屏幕截图。

  6. 选择“ 下一步”,然后继续完成最终的“配置”页面。

    Microsoft Entra Connect 将服务器添加到 AD FS 场后,将提供验证连接的选项。

    显示“已准备好进行配置”页面的屏幕截图,其中包含选择“安装”后要完成的操作列表。

    显示“安装完成”页面的屏幕截图。

添加 AD FS WAP 服务器

注意

要添加 Web 应用程序代理服务器,Microsoft Entra Connect 需要 PFX 证书文件。 因此,只有在已使用 Microsoft Entra Connect 配置 AD FS 场后,才能执行此操作。

  1. 从可用任务列表中选择“部署 Web 应用程序代理” 。

    部署 Web 应用程序代理

  2. 提供 Azure 混合标识管理员凭据。

    此屏幕截图显示了“连接到 Microsoft Entra ID”页,其中包含输入的示例用户名和密码。

  3. 在“指定 SSL 证书”页上,提供使用 Microsoft Entra Connect 配置 AD FS 场时提供的 PFX 文件的密码。 证书密码

    指定 TLS/SSL 证书

  4. 添加要用作 WAP 服务器的服务器。 由于 WAP 服务器可能未加入域,因此向导会要求为要添加的服务器提供管理凭据。

    管理服务器凭据

  5. 在“代理信任凭据” 页上,提供管理凭据用于配置代理信任和访问 AD FS 场中的主服务器。

    代理信任凭据

  6. 在“已准备好配置 ”页上,向导显示要执行的操作列表。

    显示“已准备好进行配置”页面的屏幕截图,其中包含要执行的操作列表。

  7. 选择“安装”以完成配置。 完成配置后,向导提供验证到服务器的连接性的选项。 选择“验证”以检查连接。

    安装完成

添加联合域

可以使用 Microsoft Entra Connect 轻松添加要与 Microsoft Entra ID 联合的域。 Microsoft Entra Connect 会添加域以用于联合身份验证,并修改声明规则,以便在有多个域与 Microsoft Entra ID 联合时能够正确反映证书颁发者。

  1. 要添加联合域,请选择“添加其他 Microsoft Entra 域”。

    用于选择“添加其他 Microsoft Entra 域”的“其他任务”窗格的屏幕截图。

  2. 在向导的下一页上,提供 Microsoft Entra ID 的混合管理员凭据。

    用于选择“添加其他 Microsoft Entra 域”的“其他任务”窗格的屏幕截图。

  3. 远程访问凭据页上,提供域管理员凭据。

    用于选择“添加其他 Microsoft Entra 域”的“其他任务”窗格的屏幕截图。

  4. 在下一页上,向导将提供可与本地目录联合的 Microsoft Entra 域的列表。 从列表中选择域。

    “其他任务”窗格的屏幕截图,显示了如何添加其他 Microsoft Entra 域。

    选择域后,向导会告知其将采取的进一步操作以及配置产生的影响。 在一些情况下,如果选择的域尚未在 Microsoft Entra ID 中进行验证,向导会帮助验证域。 有关详细信息,请参阅将自定义域名添加到 Microsoft Entra ID

  5. 选择下一步

    已准备好配置”页面列出了 Microsoft Entra Connect 将执行的操作。

    “其他任务”窗格的屏幕截图,显示了如何添加其他 Microsoft Entra 域。

  6. 选择“安装”以完成配置。

注意

已添加的联合域中的用户必须在同步之后才能登录到 Microsoft Entra ID。

自定义 AD FS

以下节提供了有关自定义 AD FS 登录页面时可能必须执行的一些常见任务的详细信息。

若要更改“登录”页上显示的公司徽标,请使用以下 PowerShell cmdlet 和语法。

注意

建议徽标维度为 260 x 35 @ 96 dpi,且文件大小不应超过 10 KB。

Set-AdfsWebTheme -TargetName default -Logo @{path="c:\Contoso\logo.PNG"}

注意

TargetName 参数是必需参数。 随 AD FS 一起发布的默认主题名为“默认”。

添加登录说明

若要将登录页面描述添加到登录页面中,请使用以下 PowerShell cmdlet 和语法。

Set-AdfsGlobalWebContent -SignInPageDescriptionText "<p>Sign-in to Contoso requires device registration. Select <A href='http://fs1.contoso.com/deviceregistration/'>here</A> for more information.</p>"

修改 AD FS 声明规则

AD FS 支持丰富的声明语言,让你用来创建自定义声明规则。 有关详细信息,请参阅声明规则语言的作用

以下部分详细介绍了如何针对与 Microsoft Entra ID 和 AD FS 联合身份验证有关的某些情况编写自定义规则。

属性中存在的值上的不可变 ID 条件

Microsoft Entra Connect 允许指定在对象同步到 Microsoft Entra ID 时用作源定位点的属性。 如果自定义属性中的值非空,可能需要发出不可变的 ID 声明。

例如,可以选择 ms-ds-consistencyguid 作为源定位点的属性,并将 ImmutableID 作为 ms-ds-consistencyguid 发出以防属性具有反对它的值。 如果没有反对属性的值,则发出 objectGuid 作为不可变 ID。 可以按以下部分中所述构造自定义声明规则集。

规则 1:查询属性

c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"]
=> add(store = "Active Directory", types = ("http://contoso.com/ws/2016/02/identity/claims/objectguid", "http://contoso.com/ws/2016/02/identity/claims/msdsconsistencyguid"), query = "; objectGuid,ms-ds-consistencyguid;{0}", param = c.Value);

在此规则中,将从 Active Directory 为用户查询 ms-ds-consistencyguidobjectGuid 的值。 请将应用商店名称更改为 AD FS 部署中可用的适当应用商店名称。 此外,根据对 objectGuidms-ds-consistencyguid 的定义,将声明类型更改为联合的正确声明类型。

此外,通过使用 add 而不使用 issue,避免为实体添加向外发出,并且可以使用这些值作为中间值。 确定要用作不可变 ID 的值后,将在稍后的规则中发出声明。

规则 2: 检查以查看用户是否存在 ms-ds-consistencyguid

NOT EXISTS([Type == "http://contoso.com/ws/2016/02/identity/claims/msdsconsistencyguid"])
=> add(Type = "urn:anandmsft:tmp/idflag", Value = "useguid");

此规则定义名为 idflag 的临时标志,当没有为用户填充的 ms-ds-consistencyguid 时,该标志设置为 useguid。 背后的逻辑是 AD FS 不允许声明为空。 当在规则 1 中添加声明 http://contoso.com/ws/2016/02/identity/claims/objectguidhttp://contoso.com/ws/2016/02/identity/claims/msdsconsistencyguid 时,最终会得到 msdsconsistencyguid 声明(除非为用户填充了值)。 如果未填充该值,在 AD FS 中它就会作为空值出现,并立即删除。 所有对象都具有 objectGuid,因此在执行规则 1 后声明始终存在。

规则 3:如果存在,将 ms-ds-consistencyguid 作为不可变 ID 发出

c:[Type == "http://contoso.com/ws/2016/02/identity/claims/msdsconsistencyguid"]
=> issue(Type = "http://schemas.microsoft.com/LiveID/Federation/2008/05/ImmutableID", Value = c.Value);

这是隐式的 Exist 检查。 如果声明的值存在,将其作为不可变 ID 发出。 之前的示例使用 nameidentifier 声明。 需要将其更改为环境中不可变 ID 的适当声明类型。

规则 4: 如果 ms-ds-consistencyGuid 不存在,将 objectGuid 作为不可变 ID 发出

c1:[Type == "urn:anandmsft:tmp/idflag", Value =~ "useguid"]
&& c2:[Type == "http://contoso.com/ws/2016/02/identity/claims/objectguid"]
=> issue(Type = "http://schemas.microsoft.com/LiveID/Federation/2008/05/ImmutableID", Value = c2.Value);

使用此规则,只需检查临时标志 idflag。 根据该标志的值决定是否发出声明。

注意

这些规则的顺序非常重要。

后续步骤

了解有关用户登录选项的详细信息。