【经验分享】AD FS部署前,不能不知的几点要求!

北慕城南 提交于 2020-08-17 00:08:04

之前我们为大家介绍AD FS,如果还没看过上一期讲解的看这里:

《AD FS是什么,用在什么场景,原理是什么?》

本期我们继续扩大为大家分享AD FS的企业部署,把部署前的各种要求进行讨论。以下是企业部署任务:

  1. 准备部署 Active Directory 联合身份验证服务 (AD FS),规划AD FS部署。
  2. 如果决定将 Microsoft SQL Server 用于 AD FS 配置存储,请确保部署 SQL Server 的功能实例。
  3. 将计算机加入 Active Directory 域。
  4. 为 AD FS 注册 (SSL) 证书的安全套接字层。
  5. 安装 AD FS 角色服务。
  6. 配置联合服务器。
  7. 可选步骤:使用设备注册服务配置联合服务器 (DRS)。
  8. 将一个主机 (A) 和别名 (CNAME) 资源记录添加到企业域名系统 (联合身份验证服务和 DRS 的 DNS)。
  9. 验证联合服务器是否正常运行。

证书要求

证书在保护联合服务器、Web 应用程序代理、声明-感知应用程序和 Web 客户端之间的通信方面发挥着最重要的作用。证书要求因你设置的是联合服务器还是代理计算机而异,具体取决于此部分中所述。

安全套接字层 (SSL) 证书

