AD FS 配置数据库的角色

AD FS 配置数据库存储所有表示 Active Directory 联合身份验证服务 (AD FS)(即联合身份验证服务)的单个实例的配置数据。 AD FS 配置数据库定义联合身份验证服务识别伙伴、证书、属性存储、声明和有关这些相关联实体的各种数据所需的参数集。 你可以将该配置数据存储在 Microsoft SQL Server® 数据库中,或存储在 Windows Server 2012 或更高版本随附的 Windows 内部数据库 (WID) 功能中。

注意

AD FS 配置数据库的全部内容可以存储在 WID 实例中或 SQL 数据库的实例中,但不能同时存储在这两者中。 这意味着你无法对 AD FS 配置数据库的同一个实例拥有某些使用 WID 的联合服务器和其他使用 SQL Server 数据库的服务器。

你可以使用本主题中的以下信息以及 AD FS 部署拓扑注意事项中提供的内容来了解有关选择 WID 或 SQL Server 存储 AD FS 配置数据库的优缺点:

WID 使用关系型数据存储,并不具有自己的管理用户界面 (UI)。 相反,通过使用“AD FS 管理”管理单元、Fsconfig.exe 或 Windows PowerShell™ cmdlet,管理员可以修改 AD FS 配置数据库的内容。

使用 WID 存储 AD FS 配置数据库

你可以通过使用 Fsconfig.exe 命令行工具或 AD FS 联合服务器配置向导,将 WID 作为存储来创建 AD FS 配置数据库。 当你使用这些工具中的任何一个时,可以选择以下任一选项来创建你的联合服务器拓扑结构。 上述的每个选项将 WID 用于存储 AD FS 配置数据库:

  • 创建独立联合服务器

  • 在联合服务器场中创建第一个联合服务器

  • 将联合服务器添加到联合服务器场

如果你选择“独立”选项,则 WID 用于存储 AD FS 配置数据库的单个实例。 不能跨多个联合服务器共享此实例。 它仅适用于测试实验室环境。 有关“独立联合服务器”选项或如何设置其中一个服务器的详细信息,请参阅使用 WID 的独立联合服务器创建独立联合服务器

如果你在联合服务器场选项中选择第一个联合服务器,则 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 配置数据库的副本。 从这一刻起,新的联合服务器继续从主联合服务器上定期提取更新,如下图中所示。

AD FS configuration

每个辅助联合服务器每五分钟向主联合服务器轮询更改。 你可以调整此五分钟的默认值,也可以通过使用 Windows PowerShell cmdlet 随时强制进行即时同步。 有关如何执行此操作的详细信息,请参阅借助 Windows PowerShell 的 AD FS 管理

WID 同步过程还支持用于中间更改的更高效传输的增量传输。 增量传输过程需要在网络上大大降低流量,这样传输将完成得更快。

注意

支持从 WID 到 SQL Server 实例的 AD FS 配置数据库的迁移。 若要详细了解如何执行此操作,请参阅 TechNet Wiki 站点上的 AD FS:将 AD FS 配置数据库迁移到 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 指定辅助联合服务器成为主联合服务器。 如果指定新的主服务器,则必须修改剩余的服务器以反映新的主服务器。 让 2 个主服务器使用一个 WID 场会影响场的稳定性,可能会丢失数据。

修改场的轮询持续时间

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 配置数据库

你可以使用 Fsconfig.exe 命令行工具将单个 SQL Server 数据库实例用作存储,并使用该实例创建 AD FS 配置数据库。 使用 SQL Server 数据库作为 AD FS 配置数据库,通过 WID 提供以下优势:

  • 管理员可以利用 SQL Server 的高可用性功能

  • 它为高流量提供额外的性能增加。

  • 它提供 SAML 项目解析和 SAML/WS 联合身份验证令牌重放检测(如下所述)的功能支持。

当 AD FS 配置数据库存储在 SQL 数据库实例中时,术语“主联合服务器”不适用,因为所有联合服务器可以平等地在 AD FS 配置数据库中读取和写入数据,该数据库使用同一个群集 SQL Server 实例,如下图所示。

AD FS roles

你可以使用 SQL Server 配置两台或多台服务器作为服务器群集一起工作,以确保 AD FS 高度可用,从而处理传入的客户端请求。 高可用性提供横向扩展体系结构,在该结构中你可以通过添加其他服务器提高服务器容量。 通过自动群集故障转移缓解单点故障。

你可以通过使用网络负载平衡和 SQL 群集技术所提供的故障转移服务实现高可用性。 若要详细了解如何配置 SQL Server 以实现高可用性,请参阅高可用性解决方案概述

SAML 项目解析

安全断言标记语言 (SAML) 项目解析是基于部分 SAML 2.0 协议的终结点,该协议描述了信赖方如何直接从声明提供方检索令牌。 在解析过程的第一个阶段,浏览器客户端与资源联合服务器联系,并为其提供一个项目。 在第二个阶段,资源联合服务器将项目发送到 SAML 项目终结点 URL,为了解析该项目消息,该 URL 托管于帐户伙伴组织中的某个位置。 在最后阶段,帐户联合服务器代表浏览器客户端将令牌颁发给联合服务器。

注意

如果你是帐户伙伴组织中的管理员,请确保将 SSL 证书分配或绑定到场中所有帐户联合服务器上的 IIS 中的联合被动 Web 站点 (<ComputerName>\Sites\Default Web Site\adfs\ls),该证书链接到 Windows 根证书程序成员的根证书。 若要避免资源联合服务器通过手动将 SSL 证书添加到本地计算机受信任人证书存储,或无法解析你的组织中发布的项目,这样做是非常重要的。

SAML/WS - 联合身份验证令牌重放检测

术语令牌重放是指在帐户伙伴组织中的浏览器客户端尝试将其从帐户联合服务器收到的同一个令牌进行多次发送,以对资源联合服务器进行身份验证的操作。 在用户单击他们浏览器的“返回”按钮时,会执行此操作以尝试重新提交身份验证页面

AD FS 提供称为令牌重放检测的功能,通过此功能,可检测使用相同令牌的多个令牌请求,然后丢弃这些令牌。 当启用此功能时,令牌重放检测通过确保永远不会多次使用同一个令牌,来保护 WS 联合身份验证被动配置文件和 SAML WebSSO 配置文件中身份验证请求的完整性。 应在对安全有很高要求的情况下启用此功能,例如使用展台时。

在展台示例中,用户可以从所有网站注销,并且以后恶意用户可以尝试使用浏览器历史记录,以便重新提交前一个用户加载的联合身份验证页面。 此功能通过存储有关每个由帐户伙伴组织成功完成的身份验证的其他信息,以便检测后续令牌的重放,并防止来自已成功验证的多个身份验证尝试,从而缓解这一问题。