使用 SQL Server 的旧式 AD FS 联合服务器场

Active Directory 联合身份验证服务(AD FS)的此拓扑不同于使用 Windows 内部数据库(WID)部署拓扑的联合服务器场,因为它不会将数据复制到场中的每个联合服务器。 而场中的所有联合服务器都可以将数据读取和写入一个公共数据库,该数据库存储在企业网络中运行 Microsoft SQL Server 的服务器上。

重要

如果要创建 AD FS 场并使用 SQL Server 存储配置数据,可以使用 SQL Server 2008 和更新版本,包括 SQL Server 2012 和 SQL Server 2014。

部署注意事项

本部分介绍与此部署拓扑关联的预期受众、优势和限制的各种注意事项。

谁应该使用此拓扑?

  • 具有 100 多个信任关系的大型组织,需要为其内部用户和外部用户提供对联合应用程序或服务的单一登录(SSO)访问权限

  • 已使用 SQL Server 并希望利用其现有工具和专业知识的组织

使用此拓扑有什么好处?

  • 支持更多信任关系(超过 100 个)

  • 支持令牌重放检测(安全功能)和工件解析(安全断言标记语言(SAML) 2.0 协议的一部分)

  • 支持 SQL Server 的全部优势,例如数据库镜像、故障转移群集、报告和管理工具

使用此拓扑有什么限制?

  • 默认情况下,此拓扑不提供数据库冗余。 尽管具有 WID 拓扑的联合服务器场会自动复制场中每个联合服务器上的 WID 数据库,但具有 SQL Server 拓扑的联合服务器场仅包含数据库的一个副本

    注释

    SQL Server 支持许多不同的数据和应用程序冗余选项,包括故障转移群集、数据库镜像和多种不同类型的 SQL Server 复制。

Microsoft信息技术(IT)部门使用高安全性(同步)模式下的 SQL Server 数据库镜像和故障转移群集为 SQL Server 实例提供高可用性支持。 SQL Server 事务(对等)和合并复制尚未经过 Microsoft 的 AD FS 产品团队的测试。 有关 SQL Server 的详细信息,请参阅 高可用性解决方案概述选择适当的复制类型

支持的 SQL Server 版本

Windows Server 2012 R2 中的 AD FS 支持以下 SQL Server 版本:

  • SQL Server 2008 / R2

  • SQL Server 2012

  • SQL Server 2014

服务器放置和网络布局建议

与 WID 拓扑的联合服务器场类似,服务器场中的所有联合服务器都配置为使用一个群集域名系统(DNS)名称(表示联合身份验证服务名称)和一个群集 IP 地址作为网络负载均衡(NLB)群集配置的一部分。 这有助于 NLB 主机向单个联合服务器分配客户端请求。 联合服务器代理可用于将客户端请求代理到联合服务器场。

下图显示了虚构的 Contoso Pharmaceuticals 公司如何在公司网络中部署其联合服务器场与 SQL Server 拓扑。 它还演示了公司如何使用对 DNS 服务器的访问权限配置外围网络、使用企业网络 NLB 群集上使用的相同群集 DNS 名称(fs.contoso.com)的附加 NLB 主机,以及两个 Web 应用程序代理(wap1 和 wap2)。

该图显示了虚构的 Contoso Pharmaceuticals 公司如何使用 SQL Server 拓扑在企业网络中部署其联合服务器场。

有关如何配置网络环境以用于联合服务器或 Web 应用程序代理的详细信息,请参阅 AD FS 要求规划 Web 应用程序代理基础结构(WAP)中的“名称解析要求”部分。

SQL Server 场的高可用性选项

在 Windows Server 2012 R2 中,AD FS 有两个新选项可用于支持使用 SQL Server 的 AD FS 场中的高可用性。

  • 支持 SQL Server AlwaysOn 可用性组

  • 支持使用 SQL Server 合并复制实现地理分布式高可用性

本部分介绍每个选项、它们分别解决的问题,以及确定要部署的选项的一些关键注意事项。

注释

使用 Windows 内部数据库(WID)的 AD FS 场在主联合服务器节点上提供读/写访问权限,并在辅助节点上提供只读访问,从而实现基本的数据冗余。  这可以在地理上本地或地理分布式拓扑中使用。

使用 WID 时请注意以下限制:

  • 如果你的信赖方信任数为 100 个或更少,则 WID 场的限制为 30 台联合服务器。
  • WID 场不支持令牌重播检测或项目解析(安全断言标记语言 (SAML) 协议的一部分)。

下表提供了有关使用 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 必需

AlwaysOn 可用性组

概述