这是标准的 SSL 证书,用于保护联合服务器和客户端之间的通信。

  • 此证书必须是公开信任的* X509 v3 证书。
  • 访问任何 AD FS 终结点的所有客户端都必须信任此证书。强烈建议使用由公共 (第三方-方) 证书颁发机构 (CA)颁发的证书。在测试实验室环境中,可以在联合服务器上成功使用自-签名 SSL 证书。但是,对于生产环境,建议从公共 CA 获取证书。
  • 支持 Windows Server 2012 R2 for SSL 证书支持的任何密钥大小。
  • 不支持使用 CNG 密钥的证书。
  • 与 Workplace Join/设备注册服务一起使用时,AD FS 服务的 SSL 证书的使用者可选名称必须包含值 enterpriseregistration,后跟组织的用户主体名称 (UPN) 后缀(例如 enterpriseregistration.contoso.com)。
  • 支持通配符证书。当你创建 AD FS 场时,系统将提示你提供 AD FS 服务的服务名称 (例如, adfs.contoso.com。
  • 强烈建议为 Web 应用程序代理使用相同的 SSL 证书。但在通过 Web 应用程序代理支持 Windows 集成身份验证终结点,并且打开了扩展保护身份验证时,这是必需的,(默认设置)。
  • 此证书的使用者名称用于表示部署 AD FS 的每个实例的联合身份验证服务名称。出于此原因,你可能需要考虑在任何新 CA 上选择一个使用者名称-颁发的证书,该证书最能代表你的公司或组织的合作伙伴的名称。
  • 证书的标识必须与联合身份验证服务名称 (例如 fs.contoso.com)。标识是类型为 dNSName 的使用者可选名称扩展,如果没有使用者可选名称项,则为指定为公用名的使用者名称。证书中可以存在多个使用者可选名称项,前提是其中一项与联合身份验证服务名称匹配。

重要说明:强烈建议在 AD FS 场的所有节点以及 AD FS 场中的所有 Web 应用程序代理上使用相同的 SSL 证书。

服务通信证书

此证书启用 WCF 消息安全机制来保护联合服务器之间的通信。

  • 默认情况下,将 SSL 证书用作服务通信证书。但您也可以选择将其他证书配置为服务通信证书。
  • 重要说明:如果你使用 ssl 证书作为服务通信证书,当 ssl 证书过期时,请确保将续订的 SSL 证书配置为你的服务通信证书。此操作不会自动发生。
  • 此证书必须受使用 WCF 消息安全的 AD FS 的客户端信任。
  • 建议使用由公共(第三方)证书颁发机构 (CA) 颁发的服务器身份验证证书。
  • 服务通信证书不能是使用 CNG 密钥的证书。
  • 此证书可使用 AD FS 管理控制台进行管理。

令牌-签名证书

这是一个标准 X509 证书,用于安全地对联合服务器颁发的所有令牌进行签名。

  • 默认情况下,AD FS 创建具有2048位密钥的自-签名证书。
  • 也支持 CA 颁发的证书,并且可以使用中的 AD FS 管理 "管理单元-进行更改。
  • CA 颁发的证书必须存储 & 通过 CSP 加密提供程序进行访问。
  • 令牌签名证书不能是使用 CNG 密钥的证书。
  • AD FS 不需要外部注册的令牌签名证书。

AD FS 在这些-自签名证书过期之前自动续订这些证书,请首先将新证书配置为辅助证书,以便合作伙伴可以使用这些证书,然后在名为自动证书滚动更新的进程中切换到主证书。建议使用默认的自动生成的令牌签名证书。

如果你的组织有需要为令牌签名配置不同证书的策略,你可以在安装时使用 Powershell 指定证书(使用 Install-Install-adfsfarm cmdlet的–SigningCertificateThumbprint 参数)。安装完成后,可以使用 AD FS 管理控制台或 Powershell cmdlet 设置令牌签名证书(Set-adfscertificate)并获取(Get-adfscertificate)。

如果使用外部注册的证书进行令牌签名,AD FS 不会执行自动证书续订或滚动更新。此过程必须由管理员执行。

若要允许在一个证书即将过期时使用证书滚动更新,可以在 AD FS 中配置辅助令牌签名证书。默认情况下,所有令牌签名证书都在联合元数据中发布,但只有主令牌-签名证书,AD FS 才能实际对令牌进行签名。

令牌-解密/加密证书

这是一个标准 X509 证书,用于对任何传入令牌进行解密/加密。该证书也在联合元数据中发布。

  • 默认情况下,AD FS 创建具有2048位密钥的自-签名证书。
  • 也支持 CA 颁发的证书,并且可以使用中的 AD FS 管理 "管理单元-进行更改。
  • CA 颁发的证书必须存储 & 通过 CSP 加密提供程序进行访问。
  • 解密/加密证书不能是使用 CNG 密钥的证书。
  • 默认情况下,AD FS 生成并使用其自己的、内部生成的-签名证书进行令牌解密。AD FS 不需要外部注册的证书即可实现此目的。

此外,AD FS 会在证书过期之前自动续订这些自-签名证书。

建议使用默认的自动生成的证书进行令牌解密。

如果你的组织有需要为令牌解密配置不同证书的策略,你可以在安装时使用 Powershell 指定证书(使用 Install-Install-adfsfarm cmdlet的-DecryptionCertificateThumbprint 参数)。安装后,可以使用AD FS管理控制台或 Powershell cmdlet 设置(Set-adfscertificate)并查看和管理令牌解密证书(Get-adfscertificate)。

当外部注册的证书用于令牌解密时,AD FS 不会执行自动证书续订。此过程必须由管理员执行。

AD FS 服务帐户必须在本地计算机的个人存储中具有对令牌-签名证书私钥的访问权限。这由安装程序执行。你还可以使用中的 AD FS 管理 "管理单元-来确保此访问权限,前提是你随后将令牌-签名证书。

软硬件要求

硬件要求

以下最低要求和建议的硬件要求适用于 Windows Server 2012 R2 中的 AD FS 联合服务器:

软件要求

以下 AD FS 要求适用于 Windows Server® 2012 R2 操作系统中内置的服务器功能:

  • 对于 extranet 访问,你必须部署 Web 应用程序代理角色服务 - Windows Server® 2012 R2 远程访问服务器角色的一部分。Windows Server® 2012 R2 中的 AD FS 不支持早期版本的联合服务器代理。
  • 不能在同一台计算机上安装联合服务器和 Web 应用程序代理角色服务。

AD DS 要求

域控制器要求

所有用户域中的域控制器和 AD FS 服务器加入到的域中的域控制器必须运行 Windows Server 2008 或更高版本。

备注:

AD FS 需要一个完全可写域控制器才能运行,而不是只读域控制器。如果计划的拓扑包括只读域控制器,则可以使用只读域控制器进行身份验证,但 LDAP 声明处理将需要与可写域控制器建立连接。

域功能级别要求

所有用户帐户域和 AD FS 服务器加入的域必须在 Windows Server 2003 或更高版本的域功能级别上运行。

大多数 AD FS 功能不需要 AD DS 功能-级别修改即可成功运行。但是,如果证书明确映射到 AD DS 中的用户帐户,则 Windows Server 2008 域功能级别或更高版本所必需的是要成功运行客户端证书身份验证。

架构要求

  • AD FS 不需要对 AD DS 进行架构更改或功能-级别修改。
  • 若要使用 Workplace Join 功能,必须将 AD FS 服务器的林的架构设置为 Windows Server 2012 R2。

服务帐户要求

  • 任何标准服务帐户都可用作 AD FS 的服务帐户。也支持组托管服务帐户托管服务帐户。这需要至少一个域控制器(建议部署两个或更多运行 Windows Server 2012 或更高版本的)。
  • 要使 Kerberos 身份验证在域-联接的客户端和 AD FS 之间正常工作,必须在服务帐户上将"主机/< adfs_服务_名称 >"注册为 SPN。默认情况下,如果新的 AD FS 场具有执行此操作的足够权限,则 AD FS 将配置此配置。
  • 每个用户域中都必须有 AD FS 的服务帐户,该帐户包含对 AD FS 服务进行身份验证的用户。

域要求

  • 所有 AD FS 服务器都必须加入 AD DS 域。
  • 在场中的所有 AD FS 服务器都必须部署在单个域中。
  • AD FS 服务器加入到的域必须信任包含向 AD FS 服务进行身份验证的用户的每个用户帐户域。

多林要求

  • AD FS 服务器加入到的域必须信任包含向 AD FS 服务进行身份验证的用户的每个用户帐户域或林。
  • 每个用户域中都必须有 AD FS 的服务帐户,该帐户包含对 AD FS 服务进行身份验证的用户。

配置数据库

下面是根据配置存储的类型应用的要求和限制:

WID

  • 如果有100个或更少的信赖方信任,则 WID 场的限制为30个联合服务器。
  • WID 配置数据库中不支持 SAML 2.0 中的项目解析配置文件。WID 配置数据库不支持令牌重播检测。此功能仅在 AD FS 充当联合身份验证提供程序并使用来自外部声明提供程序的安全令牌的情况下才使用。
  • 只要服务器的数量不超过30个,就支持在不同的数据中心部署 AD FS 服务器进行故障转移或地理负载平衡。

下表简要介绍了如何使用 WID 场。使用它来规划你的实现。

SQL Server

对于 Windows Server 2012 R2 中的 AD FS,可以使用 SQL Server 2008 及更高版本。

浏览器要求

通过浏览器或浏览器控件执行 AD FS 身份验证时,浏览器必须符合遵守以下要求:

  • 必须启用 JavaScript
  • Cookie 必须打开
  • 必须支持服务器名称指示 (SNI)
  • 对于用户证书 & 设备证书身份验证 (工作区加入功能),浏览器必须支持 SSL 客户端证书身份验证

几个关键浏览器和平台已经完成了呈现和功能的验证,详细信息如下所示。如果未在此表中包含的浏览器和设备满足上面列出的要求,则仍受支持:

重要

Firefox的已知问题:使用设备证书标识设备的 Workplace Join 功能在 Windows 平台上不起作用。Firefox 当前不支持使用预配到 Windows 客户端上的用户证书存储的证书来执行 SSL 客户端证书身份验证。

Cookie

AD FS 将创建基于会话-和永久 cookie,这些 cookie 必须存储在客户端计算机上,以便在中提供签名-,在-SSO (上签署-out、single sign)和其他功能。因此,必须将客户端浏览器配置为接受 Cookie。

用于身份验证的 cookie 始终是为原始服务器编写的安全超文本传输协议 (HTTPS) 会话 cookie。如果未将客户端浏览器配置为允许使用这些 Cookie,则 AD FS 不能正常工作。永久 Cookie 用于保留用户选择的声明提供方。

你可以使用配置文件中的配置设置来禁用这些配置文件,以便在页面中 AD FS sign-。出于安全考虑,需要支持 TLS/SSL。

网络要求

适当地配置以下网络服务对于在贵组织中成功部署 AD FS 至关重要:

配置企业防火墙

位于 Web 应用程序代理和联合服务器场之间的防火墙以及客户端和 Web 应用程序代理之间的防火墙都必须启用 TCP 端口 443 入站。

此外,如果客户端用户证书身份验证 (需要使用 X509 用户证书的 clientTLS authentication),则在 Windows Server 2012 R2 中 AD FS 需要在客户端和 Web 应用程序代理之间的防火墙上启用 TCP 端口49443。无需在 Web 应用程序代理和联合服务器之间的防火墙上执行此操作。

备注:

还应确保 AD FS 和 Web 应用程序代理服务器上的任何其他服务不使用端口49443。

配置 DNS

  • 对于 intranet 访问,访问内部企业网络 (intranet) 内 AD FS 服务的所有客户端必须能够将 SSL 证书提供的 AD FS 服务名称 () 到 AD FS 服务器或 AD FS 服务器的负载均衡器。
  • 对于 extranet 访问,从企业网络外部访问 AD FS 服务 (extranet/internet) 的所有客户端必须能够将 SSL 证书提供的 AD FS 服务名称 (名称解析) 到 Web 应用程序代理服务器或 Web 应用程序代理服务器的负载均衡器。
  • 要使 extranet 访问正常运行,DMZ 中的每个 Web 应用程序代理服务器都必须能够解析 AD FS 服务名称 (SSL 证书提供的名称) 到 AD FS 服务器或 AD FS 服务器的负载均衡器。这可以通过使用外围网络中的备用 DNS 服务器或通过使用 HOSTS 文件更改本地服务器解析来实现。
  • 若要使 Windows 集成身份验证在网络内部和网络外部使用,以通过 Web 应用程序代理公开的终结点子集,必须使用 A 记录 (不) CNAME,以指向负载均衡器。

特性存储

AD FS 要求至少使用一个属性存储来对用户进行身份验证,并为这些用户提取安全声明。

备注:

默认情况下,AD FS 会自动创建 "Active Directory" 特性存储。属性存储要求取决于你的组织是否充当帐户伙伴 (承载联合用户) 或资源伙伴(托管联合应用程序)。

LDAP 特性存储

当你使用其他轻型目录访问协议 (LDAP)基于 -的特性存储时,你必须连接到支持 Windows 集成身份验证的 LDAP 服务器。必须采用如 RFC 2255 中所述的 LDAP URL 格式编写 LDAP 连接字符串。

还要求 AD FS 服务的服务帐户有权在 LDAP 特性存储中检索用户信息。

SQL Server 特性存储

若要使 Windows Server 2012 R2 中的 AD FS 成功运行,承载 SQL Server 特性存储的计算机必须 Microsoft SQL Server 2008 或更高版本运行。使用基于 SQL-的特性存储时,还必须配置连接字符串。

自定义特性存储

你可以开发自定义属性存储来启用高级方案。

  • 内置于 AD FS 的策略语言可以引用自定义属性存储,以便可以增强以下任何方案。
  • 创建本地身份验证的用户的声明。
  • 补充外部身份验证的用户的声明。
  • 授权用户获取令牌。
  • 授权服务,以获取用户行为的令牌。
  • 在 AD FS 颁发给信赖方的安全令牌中发出额外的数据。
  • 所有自定义属性存储都必须在 .NET 4.0 或更高版本之上构建。

使用自定义特性存储时,可能还需要配置连接字符串。在这种情况下,可以输入所选的自定义代码,以便能够连接到自定义特性存储。此情况下的连接字符串是一组名称/值对,这些值对被解释为自定义特性存储的开发人员实现的。

应用程序

AD FS 支持使用以下协议-感知应用程序的声明:

  • WS-联合
  • WS-信任
  • SAML 2.0 协议,使用 IDPLite、SPLite & eGov 1.5 配置文件
  • OAuth 2.0 授权授权配置文件

AD FS 还支持对任何非-声明-识别 Web 应用程序代理支持的应用程序的身份验证和授权。

身份验证

AD DS 身份验证 (主要身份验证)

对于 intranet 访问,支持以下 AD DS 标准身份验证机制:

  • 使用协商的 Windows 集成身份验证 & NTLM
  • 使用用户名/密码进行 Forms 身份验证
  • 使用映射到 AD DS 中的用户帐户的证书进行证书身份验证

对于 extranet 访问,支持以下身份验证机制:

  • 使用用户名/密码进行 Forms 身份验证
  • 使用映射到 AD DS 中的用户帐户的证书进行证书身份验证
  • 使用协商 (的 Windows 集成身份验证仅适用于接受 Windows 集成身份验证的 WS-信任终结点)。

对于证书身份验证:

  • 扩展到可固定受保护的智能卡。
  • 用于用户输入其 pin 的 GUI 不是由 AD FS 提供的,并且必须是使用客户端 TLS 时所显示的客户端操作系统的一部分。
  • 智能卡的读取器和加密服务提供程序 (CSP) 必须在浏览器所在的计算机上正常工作。
  • 智能卡证书必须链接到所有 AD FS 服务器和 Web 应用程序代理服务器上的受信任的根。
  • 必须通过以下方法之一将该证书映射到 AD DS 中的用户帐户:
  • 证书使用者名称对应于 AD DS 中的用户帐户的 LDAP 可分辨名称。
  • 证书使用者 altname 扩展具有 AD DS 中用户帐户的用户主体名称 (UPN)。

对于 intranet 中使用 Kerberos 的无缝 Windows 集成身份验证:

  • 服务名称必须是受信任的站点或本地 Intranet 站点的一部分。
  • 此外,必须在运行 > 场的服务帐户上设置主机/< adfs_服务_名称 AD FS SPN。

多因素身份验证

AD FS 支持除主要身份验证之外的其他身份验证 (AD DS) 使用提供程序模型,因此供应商/客户可以构建自己的多-因素身份验证适配器,管理员可以在登录期间注册并使用该适配器。

每个 MFA 适配器都必须构建在 .NET 4.5 之上。

设备身份验证

AD FS 支持设备身份验证,使用设备注册服务在加入其设备的最终用户工作区的操作过程中设置的证书。

工作区&权限

工作区加入要求

最终用户可以通过工作区将其设备加入到使用 AD FS 的组织。AD FS 中的设备注册服务支持此项。因此,最终用户可以在 AD FS 所支持的应用程序中获得 SSO 的额外权益。此外,管理员还可以通过将对应用程序的访问权限限制为已加入到组织的工作区的设备来管理风险。若要启用此方案,需要满足以下要求。

权限要求

执行安装和初始配置 AD FS 的管理员必须在本地域(即联合服务器加入到的域)中具有域管理员权限。

总结

前面我们为大家梳理了ADFS企业部署的任务与顺序,但为了顺利部署,我们仍然需要满足诸多要求。今天把要求整理给大家,下期我们再来探索部署前的准备与部署,大家敬请期待!

更多优质文章

【运维探讨】如何建设合理、可落地、持续发展的云管平台?

AD FS是什么,用在什么场景,原理是什么?

这里有一份关于系统架构知识的汇总 ,请查收...

【并发操作】协程,线程,进程是什么,在python中怎么应用?

恭喜!蓝鲸DevOps平台助力中国人保财险通过DevOps持续交付标准3级!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!