准备和部署Active Directory 联合身份验证服务 - 本地密钥信任
本文介绍适用于以下Windows Hello 企业版功能或方案:
Windows Hello 企业版专用于 Windows Server 附带的 Active Directory 联合身份验证服务 (AD FS) 角色。 本地密钥信任部署模型使用 AD FS 进行密钥注册和设备注册。
以下指南介绍了如何使用 Windows 信息数据库 (WID) 作为配置数据库部署 AD FS 的新实例。
WID 非常适合联合 服务器不超过 30 个、 信赖方信任不超过 100 个的环境。 如果环境超过上述任一因素,或者需要提供 SAML 项目解析、 令牌重播检测,或需要 AD FS 作为联合提供程序角色运行,则部署需要使用 SQL 作为配置数据库。
若要使用 SQL 作为配置数据库部署 AD FS,请查看 部署联合服务器场 清单。
新的 AD FS 场应至少有两个联合服务器来实现适当的负载均衡,这可以通过外部网络外围设备或使用 Windows Server 中包含的网络负载均衡角色来实现。
通过安装和 更新 两个 Windows Server 来准备 AD FS 部署。
注册 TLS 服务器身份验证证书
通常,联合身份验证服务是一种面向边缘的角色。 但是,用于 Windows Hello 企业版本地部署的联合身份验证服务和实例不需要 Internet 连接。
AD FS 角色需要联合身份验证服务 的服务器身份验证 证书,并且你可以使用企业 (内部) CA 颁发的证书。 如果要为联合服务器场中的每个节点请求单个证书,则服务器身份验证证书应包含以下名称:
- 使用者名称:联合服务器的内部 FQDN
- 使用者备用名称:联合身份验证服务名称 (例如 sts.corp.contoso.com) 或适当的通配符条目 (例如 *.corp.contoso.com)
联合身份验证服务名称是在配置 AD FS 角色时设置的。 可以选择任意名称,但该名称不得与服务器或主机的名称相同。 例如,可以将主机服务器命名为 adfs 和联合身份验证服务 sts。 在此示例中,主机的 FQDN adfs.corp.contoso.com 联合身份验证服务的 FQDN sts.corp.contoso.com。
还可以为场中的所有主机颁发一个证书。 如果选择此选项,请将使用者名称留 空,并在创建证书请求时在使用者备用名称中包含所有名称。 所有名称应包括服务器场中每个主机的 FQDN 和联合身份验证服务名称。
创建通配符证书时,请将私钥标记为可导出,以便可以在 AD FS 场中的每个联合服务器和 Web 应用程序代理上部署同一证书。 请注意,证书必须是受信任的(链接到受信任的根 CA)。 在节点上成功请求并注册服务器身份验证证书后,可以使用证书管理器控制台将证书和私钥导出到 PFX 文件。 然后,你可以导入 AD FS 场中剩余节点上的证书。
请务必注册证书或将其导入 AD FS 服务器的计算机证书存储区。 此外,还应确保服务器场中的所有节点都具有适当的 TLS 服务器身份验证证书。
AD FS 身份验证证书注册
使用 域管理员 等效凭据登录联合服务器。
- 启动本地计算机 证书管理器 (certlm.msc)
- 在导航窗格中展开 “个人 ”节点
- 右键单击个人。 选择“所有任务请求新证书”>
- 在“开始前”页上选择“下一步”
- 在“选择证书注册策略”页上选择“下一步”
- 在“请求证书”页上,选择“内部 Web 服务器检查”框
- 选择 ⚠“需要更多信息才能注册此证书”。单击此处以配置设置 链接
- 在使用者名称下,从类型列表中选择公用名。 键入托管 AD FS 角色的计算机的 FQDN,然后选择“添加”
- 在备用名称下,从类型列表中选择 DNS。 键入将用于联合身份验证服务的名称 FQDN (sts.corp.contoso.com) 。 此处使用的名称必须与配置 AD FS 服务器角色时使用的名称匹配。 完成后,选择“添加”和“确定”
- 选择 “注册”
服务器身份验证证书应出现在计算机的个人证书存储中。
部署 AD FS 角色
重要提示
在服务器场中的第一个服务器上完成整个 AD FS 配置,然后再向 AD FS 场中添加第二个服务器。 完成后,第二个服务器在添加到 AD FS 场中时会通过共享配置数据库接收配置。
使用 企业管理员 等效凭据登录联合服务器。
- 启动服务器管理器。 在导航窗格中选择“ 本地服务器 ”
- 选择“管理>添加角色和功能”
- 在“开始之前”页上选择“下一步”
- 在“选择安装类型”页上,选择“基于角色或基于功能的安装>下一步”
- 在选择目标服务器页上,选择从服务器池中选择服务器。 从“服务器池”列表和“下一步”中选择联合服务器
- 在“选择服务器角色”页上,选择“Active Directory 联合身份验证服务”和“下一步”
- 在“选择功能”页上选择“下一步”
- 在“Active Directory 联合身份验证服务”页上选择“下一步”
- 选择“ 安装” 以启动角色安装
查看以验证 AD FS 部署
在继续部署之前,请通过检查以下项目来验证部署进度:
- 确认 AD FS 场使用正确的数据库配置
- 确认 AD FS 场具有足够数量的节点,并且已针对预期负载正确进行了负载均衡
- 确认场 中的所有 AD FS 服务器都安装了最新更新
- 确认所有 AD FS 服务器都具有有效的服务器身份验证证书
设备注册服务帐户先决条件
使用组托管服务帐户 (GMSA) 是为支持它们的服务部署服务帐户的首选方法。 GMSA 比普通用户帐户具有安全优势,因为 Windows 处理密码管理。 这意味着密码既长又复杂,并且定期更改。 AD FS 支持 GMSA,应使用它们对其进行配置,以增加安全性。
GSMA 使用位于域控制器上的 Microsoft密钥分发服务 。 在创建 GSMA 之前,你必须先为该服务创建一个根密钥。 如果你的环境正在使用 GSMA,你可以跳过下述步骤。
创建 KDS 根密钥
使用 企业管理员 等效凭据登录域控制器。
启动提升的 PowerShell 控制台并执行以下命令:
Add-KdsRootKey -EffectiveTime (Get-Date).AddHours(-10)
配置 Active Directory 联合身份验证服务角色
使用以下过程配置 AD FS。
使用 域管理员 等效凭据登录到联合服务器。 以下步骤假设你正在配置联合服务器场中的第一个联合服务器。
- 启动服务器管理器
- 选择右上角的通知标志,然后选择“在此服务器上配置联合身份验证服务”
- 在“欢迎”页上,选择“创建第一个联合服务器场>下一步”
- 在“连接到Active Directory 域服务”页上,选择“下一步”
- 在指定服务属性页上,从 SSL 证书列表中选择最近注册或导入的证书。 证书可能以联合身份验证服务命名,例如 sts.corp.contoso.com
- 从“联合身份验证服务名称”列表中选择联合身份验证服务名称
- 在文本框中键入 联合身份验证服务显示名称 。 这是用户登录时看到的名称。 选择“ 下一步”
- 在指定服务帐户页上,选择创建组托管服务帐户。 在“ 帐户名称 ”框中,键入 adfssvc
- 在“指定配置数据库”页上,选择“使用Windows 内部数据库在此服务器上创建数据库”,然后选择“下一步”
- 在“审阅选项”页上,选择“下一步”
- 在“先决条件检查”页上,选择“配置”
- 该过程完成后,选择“ 关闭”
将 AD FS 服务帐户添加到 密钥管理员 组
在Windows Hello 企业版注册期间,公钥在 Active Directory 中用户对象的属性中注册。 为了确保 AD FS 服务可以添加和删除密钥是其正常工作流的一部分,它必须是 密钥管理员 全局组的成员。
使用域 管理员 等效凭据登录到域控制器或管理工作站。
- 打开 Active Directory 用户和计算机
- 在导航窗格中选择 “用户 ”容器
- 在详细信息窗格中右键单击“密钥管理员”,然后选择“属性”
- 选择 “成员 > ”“添加...”
- 在输入要选择的对象名称文本框中,键入 adfssvc。 选择 “确定”
- 选择“确定”以返回到Active Directory 用户和计算机
- 更改为托管 AD FS 角色的服务器并重启它
配置设备注册服务
使用 企业管理员 等效凭据登录到联合服务器。 以下说明假设你正在配置联合服务器场中的第一个联合服务器。
- 打开 AD FS 管理控制台
- 在导航窗格中,展开服务。 选择 “设备注册”
- 在详细信息窗格中,选择“配置设备注册”
- 在 “配置设备注册 ”对话框中,选择 “确定”
从 AD FS 触发设备注册时,会在 Active Directory 配置分区中创建服务连接点 (SCP) 。 SCP 用于存储 Windows 客户端将自动发现的设备注册信息。
查看以验证 AD FS 和 Active Directory 配置
在继续部署之前,请通过检查以下项目来验证部署进度:
- 记录有关 AD FS 证书的信息,并在其过期前至少六周设置续订提醒。 相关信息包括:证书序列号、指纹、公用名、使用者备用名称、物理主机服务器的名称、颁发日期、到期日期以及颁发 CA 供应商 ((如果非Microsoft证书)
- 确认已将 AD FS 服务帐户添加到 KeyAdmins 组
- 确认已启用设备注册服务
其他联合服务器
组织应在联合服务器场中部署多个联合服务器,以实现高可用性。 AD FS 场应具有至少两个联合身份验证服务(大多数组织可能会有更多)。 这主要取决于使用 AD FS 场提供的服务的设备和用户的数量。
服务器身份验证证书
添加到 AD FS 场的每个服务器都必须具有正确的服务器身份验证证书。 请参阅本文档的注册 TLS 服务器身份验证证书部分,以确定服务器认证证书要求。 如前所述,专门用于 Windows Hello 企业版本地部署的 AD FS 服务器可以使用企业服务器身份验证证书,而不是由公共证书颁发机构颁发的服务器身份验证证书。
安装其他服务器
将联合服务器添加到现有 AD FS 场首先需要确保服务器已完全修补,包括支持Windows Hello 企业版部署 https://aka.ms/whfbadfs1703 () 所需的Windows Server 2016更新。 接下来,在附加服务器上安装 Active Directory 联合身份验证服务角色,并将服务器配置为现有服务器场中的附加服务器。
负载均衡 AD FS
许多环境使用硬件设备进行负载平衡。 对于没有硬件负载平衡功能的环境,可以利用 Windows Server 中包括的网络负载平衡功能平衡联合服务器场中的 AD FS 服务器。 在加入 AD FS 场的应进行负载平衡的所有节点上安装 Windows 网络负载平衡功能。
在 AD FS 服务器上安装网络负载平衡功能
使用 企业管理员 等效凭据登录联合服务器。
- 启动服务器管理器。 在导航窗格中选择“ 本地服务器 ”
- 选择“管理”,然后选择“添加角色和功能”
- 在“开始前”页上选择“下一步”
- 在“选择安装类型”页上,选择“基于角色或基于功能的安装”,然后选择“下一步”
- 在选择目标服务器页上,选择从服务器池中选择服务器。 从服务器池列表中选择联合服务器。 选择“ 下一步”
- 在“选择服务器角色”页上,选择“下一步”
- 在“选择功能”页上选择“网络负载均衡”
- 选择“ 安装” 以开始功能安装
为 AD FS 配置网络负载平衡
要对 AD FS 场中的所有节点进行负载平衡,需要先创建一个新的负载均衡群集。 创建群集后,就可以向其中添加新节点了。
使用 管理员 等效凭据登录联合服务器场的节点。
- 从管理工具打开网络负载均衡管理器
- 右键单击“网络负载均衡群集”,然后选择“新建群集”
- 若要连接到要成为新群集一部分的主机,请在“主机”文本框中,键入主机的名称,然后选择“连接”
- 选择要与群集一起使用的接口,然后选择“ 下一步 ” (接口托管虚拟 IP 地址并接收客户端流量以对)
- 在主机参数的优先级(单一主机标识符)中选择一个值。 该参数为每个主机指定一个唯一 ID。 群集的当前成员中优先级数值最低的主机将处理端口规则未涵盖的群集的所有网络流量。 选择“ 下一步”
- 在“ 群集 IP 地址”中,选择“ 添加 ”,然后键入群集中每个主机共享的群集 IP 地址。 NLB 将该 IP 地址添加到所有主机(选定为群集一部分)选定接口上的 TCP/IP 堆栈。 选择“ 下一步”
- 在群集参数中,选择 IP 地址和子网掩码值(对于 IPv6 地址,不需要子网掩码值)。 键入用户将用于访问此 NLB 群集的完整 Internet 名称
- 在 “群集操作模式”中,选择“ 单播 ”以指定应将单播媒体访问控制 (MAC) 地址用于群集操作。 在单播模式下,系统将群集的 MAC 地址分配到计算机的网络适配器,不使用网络适配器的内置 MAC 地址。 我们建议你接受单播默认设置。 选择“ 下一步”
- 在“端口规则”中,选择“编辑”以修改默认端口规则以使用端口 443
其他 AD FS 服务器
- 若要向群集添加更多主机,请右键单击新群集,然后选择“将主机添加到群集”
- 按照配置初始主机时执行的步骤,为其他主机配置主机参数(包括主机优先级、专用 IP 地址和负荷量)。 由于要向已配置的群集添加主机,因此所有群集范围参数保持不变
配置 DNS 进行设备注册
使用域管理员等效凭据登录域控制器或管理工作站。
需要 联合身份验证服务 名称才能完成此任务。 可以通过从 AD FS 管理控制台的操作平移中选择“编辑联合身份验证服务属性”,或使用 (Get-AdfsProperties).Hostname.
AD FS 服务器上的 (PowerShell) 来查看联合身份验证服务名称。
- 打开 DNS 管理控制台
- 在导航窗格中,展开域控制器名称节点和 正向查找区域
- 在导航窗格中,选择具有内部 Active Directory 域名名称的节点
- 在导航窗格中,右键单击域名节点,然后选择 “新建主机 (A 或 AAAA)
- 在名称框中,键入联合身份验证服务名称。 在 IP 地址框中,键入联合身份验证服务器的 IP 地址。 选择 “添加主机”
- 右键单击节点,
<domain_name>
然后选择“ 新建别名 (CNAME) - 在“新建资源记录”对话框中,键入
enterpriseregistration
“别名”框 - 在目标主机 的“完全限定域名 (FQDN) ”框中,键入
federation_service_farm_name.<domain_name_fqdn
,然后选择“确定” - 关闭 DNS 管理控制台
注意
如果林具有多个 UPN 后缀,请确保 enterpriseregistration.<upnsuffix_fqdn>
每个后缀都存在。
配置 Intranet 区域以包括联合身份验证服务
Windows Hello 预配提供了联合身份验证服务网页。 配置 Intranet 区域以包括联合身份验证服务可使用户向使用集成身份验证的联合身份验证服务进行身份验证。 如果不进行该设置,Windows Hello 预配期间到联合身份验证服务的连接将提示用户进行身份验证。
创建 Intranet 区域组策略
使用域管理员等效凭据登录域控制器或管理工作站:
- 启动组策略管理控制台 (
gpmc.msc
) - 展开域,然后在导航窗格中选择“组策略对象”节点
- 右键单击组策略对象,然后选择新建
- 在名称框中键入 Intranet 区域设置 ,然后选择 “确定”
- 在内容窗格中,右键单击“Intranet 区域设置”组策略对象,然后选择“编辑”
- 在导航窗格中,展开“计算机配置”下的“策略”
- 展开“管理模板”>“Windows 组件 > Internet Explorer > Internet 控制面板>安全”页。 打开 站点到区域分配列表
- 选择 “启用 > 显示”。 在值名称列中,键入以 https 开头的联合身份验证服务 url。 在值列中,键入数字 1。 选择“确定”两次,然后关闭组策略管理编辑器
部署 Intranet 区域组策略对象
- 启动组策略管理控制台 (gpmc.msc)
- 在导航窗格中,展开域,右键单击具有 Active Directory 域名的节点,然后选择“ 链接现有 GPO...”
- 在“选择 GPO”对话框中,选择“Intranet 区域设置”或之前创建的Windows Hello 企业版 组策略对象的名称,然后选择“确定”
验证和部署多重身份验证 (MFA)
Windows Hello 企业版要求用户在注册服务之前 (MFA) 执行多重身份验证。 本地部署可以使用 MFA 选项:
- 证书
注意
使用此选项时,必须将证书部署到用户。 例如,用户可以使用其智能卡或虚拟智能卡作为证书身份验证选项。
- AD FS 的非Microsoft身份验证提供程序
- AD FS 的自定义身份验证提供程序
重要提示
从 2019 年 7 月 1 日起,Microsoft将不再为新部署提供 MFA 服务器。 希望要求其用户进行多重身份验证的新客户应使用基于云的Microsoft Entra多重身份验证。 在 7 月 1 日之前激活 MFA 服务器的现有客户将能够像往常一样下载最新版本、将来的更新并生成激活凭据。
有关可用的非Microsoft身份验证方法的信息,请参阅 为 AD FS 配置其他身份验证方法。 若要创建自定义身份验证方法,请参阅 在 Windows Server 中为 AD FS 生成自定义身份验证方法
按照你选择的身份验证提供程序的集成和部署指南将其集成并部署到 AD FS。 确保在 AD FS 身份验证策略中选择身份验证提供程序作为多重身份验证选项。 有关配置 AD FS 身份验证策略的信息,请参阅 配置身份验证策略。
提示
验证 AD FS 配置时,请验证是否需要更新用户代理字符串的配置以支持 Windows 集成身份验证 (WIA) 。 有关详细信息,请参阅 更改 WIASupportedUserAgent 设置。
查看以验证配置
在继续部署之前,请通过检查以下项目来验证部署进度:
- 确认所有 AD FS 服务器都具有有效的服务器身份验证证书。 证书的使用者是主机的公用名 (FQDN) 或通配符名称。 证书的替代名称包含通配符或联合身份验证服务的 FQDN
- 确认 AD FS 场具有足够数量的节点,并且已针对预期负载正确进行了负载均衡
- 确认已重启 AD FS 服务
- 确认为联合身份验证服务创建了 DNS A 记录,所使用的 IP 地址为负载平衡 IP 地址
- 确认已创建并部署 Intranet 区域设置,以防止对联合服务器进行双重身份验证
- 确认已为 AD FS 部署 MFA 解决方案