AD 实现多 DC + 多 ADFS 高可用部署

本文详细介绍了如何使用PowerShell在WindowsServer2019环境下部署多台DC服务器,安装ADCS角色以提供证书服务,以及搭建2台ADFS服务器形成高可用的ADFS场。步骤包括网络规划、服务器配置、AD森林与域创建、证书颁发和ADFS服务器的配置。最终,通过DNS解析和证书设置确保了ADFS服务的高可用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

总览

在本篇文章中, 我将记录部署多 DC + 多 ADFS 实现高可用方案的详细步骤, 期间我会尽量使用 PowerShell 来实现相应的动作, 实在找不到命令或者 GUI 更方便的再附截图. 主要步骤分为:

  • 部署 2 台 DC 服务器提供 AD 服务 (AD域名 alian.com)
  • 安装 ADCS 角色为 ADFS 提供证书服务
  • 部署 2 台 ADFS 提供联合身份认证服务 (ADFS场域名: adfs.alian.com)

网络规划

在 VMware Workstation 中先创建一个新的 Virtual Network, 类型为 Host-only 模拟私有内网环境, 为了方便 IP 地址输入, 我们将子网设置为 10.1.1.0, 掩码 255.255.255.0
在这里插入图片描述
启动 4 台 Windows Server 2019 虚拟机, 网卡均使用 VMnet2, 规划 IP 地址:

HostnameIPFQDN
DC110.1.1.11dc1.alian.com
DC210.1.1.12dc2.alian.com
ADFS110.1.1.21adfs1.alian.com
ADFS210.1.1.22adfs2.alian.com

这里启动多台虚拟机的过程可以先装第一台 Windows Server 2019, 安装完成后运行 sysprep 进行通用化处理关机后创建 Snapshot, 随后使用 Snapshot 再启动 3 台虚机加快速度.

部署 DC1

  • 以本地管理员administrator登录系统, 首先修改主机名
> Rename-Computer -NewName "DC1"
# 重启
> Restart-Computer
# 检查主机名
> $env:computername
  • 配置静态 IP 地址
> Get-NetAdapter

Name                      InterfaceDescription                    ifIndex Status       MacAddress             LinkSpeed
----                      --------------------                    ------- ------       ----------             ---------
Ethernet0                 Intel(R) 82574L Gigabit Network Conn...       5 Up           00-0C-29-4E-15-12         1 Gbps

> New-NetIPAddress -InterfaceIndex 5 -IPAddress 10.1.1.11 -PrefixLength 24 -DefaultGateway 10.1.1.1

  • 添加 AD 角色
> Install-WindowsFeature AD-Domain-Services -IncludeManagementTools

