AD FS 配置数据库存储所有表示 Active Directory 联合身份验证服务 (AD FS)(即联合身份验证服务)的单个实例的配置数据。 AD FS 配置数据库定义联合身份验证服务要求标识合作伙伴、证书、属性存储、声明和有关这些关联实体的各种数据的参数集。 可以将此配置数据存储在Microsoft SQL Server® 数据库或 Windows 内部数据库(WID)功能(WID)中,该功能包含在 Windows Server 2012 或更高版本中。
注释
AD FS 配置数据库的整个内容可以存储在 WID 实例或 SQL 数据库的实例中,但不能同时存储在两者中。 这意味着不能有一些联合服务器使用 WID,而另一些服务器则使用 SQL Server 数据库作为 AD FS 配置数据库的同一实例。
可以使用本主题中的以下信息以及 AD FS 部署拓扑注意事项 中提供的内容,了解选择 WID 或 SQL Server 来存储 AD FS 配置数据库的优缺点:
WID 使用关系数据存储,并且没有自己的管理用户界面(UI)。 相反,管理员可以使用 AD FS 管理管理单元、Fsconfig.exe或 Windows PowerShell™ cmdlet 修改 AD FS 配置数据库的内容。
使用 WID 存储 AD FS 配置数据库
可以使用 WID 作为存储创建 AD FS 配置数据库,方法是使用 Fsconfig.exe 命令行工具或 AD FS 联合服务器配置向导。 使用上述任一工具时,可以选择以下任一选项来创建联合服务器拓扑。 其中每个选项都使用 WID 来存储 AD FS 配置数据库:
创建独立联合服务器
在联合服务器场中创建第一个联合服务器
将联合服务器添加到联合服务器场
如果选择独立选项,WID 用于存储 AD FS 配置数据库的单个实例。 此实例不能跨多个联合服务器共享。 它仅适用于测试实验室环境。 有关独立联合服务器选项或如何设置联合服务器的详细信息,请参阅 Stand-Alone 使用 WID 的联合服务器 或 创建 Stand-Alone 联合服务器。
如果选择联合服务器场选项中的第一个联合服务器,则 WID 配置为可伸缩性,以便稍后将其他联合服务器添加到场。 有关部署 WID 场或设置方法的详细信息,请参阅 使用 WID 的联合服务器场 或在 联合服务器场中创建第一个联合服务器
如果选择“添加联合服务器”选项,则 WID 配置为按设置间隔将配置数据库更改复制到新的联合服务器。 有关将联合服务器添加到 WID 场的详细信息,请参阅 使用 WID 的联合服务器场 或 将联合服务器添加到联合服务器场。
注释
使用 WID 部署联合服务器场时,AD FS 的某些功能可能不可用。 若要在配置服务器场时有权访问完整功能集,请考虑改用 Microsoft SQL Server 来存储 AD FS 配置数据库。 有关详细信息,请参阅 AD FS 部署拓扑注意事项。
WID 联合服务器场的工作原理
本部分介绍重要概念,这些概念描述 WID 联合服务器场如何在主联合服务器和辅助联合服务器之间复制数据。 .
主联合服务器
主联合服务器是运行 Windows Server 2012 或更高版本的计算机,它已使用 AD FS 联合服务器配置向导配置联合服务器角色,并且具有 AD FS 配置数据库的读/写副本。 创建主联合服务器的前提是,你使用 AD FS 联合服务器配置向导并选择创建新联合身份验证服务并使该计算机成为场中的第一个联合服务器的选项。 此场中所有其他联合服务器(也称为辅助联合服务器)必须将主联合服务器上所做的更改同步到本地存储的 AD FS 配置数据库的副本。
辅助联合服务器
辅助联合服务器存储主联合服务器中的 AD FS 配置数据库的副本,但这些副本是只读的。 辅助联合服务器通过定期轮询来连接到场中的主联合服务器并与之同步数据,以检查数据是否已更改。 辅助联合服务器存在,用于为主联合服务器提供容错,同时对网络环境中在不同站点中发出的访问请求进行负载均衡。
如何同步 AD FS 配置数据库
由于 AD FS 配置数据库扮演的重要作用,因此可在网络中的所有联合服务器上使用,以在处理请求时(使用网络负载均衡器时)提供容错和负载均衡功能。 但是,要使辅助联合服务器在此容量中提供服务,必须同步存储在主联合服务器上的 AD FS 配置数据库。
将联合服务器添加到场时,将成为辅助联合服务器的新计算机将连接到主联合服务器以复制 AD FS 配置数据库的副本。 从这一点开始,新的联合服务器将继续定期从主联合服务器拉取更新,如下图所示。
每个辅助联合服务器每 5 分钟轮询主联合服务器以检查更改。 可以使用 Windows PowerShell cmdlet 随时调整此默认的五分钟值或强制立即同步。 有关如何执行此作的详细信息,请参阅 使用 Windows PowerShell 进行 AD FS 管理。
WID 同步过程还支持增量传输,以便更高效地传输中间更改。 增量传输过程要求网络上的流量要少得多,传输完成的速度要快得多。
注释
支持将 AD FS 配置数据库从 WID 迁移到 SQL Server 实例。 有关如何执行此作的详细信息,请参阅 AD FS:将 AD FS 配置数据库迁移到 TechNet Wiki 网站上的 SQL Server。
如何管理 AD FS 同步属性
本部分介绍如何查看和编辑 AD FS 配置数据库同步属性。 .
Get-ADFSSyncProperties cmdlet 获取 Active Directory 联合身份验证服务(AD FS)的配置数据库的同步属性。
PS C:\> Get-ADFSSyncProperties
在主 AD FS 服务器上,此 cmdlet 将仅显示角色是主计算机。 在辅助成员上,它将显示配置的其余部分,包括来自主计算机的上次同步的完全限定域名、上次同步状态和时间、轮询持续时间、当前配置的主计算机名称、主计算机端口和辅助计算机的角色。
Set-ADFSSyncProperties cmdlet 修改 Active Directory 联合身份验证服务(AD FS)配置数据库的同步频率。 该 cmdlet 还指定哪个联合服务器是联合服务器场中的主服务器。
注释
如果主联合服务器崩溃并且处于脱机状态,则所有辅助联合服务器将继续按正常方式处理请求。 但是,在将主联合服务器重新联机之前,无法对联合身份验证服务进行新的更改。 还可以使用 Windows PowerShell 提名辅助联合服务器成为主联合服务器。 如果指定新的主服务器,则必须修改剩余的服务器以反映新的主服务器。 在 WID 服务器场中拥有 2 个主节点将影响群集的稳定性,并可能导致数据丢失。
修改场的轮询持续时间
PS C:\> Set-AdfsSyncProperties -PollDuration 3600 -PrimaryComputerName "FederationServerPrimary"
此命令将数据库同步修改为 3600 秒。 该命令会更改主联合服务器。
将服务器从辅助服务器更改为主服务器
PS C:\> Set-AdfsSyncProperties -Role "PrimaryComputer"
此命令将 WID 场中的 AD FS 服务器从辅助服务器更改为主服务器。
将主服务器更改为辅助服务器
PS C:\> Set-AdfsSyncProperties -Role "SecondaryComputer" -PrimaryComputerName "<FQDN of primary server>"
此命令将 WID 场中的主 AD FS 服务器更改为辅助服务器。 必须指定主服务器的完全限定的域名。 如果不这样做,可能会导致并非所有的辅助 AD FS 服务器都无法正确同步。 注意:主服务器必须可通过从辅助服务器的端口 80 上的 HTTP 访问。
有关详细信息,请参阅: Set-AdfsSyncProperties
使用 SQL Server 存储 AD FS 配置数据库
可以使用单个 SQL Server 数据库实例作为存储创建 AD FS 配置数据库,方法是使用 Fsconfig.exe 命令行工具。 将 SQL Server 数据库用作 AD FS 配置数据库比 WID 具有以下优势:
管理员可以利用 SQL Server 的高可用性功能
它为高流量提供额外的性能提升。
它提供 SAML 项目解析和 SAML/WS 联合身份验证令牌重放检测(如下所述)的功能支持。
当 AD FS 配置数据库存储在 SQL 数据库实例中时,术语“主联合服务器”不适用,因为所有联合服务器都可以同样读取和写入使用同一群集 SQL Server 实例的 AD FS 配置数据库,如下图所示。
可以使用 SQL Server 将两台或更多台服务器配置为一个服务器群集,以确保 AD FS 对服务传入客户端请求具有高可用性。 高可用性提供横向扩展体系结构,可以通过添加其他服务器来增加服务器容量。 自动群集故障转移可以缓解单一故障点。
可以使用 SQL 群集技术提供的网络负载均衡和故障转移服务实现高可用性。 有关如何配置 SQL Server 以实现高可用性的详细信息,请参阅 高可用性解决方案概述。
SAML 项目解析
安全断言标记语言 (SAML) 项目解析是基于部分 SAML 2.0 协议的终结点,该协议描述了信赖方如何直接从声明提供方检索令牌。 在解析过程的第一阶段,浏览器客户端会联系资源联合服务器,并向其提供一个工件。 第二阶段,资源联合服务器将项目发送到托管在帐户合作伙伴组织中的某个位置的 SAML 项目终结点 URL,以便解析项目消息。 在最后阶段,帐户联合服务器代表浏览器客户端向联合服务器颁发令牌。
注释
如果你是帐户伙伴组织中的管理员,请确保将 SSL 证书分配或绑定到场中所有帐户联合服务器上的 IIS 中的联合被动 Web 站点 (<ComputerName>\Sites\Default Web Site\adfs\ls),该证书链接到 Windows 根证书程序成员的根证书。 若要避免资源联合服务器通过手动将 SSL 证书添加到本地计算机受信任人证书存储,或无法解析你的组织中发布的项目,这样做是非常重要的。
SAML/WS - 联合身份验证令牌重放检测
术语 令牌重播 是指帐户伙伴组织中的浏览器客户端尝试多次发送从帐户联合服务器接收的相同令牌,以向资源联合服务器进行身份验证的行为。 当用户单击浏览器的 “后退 ”按钮以重新提交身份验证页面时,将发生此行为。
AD FS 提供一项称为 令牌重播检测 的功能,通过该功能,可以检测并丢弃使用同一令牌的多个令牌请求。 启用此功能后,令牌重播检测可确保 WS-Federation 被动配置文件和 SAML WebSSO 配置文件中的身份验证请求的完整性,确保永远不会多次使用同一令牌。 在安全性关注度很高的场合(例如,使用自助服务终端时)应启用此功能。
在展台示例中,用户可以注销所有网站,之后恶意用户可能会尝试使用浏览器历史记录,以便重新提交上一个用户加载的联合身份验证页。 此功能通过存储关于每个合作伙伴帐户成功身份验证的附加信息,来缓解此问题,以便检测令牌重复使用,并阻止多次身份验证尝试的成功。