Windows Server 的 AD FS 要求

以下是在部署 AD FS 时必须符合的各种要求:

证书要求

证书在保护联合服务器、Web 应用程序代理、声明感知应用程序和 Web 客户端之间的通信方面发挥着最关键的作用。 证书的要求会有所不同,具体取决于是设置联合服务器还是代理计算机,如本部分所述。

联合服务器证书

证书类型 要求、支持和需要了解的内容
安全套接字层 (SSL) 证书: 这是一个标准 SSL 证书,用于保护联合服务器和客户端之间的通信。 - 此证书必须是公开信任的* X509 v3 证书。
- 访问任何 AD FS 终结点的所有客户端都必须信任此证书。 强烈建议使用由公共(第三方)证书颁发机构(CA)颁发的证书。 可以在测试实验室环境中的联合服务器上成功使用自签名 SSL 证书。 但是,对于生产环境,我们建议从公共 CA 获取证书。
- 支持 Windows Server 2012 R2 所支持的用于 SSL 证书的任何密钥大小。
- 不支持使用 CNG 密钥的证书。
- 与工作区加入/设备注册服务一起使用时,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 管理控制台进行更改
- 必须通过 CSP 加密提供程序存储并访问 CA 颁发的证书。
- 令牌签名证书不能是使用 CNG 密钥的证书。
- AD FS 不需要外部注册的证书用于令牌签名。
AD FS 在过期之前自动续订这些自签名证书,首先将新证书配置为辅助证书,以允许合作伙伴使用它们,然后在称为自动证书滚动更新的进程中翻转到主证书。建议使用默认自动生成的证书进行令牌签名。
如果组织具有要求为令牌签名配置不同证书的策略,则可以使用 PowerShell 在安装时指定证书(使用 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 管理控制台进行更改
- 必须通过 CSP 加密提供程序存储并访问 CA 颁发的证书。
- 令牌解密/加密证书不能是使用 CNG 密钥的证书。
- 默认情况下,AD FS 生成并使用自己的内部生成的自签名证书进行令牌解密。 AD FS 不需要用于此目的的外部注册证书。
此外,AD FS 会在这些自签名证书过期之前自动续订。
建议使用默认自动生成的证书进行令牌解密。
如果组织具有要求为令牌解密配置不同证书的策略,则可以使用 PowerShell 在安装时指定证书(使用 Install-AdfsFarm cmdlet 的 –DecryptionCertificateThumbprint 参数)。 安装后,可以使用 AD FS 管理控制台或 PowerShell cmdlet Set-AdfsCertificate 和 Get-AdfsCertificate 查看和管理令牌解密证书。
当外部注册的证书用于令牌解密时,AD FS 不会执行自动证书续订。 此过程必须由管理员执行.
- AD FS 服务帐户必须有权访问本地计算机个人存储中令牌签名证书的私钥。 该访问权限是在设置阶段授予的。 如果随后更改令牌签名证书,你还可以使用 AD FS 管理管理单元来授予此访问权限。

谨慎

用于令牌签名和令牌解密/加密的证书对于联合身份验证服务的稳定性至关重要。 管理自己的令牌签名和令牌解密/加密证书的客户应确保这些证书已备份,并在恢复事件期间独立提供。

注释

在 AD FS 中,可以将用于数字签名的安全哈希算法(SHA)级别更改为 SHA-1 或 SHA-256(更安全)。 AD FS 不支持将证书用于其他哈希方法,例如 MD5(与 Makecert.exe 命令行工具一起使用的默认哈希算法)。 作为安全最佳做法,建议对所有签名使用 SHA-256(默认设置)。 建议仅在与不支持使用 SHA-256 通信的产品(如非Microsoft产品或旧版 AD FS)互作的情况下使用 SHA-1。

注释

从 CA 收到证书后,请确保所有证书都导入到本地计算机的个人证书存储中。 你可以使用证书 MMC 管理单元将证书导入到个人存储中。

硬件要求

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

硬件要求 最低要求 建议的要求
CPU 速度 1.4 GHz 64 位处理器 四核,2 GHz
RAM 512 MB 4 GB
磁盘空间 32 GB 100 GB

软件要求

以下 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 或更高版本。

注释

对具有 Windows Server 2003 域控制器的环境的所有支持将在 Windows Server 2003 的扩展支持结束日期之后结束。 强烈建议客户尽快升级其域控制器。 有关Microsoft支持生命周期的其他信息,请访问 此页面 。 对于在特定于 Windows Server 2003 域控制器环境中发现的问题,仅在这些问题涉及安全漏洞的情况下提供修补程序,并且修补程序必须能够在 Windows Server 2003 扩展支持到期之前发布。

注释

AD FS 需要完全可写的域控制器(而不是只读域控制器)才能正常运行。 如果规划的拓扑包含只读域控制器,则该只读域控制器可用于身份验证,但 LDAP 声明处理需要连接到可写域控制器。

域功能级别要求

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

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

架构要求

  • AD FS 不需要对 AD DS 进行架构更改或功能级修改。

  • 若要使用工作区加入功能,必须将 AD FS 服务器加入到的林的架构设置为 Windows Server 2012 R2。

服务帐户要求

  • 任何标准服务帐户都可以用作 AD FS 的服务帐户。 也支持组托管服务帐户托管服务帐户。 这至少需要一个域控制器(建议部署两个或更多个)运行 Windows Server 2012 或更高版本。

  • 若要使 Kerberos 身份验证在已加入域的客户端和 AD FS 之间正常工作,必须在服务帐户上将“HOST/<adfs_service_name>”注册为 SPN。 默认情况下,如果 AD FS 有足够的权限来执行此作,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 集群的概述。 使用它来规划实施。

1-100 个 RP 信任 超过 100 个 RP 信托
1-30 AD FS 节点:WID 受支持 1-30 AD FS 节点:不支持使用 WID - 需要 SQL
超过 30 个 AD FS 节点: 不支持使用 WID - SQL 必需 超过 30 个 AD FS 节点: 不支持使用 WID - SQL 必需

SQL Server

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

浏览器要求

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

  • 必须启用 JavaScript

  • 必须启用 Cookie

  • 必须支持服务器名称指示(SNI)

  • 对于用户证书和设备证书身份验证(工作区加入功能),浏览器必须支持 SSL 客户端证书身份验证

一些关键的浏览器和平台已对呈现和功能进行了验证,下面列出了这些内容的详细信息。 如果浏览器和设备满足上面列出的要求,则此表中未涵盖的浏览器和设备仍受支持:

浏览器 平台
IE 10.0 Windows 7、Windows 8.1、Windows Server 2008 R2、Windows Server 2012、Windows Server 2012 R2
IE 11.0 Windows7、Windows 8.1、Windows Server 2008 R2、Windows Server 2012、Windows Server 2012 R2
Windows Web 身份验证代理 Windows 8.1
Firefox [v21] Windows 7、Windows 8.1
Safari [v7] iOS 6、Mac OS-X 10.7
Chrome [v27] Windows 7、Windows 8.1、Windows Server 2012、Windows Server 2012 R2、Mac OS-X 10.7

重要

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

Cookie

AD FS 创建必须存储在客户端计算机上的基于会话的持久 Cookie,以提供登录、注销、单一登录(SSO)和其他功能。 因此,必须将客户端浏览器配置为接受 Cookie。 用于身份验证的 Cookie 始终是针对发起服务器编写的安全超文本传输协议(HTTPS)会话 Cookie。 如果未将客户端浏览器配置为允许这些 Cookie,AD FS 将无法正常工作。 持久性cookie用于保存声明提供程序的用户选择。 可以在 AD FS 登录页的配置文件中使用配置设置来禁用它们。 出于安全原因,需要对 TLS/SSL 的支持。

Extranet 要求

要为 AD FS 服务提供 Extranet 访问权限,您必须部署 Web 应用程序代理角色服务,将其作为处理身份验证请求并安全传输到 AD FS 服务的 Extranet 角色。 这可以隔离 AD FS 服务终结点,并将所有安全密钥(例如令牌签名证书)与源自 Internet 的请求隔离开。 此外,软 Extranet 帐户锁定等功能需要使用 Web 应用程序代理。 有关 Web 应用程序代理的详细信息,请参阅 Web 应用程序代理。 `

网络要求

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

配置公司防火墙

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

此外,如果需要客户端用户证书身份验证(使用 X509 用户证书进行客户端TLS 身份验证),Windows Server 2012 R2 中的 AD FS 要求在客户端与 Web 应用程序代理之间的防火墙上启用 TCP 端口 49443 入站。 这在 Web 应用程序代理与联合服务器之间的防火墙上不是必需的。

注释

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

配置 DNS

  • 要进行 Intranet 访问,在内部公司网络 (Intranet) 中访问 AD FS 服务的所有客户端必须能够将 AD FS 服务名称(SSL 证书提供的名称)解析为多个或单个 AD FS 服务器的负载均衡器。

  • 对于 Extranet 访问,所有从公司网络 (extranet/internet) 外部访问 AD FS 服务的客户端必须能够将 AD FS 服务名称(SSL 证书提供的名称)解析为多个或单个 Web 应用程序代理服务器的负载均衡器。

  • 要使 Extranet 访问正常工作,DMZ 中的每个 Web 应用程序代理服务器都必须能够将 AD FS 服务名称(SSL 证书提供的名称)解析为 AD FS 服务器或 AD FS 服务器的负载均衡器。 这可以通过外围网络中的备用 DNS 服务器或通过使用 HOSTS 文件更改本地服务器解析来实现。

  • 要在网络内部和网络外部对通过 Web 应用程序代理公开的一部分终结点正常使用 Windows 集成身份验证,必须使用 A 记录(而不是 CNAME)指向负载均衡器。

有关为联合身份验证服务和设备注册服务配置公司 DNS 的信息,请参阅 为联合身份验证服务和 DRS 配置公司 DNS

有关为 Web 应用程序代理配置公司 DNS 的信息,请参阅 步骤 1 中的“配置 DNS”部分:配置 Web 应用程序代理基础结构

有关如何配置群集 IP 地址或群集 FQDN 使用 NLB 的信息,请参阅“指定群集参数”http://go.microsoft.com/fwlink/?LinkId=75282

属性存储要求

AD FS 要求至少使用一个属性存储来对用户进行身份验证,并为这些用户提取安全声明。 有关 AD FS 支持的属性存储的列表,请参阅 属性存储的角色

注释

默认情况下,AD FS 会自动创建“Active Directory”属性存储。 属性存储要求取决于组织是充当帐户合作伙伴(托管联合用户)还是资源合作伙伴(托管联合应用程序)。

LDAP 属性存储

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

还需要 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-Trust

  • SAML 2.0 协议使用 IDPLite、SPLite 和 eGov1.5 配置文件。

  • OAuth 2.0 授权授予配置文件

AD FS 还支持对 Web 应用程序代理支持的任何非声明感知应用程序进行身份验证和授权。

身份验证要求

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

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

  • 使用 Kerberos 和 NTLM 协商进行 Windows 集成身份验证

  • 使用用户名/密码进行表单身份验证

  • 使用映射到 AD DS 中的用户帐户的证书进行身份验证

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

  • 使用用户名/密码进行表单身份验证

  • 使用映射到 AD DS 中的用户帐户的证书进行身份验证

  • 使用接受 Windows 集成身份验证的 WS-Trust 终结点的协商(仅限 NTLM)进行 Windows 集成身份验证。

对于证书身份验证:

  • 扩展到可以使用PIN码保护的智能卡。

  • 用户输入其 PIN 的 GUI 不是由 AD FS 提供的,而是需要作为在使用客户端 TLS 时显示的客户端操作系统的一部分。

  • 智能卡的读取器和加密服务提供商(CSP)必须在浏览器所在的计算机上工作。

  • 智能卡证书必须链接到所有 AD FS 服务器和 Web 应用程序代理服务器上的受信任根目录。

  • 证书必须通过以下任一方法映射到 AD DS 中的用户帐户:

    • 证书使用者名称对应于 AD DS 中的用户帐户的 LDAP 可分辨名称。

    • 证书使用者 Altname 扩展具有 AD DS 中用户帐户的用户主体名称 (UPN)。

若要在 Intranet 中使用 Kerberos 进行无缝 Windows 集成身份验证,

  • 服务名称必须是受信任的站点或本地 Intranet 站点的一部分。

  • 此外,必须在运行 AD FS 场的服务帐户中设置 HOST/<adfs_service_name> SPN。

多重身份验证

AD FS 支持其他身份验证(除了 AD DS 支持的主要身份验证之外),使用提供程序模型,供应商/客户可以生成自己的多重身份验证适配器,管理员可以在登录期间注册和使用这些适配器。

每个 MFA 适配器都必须基于 .NET 4.5 构建。

有关 MFA 的详细信息,请参阅 使用敏感应用程序的其他多重身份验证管理风险

设备身份验证

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

工作场所加入要求

最终用户可以使用 AD FS 将设备加入组织工作区。 AD FS 中的设备注册服务支持此功能。 因此,最终用户可以跨 AD FS 支持的应用程序获得 SSO 的额外优势。 此外,管理员可以通过仅限已加入组织工作区的设备访问应用程序来管理风险。 下面是启用此方案时要满足的以下要求。

  • AD FS 支持将 Windows 8.1 和 iOS 5+ 设备加入工作区

  • 若要使用工作区加入功能,AD FS 服务器加入到的林的架构必须为 Windows Server 2012 R2。

  • AD FS 服务的 SSL 证书的使用者可选名称必须包含 enterpriseregistration 值,后接组织的用户主体名称 (UPN) 后缀,例如 enterpriseregistration.corp.contoso.com。

加密要求

下表提供了有关 AD FS 令牌签名、令牌加密/解密功能的其他加密支持信息:

算法 密钥长度 协议/应用程序/注释
TripleDES – 默认值 192 (支持 192 – 256) - http://www.w3.org/2001/04/xmlenc#tripledes-cbc >= 192 支持用于解密安全令牌的算法。 不支持使用此算法加密安全令牌。
AES128 - http://www.w3.org/2001/04/xmlenc#aes128-cbc 128 支持用于解密安全令牌的算法。 不支持使用此算法加密安全令牌。
AES192 - http://www.w3.org/2001/04/xmlenc#aes192-cbc 192 支持用于解密安全令牌的算法。 不支持使用此算法加密安全令牌。
AES256 - http://www.w3.org/2001/04/xmlenc#aes256-cbc 256 默认值。 支持加密安全令牌的算法。
TripleDESKeyWrap - http://www.w3.org/2001/04/xmlenc#kw-tripledes .NET 4.0+ 支持的所有密钥大小 支持加密用于加密安全令牌的对称密钥的算法。
AES128KeyWrap - http://www.w3.org/2001/04/xmlenc#kw-aes128 128 支持加密用于加密安全令牌的对称密钥的算法。
AES192KeyWrap - http://www.w3.org/2001/04/xmlenc#kw-aes192 192 支持加密用于加密安全令牌的对称密钥的算法。
AES256KeyWrap - http://www.w3.org/2001/04/xmlenc#kw-aes256 256 支持加密用于加密安全令牌的对称密钥的算法。
RsaV15KeyWrap - http://www.w3.org/2001/04/xmlenc#rsa-1_5 1024 支持加密用于加密安全令牌的对称密钥的算法。
RsaOaepKeyWrap - http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p 1024 违约。 支持加密用于加密安全令牌的对称密钥的算法。
SHA1-http://www.w3.org/PICS/DSig/SHA1_1_0.html 用于 AD FS 服务器在工件 SourceId 生成中的使用:在此场景中,STS 使用 SHA1(根据 SAML 2.0 标准中的建议)来为工件 SourceId 创建一个短的160位值。

AD FS web 代理(WS2003 时代的遗留组件)还用于识别“上次更新时间”时间值的更改,从而知道何时从 STS 更新信息。

SHA1withRSA-

http://www.w3.org/PICS/DSig/RSA-SHA1_1_0.html

在 AD FS 服务器验证 SAML AuthenticationRequest 的签名、对项目解析请求或响应签名、创建令牌签名证书时使用。

在这些情况下,SHA256 是默认值,并且仅当合作伙伴(信赖方)不支持 SHA256 且必须使用 SHA1 时,才使用 SHA1。

权限要求

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

另请参阅

Windows Server 2012 R2 中的 AD FS 设计指南