Success Restart Needed Exit Code      Feature Result
------- -------------- ---------      --------------
True    No             Success        {Active Directory 域服务, 远程服务器管理工...
  • 创建新的林和名为alian.com的域
> Install-ADDSForest -DomainName alian.com -InstallDNS

SafeModeAdministratorPassword: ************
确认 SafeModeAdministratorPassword: ************

安装完成后系统会自动重启, 重启后第一次进入系统由于需要初始化相关设置, 时间会略长, 大概 5 分钟左右, 进入系统后可以在服务器管理器中看到多出了AD DSDNS 角色
在这里插入图片描述

部署 DC2

  • 和部署 DC1 前面步骤一样, 先改主机名, 固定 IP
> Rename-Computer -NewName "DC2"
> New-NetIPAddress -InterfaceIndex 5 -IPAddress 10.1.1.12 -PrefixLength 24 -DefaultGateway 10.1.1.1
# 这里需要额外设置本地连接的 DNS 服务器指向 DC1
> Set-DnsClientServerAddress -InterfaceIndex 5 -ServerAddresses 10.1.1.11
> Restart-Computer
  • 加入 DC1 的域
> Add-Computer -DomainName alian.com -Credential (Get-Credential "alian.com\administrator") -Restart
# 输入 AD 用户 administrator 密码, 加入成功后自动重启

重启后登录时使用 AD 用户 administrator@alian.com

这时我们也可以在 DC1 中运行 dsa.msc 打开 Active Directory 用户和计算, 在 Computers 中查看到 DC2:
在这里插入图片描述

  • 添加 AD 角色, 提升为 DC
> Install-WindowsFeature AD-Domain-Services -IncludeManagementTools
> Install-ADDSDomainController -Credential (Get-Credntial "alian.com\administrator") -DomainName alian.com -InstallDns

SafeModeAdministratorPassword: ************
确认 SafeModeAdministratorPassword: ************

完成后系统自动重启, 再次检查 DC1 中的 AD 用户和计算机, 可以看到 DC2 已经从 Computers 移动到了 Domain Controllers 中:
在这里插入图片描述

添加 ADCS 角色

由于后面的 ADFS 需要使用 SSL 证书, 我们可以在现有的 DC1 上面添加 ADCS 角色进行自签名的证书颁发

# 添加"证书颁发机构"
> Install-WindowsFeature -Name ADCS-Cert-Authority -IncludeManagementTools
# 指定 CA 设置类型为 "企业 CA"
> Install-AdcsCertificationAuthority `
-CAType EnterpriseRootCa `
-CryptoProviderName "RSA#Microsoft Software Key Storage Provider" `
-KeyLength 2048 `
-HashAlgorithmName SHA1 `
-ValidityPeriod Years `
-ValidityPeriodUnits 10 `
-CACommonName "alian.com Root CA" `
-CADistinguishedNameSuffix "DC=alian,DC=com" `
-Force

上面的命令等同于使用服务器管理器中的 AD CS 配置向导图形界面:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

# 添加"证书颁发机构 Web 注册", 期间会自动添加 IIS 依赖功能, 无需额外添加
> Install-WindowsFeature -Name ADCS-Web-Enrollment -IncludeManagementTools
# 初始化配置
> Install-AdcsWebEnrollment -Force

这一步初始化完成后, 即可打开 IE 浏览器访问 http://alian.com/certsrv/ 使用 IIS 提供的证书服务 Web 界面
在这里插入图片描述

配置证书模板

运行 certsrv 打开证书颁发机构管理工具, 右键点击证书模板-管理
在这里插入图片描述

  • 右键点击Kerberos 身份验证 - 复制模板

  • 请求处理: 允许导出私钥
    在这里插入图片描述

  • 使用者名称: 在请求中提供
    在这里插入图片描述

  • 扩展: 应用程序策略 - 只保留 服务器身份认证
    在这里插入图片描述

  • 常规: 模板显示名称 ADFS模板

  • 确定保存后关闭"证书模板控制台" 返回 certsrv 控制台

  • 右键点击 证书模板 - 新建 - 要颁发的证书模板, 选择ADFS模板确定, 完成证书模板添加操作
    在这里插入图片描述

颁发证书

规划中的两台 ADFS 服务器 FQDN 分别为 adfs1.alian.com 和 adfs2.alian.com, 我们后面会使用负载均衡将他们两个做成高可用, 对外提供访问的域名将会是 adfs.alian.com, 所以我们颁发证书时要制定的对象也应该是 adfs.alian.com

  • 运行 certlm.msc 打开本地计算机证书管理工具
  • 右键点击 个人 - 所有任务 - 申请新证书
    在这里插入图片描述
  • 选择 ADFS模板, 展开详细信息 - 属性
    在这里插入图片描述
  • 常规: 友好名称 adfs.alian.com
  • 使用者(Subject): 使用者名称: 类型: 公用名: adfs.alian.com - 添加
  • 备用名称(Alternative name): 类型: DNS: adfs.alian.com - 添加
    在这里插入图片描述
  • 确定- 关闭属性窗口 - 注册 - 完成在这里插入图片描述
  • 右键点击adfs.alian.com证书 - 所有任务 - 导出
  • 向导中选择"是, 导出私钥" - 设置密码 - 选择导出文件保存到桌面adfs.pfx, 该文件将用于后面的 ADFS 设置

部署 ADFS1

  • 和上面一样, 也是先将当前主机加入到域中
> Rename-Computer -NewName "ADFS1"
> New-NetIPAddress -InterfaceIndex 5 -IPAddress 10.1.1.21 -PrefixLength 24 -DefaultGateway 10.1.1.1
# 设置本地连接的 DNS 主次服务器指向 DC1 和 DC2
> Set-DnsClientServerAddress -InterfaceIndex 5 -ServerAddresses 10.1.1.11, 10.1.1.12
> Restart-Computer
> Add-Computer -DomainName alian.com -Credential (Get-Credential "alian.com\administrator") -Restart
# 输入 AD 用户 administrator 密码, 加入成功后自动重启
  • 重启后以administrator@alian.com域账号登录系统, 安装 ADFS, IIS 角色
> Install-WindowsFeature -Name ADFS-Federation -IncludeManagementTools
> Install-WindowsFeature -Name Web-Server -IncludeManagementTools
  • 打开服务器管理器, 点击通知中的"在此服务器上配置联合身份验证服务"
    在这里插入图片描述
  • 选择"在联合服务器场中创建第一个联合服务器"
    在这里插入图片描述
  • SSL 证书导入上一步在 DC1 中通过 ADCS 颁发的 adfs.pfx 证书文件, 显示名称随便写一个Alian Coporation
    在这里插入图片描述
  • 指定服务账户 - 选择 AD 用户 administrator, 输入密码
    在这里插入图片描述
  • 数据库使用 Windows 内部数据库(WIB), 下一步完成配置
  • 手动重启一下系统

配置 IIS Https

  • 运行inetmgr打开 IIS 管理器
  • 依次展开 ADFS1 - 网站 - Default Web Site
  • 点击右侧编辑网站下方的 绑定 - 添加
  • 类型选择https, SSL 证书选择 adfs.alian.com
    在这里插入图片描述
  • 打开 IE 浏览器, 访问 https://localhost/adfs/ls
    在这里插入图片描述
    由于我们签发的证书的颁发对象是 adfs.alian.com, 所以这里访问 localhost 出现证书错误属于正常现象. 不过由于目前两台 DC 中的 DNS 都还不知道域名adfs.alian.com对应地址, 所以接下来手动先在 DC 的 DNS 中添加 A 类型解析记录

手动添加 DNS 解析记录

  • 返回 DC1 服务器, 运行dnsmgmt.msc打开 DNS 管理器
  • 依次展开 DC1 - 正向查询区域 - alian.com
  • 右键点击alian.com - 新建主机(A 或 AAAA)
  • 名称: adfs, IP 地址: 10.1.1.21, 添加主机
    在这里插入图片描述
    再次返回 ADFS1 服务器中, IE 访问 https://adfs.alian.com/adfs/ls 证书不再报错
    在这里插入图片描述

部署 ADFS2

  • 与部署 ADFS1 前面的步骤相同
> Rename-Computer -NewName "ADFS2"
> New-NetIPAddress -InterfaceIndex 5 -IPAddress 10.1.1.22 -PrefixLength 24 -DefaultGateway 10.1.1.1
# 设置本地连接的 DNS 主次服务器指向 DC1 和 DC2
> Set-DnsClientServerAddress -InterfaceIndex 5 -ServerAddresses 10.1.1.11, 10.1.1.12
> Restart-Computer
> Add-Computer -DomainName alian.com -Credential (Get-Credential "alian.com\administrator") -Restart
# 输入 AD 用户 administrator 密码, 加入成功后自动重启
  • 重启后以administrator@alian.com域账号登录系统, 安装 ADFS, IIS 角色
> Install-WindowsFeature -Name ADFS-Federation -IncludeManagementTools
> Install-WindowsFeature -Name Web-Server -IncludeManagementTools
  • 复制之前颁发过的adfs.pfx到桌面
  • 打开服务器管理器, 点击通知中的提示, 配置联合身份验证服务
  • 注意选择将联合服务器添加到联合服务器场中
    在这里插入图片描述
  • 主联合服务器: adfs.alian.com
    在这里插入图片描述
  • SSL 证书, 导入桌面上的adfs.pfx
    在这里插入图片描述
  • 服务账户仍然使用 AD 中的管理员账号 administrator, 输入密码后一路下一步完成配置
    在这里插入图片描述
  • 重启系统

状态检查

  • 在 ADFS2 上使用命令检查 ADFS 服务的同步情况
> Get-AdfsSyncProperties

LastSyncFromPrimaryComputerName : adfs.alian.com
LastSyncStatus                  : 0
LastSyncTime                    : 2023/3/26 5:05:55
PollDuration                    : 300
PrimaryComputerName             : adfs.alian.com
PrimaryComputerPort             : 80
Role                            : SecondaryComputer
  • 在 ADFS1 上检查
> Get-AdfsSyncProperties

Role
----
PrimaryComputer

> Get-AdfsFarmInformation

CurrentFarmBehavior FarmNodes                          FarmRoles
------------------- ---------                          ---------
                  4 {ADFS2.alian.com, ADFS1.alian.com} {UserState}

附1: 常用 GUI 管理工具打开命令

命令对应工具
dsa.mscActive Directory 用户和计算机
dnsmgmt.mscDNS 管理器
inetmgrIIS 管理器
certtmpl.msc证书模板控制台
certsrv.msc证书颁发机构管理工具
certlm.msc证书 - 本地计算机

附2: 缩写解释

缩写全拼解释
ADActive Directory活动目录
DCDomain Contronller域控制器
ADCSActive Directory Certificate Services活动目录证书服务
CACertificate Authority证书授权
ADFSActive Directory Federation Services活动目录联合身份认证服务
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DexterLien

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值