AlwaysOn 可用性组是在 SQL Server 2012 中引入的,并提供了一种创建高可用性 SQL Server 实例的新方法。  AlwaysOn 可用性组结合了群集和数据库镜像的元素,以便在 SQL 实例层和数据库层实现冗余和故障转移。  与以前的高可用性选项不同,AlwaysOn 可用性组不需要数据库层上的通用存储(或存储区域网络)。

可用性组由主副本(一组读写主数据库)和一到四个可用性副本(相应的辅助数据库集)组成。  可用性组支持单个读写副本(主副本),以及一到四个只读可用性副本。  每个可用性副本都必须驻留在一个 Windows Server 故障转移群集 (WSFC) 的不同节点上。  有关 AlwaysOn 可用性组的详细信息,请参阅 AlwaysOn 可用性组概述(SQL Server)。

从 AD FS SQL Server 场节点的角度来看,AlwaysOn 可用性组将单个 SQL Server 实例替换为策略/项目数据库。  客户端(AD FS 安全令牌服务)使用可用性组侦听程序连接到 SQL。

下图显示了具有 AlwaysOn 可用性组的 AD FS SQL Server 群集。

该图显示了具有 AlwaysOn 可用性组的 AD FS SQL Server 场。

注释

AlwaysOn 可用性组要求 SQL Server 实例驻留在 Windows Server 故障转移群集(WSFC)节点上。

注释

只有一个可用性副本可以充当自动故障转移目标,其他三个副本依赖于手动故障转移。

关键部署注意事项

如果计划将 AlwaysOn 可用性组与 SQL Server 合并复制结合使用,请记下下面“将 AD FS 与 SQL Server 合并复制配合使用的关键部署注意事项”下所述的问题。  具体而言,包含作为复制订阅服务器的数据库的 AlwaysOn 可用性组发生故障转移时,复制订阅将失败。 若要恢复复制,复制管理员必须手动重新配置订阅服务器。  有关 SQL Server 中具体问题的描述,请参阅复制订阅服务器和 AlwaysOn 可用性组 (SQL Server);有关 AlwaysOn 可用性组和复制选项的总体支持声明,请参阅复制、更改跟踪、变更数据捕获和 AlwaysOn 可用性组 (SQL Server)

将 AD FS 配置为使用 AlwaysOn 可用性组

使用 AlwaysOn 可用性组配置 AD FS 场需要对 AD FS 部署过程进行轻微修改:

  1. 必须先创建要备份的数据库,然后才能配置 AlwaysOn 可用性组。  AD FS 在设置和初始配置新 AD FS SQL Server 场的第一个联合身份验证服务节点时创建其数据库。  作为 AD FS 配置的一部分,必须指定一个 SQL 连接字符串,因此必须配置第一个 AD FS 场节点才能直接连接到 SQL 实例(这只是临时的)。   有关配置 AD FS 场(包括使用 SQL Server 连接字符串配置 AD FS 场节点)的具体指南,请参阅 配置联合服务器

  2. 创建 AD FS 数据库后,将其分配给 AlwaysOn 可用性组,并使用 SQL Server 工具和进程在 可用性组(SQL Server)的创建和配置时创建常见的 TCPIP 侦听器。

  3. 最后,使用 PowerShell 编辑 AD FS 属性以更新 SQL 连接字符串,以使用 AlwaysOn 可用性组侦听器的 DNS 地址。

    用于更新 AD FS 配置数据库的 SQL 连接字符串的示例 PSH 命令:

    PS:\>$temp= Get-WmiObject -namespace root/ADFS -class SecurityTokenService
    PS:\>$temp.ConfigurationdatabaseConnectionstring="data source=<SQLCluster\SQLInstance>; initial catalog=adfsconfiguration;integrated security=true"
    PS:\>$temp.put()
    
    
  4. 用于更新 AD FS 项目解析服务数据库的 SQL 连接字符串的示例 PSH 命令:

    PS:\> Set-AdfsProperties –artifactdbconnection "Data source=<SQLCluster\SQLInstance >;Initial Catalog=AdfsArtifactStore;Integrated Security=True"
    

SQL Server 合并复制

在 SQL Server 2012 中还引入了合并复制,允许具有以下特征的 AD FS 策略数据冗余:

  • 在所有节点上读取和写入功能(而不仅仅是主节点)

  • 以异步方式复制的较小数据量,以避免给系统带来延迟

下图显示了一个使用合并复制的异地冗余 AD FS SQL Server 场(1 个发布服务器,2 个订阅服务器):

使用 SQL 的服务器场

将 AD FS 与 SQL Server 合并复制配合使用的关键部署注意事项(上图中的注释编号)

有关如何将 AD FS 配置为使用 SQL Server 合并复制的更详细说明,请参阅 使用 SQL Server 复制设置地理冗余

另请参阅

规划 AD FS 部署拓扑Windows Server 2012 R2 中的 AD FS 设计指南