VMware vCenter Server 8.0 接入 Windows Server 2022 AD 域:LDAPS 身份源与权限配置

本文专门介绍如何将 VMware vCenter Server 8.0 接入 Windows Server 2022 Active Directory,使用 AD 账号统一登录 vSphere Client,并通过 AD 安全组完成 vCenter 权限授权。

本文采用的方案是:

1
2
3
4
5
6
7
8
9
Windows Server 2022 AD DS + DNS

LDAPS / TCP 636

vCenter Active Directory over LDAP Identity Source

AD 用户 / AD 安全组

vCenter Role / Permission

如果 VCSA 尚未安装,请先阅读:《VMware vCenter Server Appliance 8.0 安装部署教程:从 ESXi 到 VCSA》

序言

VCSA 安装完成后,默认已经拥有一套自己的认证体系:

1
vSphere Single Sign-On

典型管理员账号为:

1
administrator@vsphere.local

这套账号可以独立于 Windows 域工作,很适合用作 vCenter 的本地应急管理入口。

但在企业或长期实验环境中,如果每个管理员都单独维护一套 vCenter 本地账号,会带来明显问题:

  • 人员入离职需要单独维护;
  • 密码策略无法统一;
  • 权限组难以与企业组织架构保持一致;
  • 审计和账号生命周期管理变复杂。

因此,更合理的方案是:

1
2
身份认证交给 Active Directory
权限控制交给 vCenter RBAC

也就是让 AD 回答:

1
“你是谁?”

再让 vCenter 回答:

1
“你能做什么?”

一、先理解两个“域”

这是接入 AD 时最容易混淆的地方。

假设环境中有:

1
2
Windows AD 域:lab.example.com
vSphere SSO 域:vsphere.local

它们不是一回事。

用途
lab.example.com Windows Server 2022 Active Directory
vsphere.local vCenter 内部 Single Sign-On

不要因为准备接入 AD,就把 VCSA 的 SSO 域也设置成:

1
lab.example.com

推荐保留:

1
administrator@vsphere.local

作为不依赖 AD、DNS 身份源和 LDAPS 的紧急管理账号。

二、示例环境

本文使用:

项目 配置
AD DNS 域 lab.example.com
AD NetBIOS 域 LAB
域控制器 dc01.lab.example.com
DC IP 192.168.10.10
VCSA vcsa01.lab.example.com
VCSA IP 192.168.10.20
vSphere SSO 域 vsphere.local
LDAP 查询账号 svc-vcenter-ldap@lab.example.com
vSphere 管理员组 GG-vSphere-Admins

2.1 认证拓扑

flowchart LR
    USER["管理员<br/>mario@lab.example.com"]
    VC["vCenter Server 8.0"]
    DC["Windows Server 2022<br/>AD DS + DNS + LDAPS"]
    GROUP["AD Group<br/>GG-vSphere-Admins"]
    ROLE["vCenter Role<br/>Administrator"]

    USER -->|"登录"| VC
    VC -->|"LDAPS 636 查询身份"| DC
    DC -->|"用户 / 组信息"| VC
    USER --> GROUP
    GROUP -->|"vCenter Permission"| ROLE

三、AD 接入前的基础条件

在配置 vCenter 身份源之前,必须先保证:

1
2
3
4
5
DNS 正确
时间正确
LDAPS 正常
证书正常
服务账号正常

其中任何一项出错,都可能表现成一句非常朴素的:

1
Can't contact LDAP server

然后把真正的问题藏得很好。

四、准备 Windows Server 2022 AD 域

如果 AD 域已经存在,可以直接跳到 DNS、时间和 LDAPS 检查。

4.1 给域控制器配置固定 IP

示例:

1
2
3
4
5
服务器名称:DC01
IP:192.168.10.10
掩码:255.255.255.0
网关:192.168.10.1
首选 DNS:192.168.10.10

4.2 安装 AD DS 与 DNS

PowerShell:

1
Install-WindowsFeature AD-Domain-Services,DNS -IncludeManagementTools

创建新林:

1
2
3
4
Install-ADDSForest `
-DomainName "lab.example.com" `
-DomainNetbiosName "LAB" `
-InstallDns

按照提示设置 DSRM 密码并重启。

五、DNS 是 AD 接入的前置依赖

5.1 VCSA 应使用内部 AD DNS

本文推荐:

1
2
3
VCSA DNS:192.168.10.10
ESXi DNS:192.168.10.10
管理终端 DNS:能够查询 192.168.10.10

不要让 VCSA 只使用:

1
2
8.8.8.8
1.1.1.1

否则公网域名可能解析得非常开心,但内部域名却找不到:

1
2
3
dc01.lab.example.com
vcsa01.lab.example.com
_lab._tcp.dc._msdcs.lab.example.com

5.2 外网 DNS 应使用转发器

让 Windows DNS 处理内部域,再把互联网查询转发出去。

例如:

1
Set-DnsServerForwarder -IPAddress 1.1.1.1,8.8.8.8

实际地址请替换成企业或所在地可靠的上游 DNS。

5.3 创建反向查找区域

PowerShell:

1
2
3
Add-DnsServerPrimaryZone `
-NetworkId "192.168.10.0/24" `
-ReplicationScope "Domain"

5.4 创建 VCSA A / PTR

1
2
3
4
5
6
Add-DnsServerResourceRecordA `
-Name "vcsa01" `
-ZoneName "lab.example.com" `
-IPv4Address "192.168.10.20" `
-CreatePtr `
-TimeToLive 01:00:00

5.5 验证解析

1
2
3
Resolve-DnsName vcsa01.lab.example.com
Resolve-DnsName 192.168.10.20 -Type PTR
Resolve-DnsName dc01.lab.example.com

预期:

1
2
vcsa01.lab.example.com → 192.168.10.20
192.168.10.20 → vcsa01.lab.example.com

从 VCSA 上也要验证:

1
2
3
nslookup dc01.lab.example.com
nslookup vcsa01.lab.example.com
nslookup 192.168.10.10

六、统一时间同步

Kerberos、Token、证书和目录服务都对时间非常敏感。

如果 VCSA 与域控制器时间差过大,可能出现:

  • AD 登录失败;
  • SSO Token 校验失败;
  • 证书被判断为尚未生效;
  • LDAPS 连接失败;
  • vCenter 服务异常。

6.1 Windows Server 配置上游 NTP

如果 DC01 是 PDC Emulator,可以配置可靠上游 NTP:

1
2
3
4
5
6
7
8
w32tm /config `
/manualpeerlist:"time.cloudflare.com,0x8 time.google.com,0x8" `
/syncfromflags:manual `
/reliable:yes `
/update

Restart-Service w32time
w32tm /resync /rediscover

查看状态:

1
2
w32tm /query /status
w32tm /query /configuration

如果生产网络不能访问公网 NTP,请替换为企业时间服务器。

6.2 VCSA 检查时间

1
2
timedatectl
chronyc sources -v

核心原则是:

1
2
AD / DNS / ESXi / VCSA
使用一致、可靠的时间体系

七、为什么使用 AD over LDAPS

对于 vCenter 8,新环境更推荐使用:

1
2
3
Active Directory over LDAP
LDAPS
TCP 636

而不是继续把设计建立在旧的 Integrated Windows Authentication(IWA)方式上。

本文的方案不要求把 VCSA 自身作为 Windows 域成员加入 AD,而是通过 LDAP 身份源查询 AD。

优点包括:

  • LDAP 流量加密;
  • 身份源边界更加清晰;
  • 不依赖 VCSA 加入 Windows 域;
  • 可以单独管理 LDAP 查询服务账号;
  • 可以为主、备域控制器分别配置 LDAPS 地址。

八、准备 LDAPS 证书

8.1 域控制器证书要求

域控制器用于 LDAPS 的证书应满足:

  • 安装在 Local Computer 证书存储;
  • 有私钥;
  • EKU 包含 Server Authentication
  • Subject 或 SAN 包含域控制器 FQDN;
  • 示例:dc01.lab.example.com
  • 证书在有效期内;
  • 证书链可信;
  • DC 正在监听 TCP 636。

8.2 实验环境可部署 AD CS

如果没有现有 PKI,可以在实验环境部署 Microsoft AD CS。

服务器管理器:

1
2
3
Add Roles and Features
→ Active Directory Certificate Services
→ Certification Authority

实验环境可以选择:

1
2
3
4
5
Enterprise CA
Root CA
Create a new private key
RSA 2048 或更高
SHA-256

生产环境不要因为教程图省事就把离线根 CA、域控制器和所有管理服务全堆在同一台服务器里。

8.3 检查域控制器证书

打开:

1
certlm.msc

进入:

1
2
3
Certificates (Local Computer)
→ Personal
→ Certificates

检查是否存在颁发给:

1
dc01.lab.example.com

并包含:

1
Server Authentication

如果已经部署企业 CA,可以尝试:

1
2
gpupdate /force
certutil -pulse

九、验证 LDAPS 636

9.1 Windows 侧检查端口

1
Test-NetConnection dc01.lab.example.com -Port 636

预期:

1
TcpTestSucceeded : True

9.2 使用 ldp.exe 验证

运行:

1
ldp.exe

选择:

1
2
Connection
→ Connect

填写:

1
2
3
Server:dc01.lab.example.com
Port:636
SSL:勾选

9.3 从 VCSA 检查证书链

1
2
3
4
openssl s_client \
-connect dc01.lab.example.com:636 \
-servername dc01.lab.example.com \
-showcerts </dev/null

重点检查:

  • 实际连接的是 FQDN;
  • SAN 包含 dc01.lab.example.com
  • 证书未过期;
  • 中间 CA / Root CA 完整;
  • TLS 握手正常。

不要习惯性使用:

1
ldaps://192.168.10.10:636

如果证书只签给了 dc01.lab.example.com,用 IP 访问会造成证书名称不匹配。

十、导出 LDAPS 证书

certlm.msc 中可以导出域控制器证书或 CA 证书链。

推荐格式:

1
Base-64 encoded X.509 (.CER)

后续添加 vCenter 身份源时,将证书或可信 CA 链提供给 vCenter。

建议保留:

  • 当前证书文件;
  • CA 根证书;
  • 中间 CA;
  • 到期日期;
  • 证书续期流程。

LDAPS 证书过期不是“以后再说”的问题,它非常擅长在某个周一早上突然变成“所有 AD 用户都登不上 vCenter”。

十一、创建专用 LDAP 查询服务账号

不要长期把 Domain Admin 凭据保存在 vCenter 身份源配置里。

创建普通服务账号:

1
svc-vcenter-ldap@lab.example.com

11.1 创建 Service Accounts OU

1
2
3
New-ADOrganizationalUnit `
-Name "Service Accounts" `
-Path "DC=lab,DC=example,DC=com"

11.2 创建账号

1
2
3
4
5
6
7
8
9
$password = Read-Host "请输入服务账号密码" -AsSecureString

New-ADUser `
-Name "svc-vcenter-ldap" `
-SamAccountName "svc-vcenter-ldap" `
-UserPrincipalName "svc-vcenter-ldap@lab.example.com" `
-Path "OU=Service Accounts,DC=lab,DC=example,DC=com" `
-AccountPassword $password `
-Enabled $true

普通域用户通常已经拥有读取常规目录信息的权限,不需要加入:

1
Domain Admins

生产环境应把这个账号纳入密码保险库、轮换和到期监控。

十二、在 vCenter 中添加 AD over LDAPS 身份源

先使用:

1
administrator@vsphere.local

登录 vSphere Client。

进入:

1
2
3
4
5
6
7
Menu
→ Administration
→ Single Sign On
→ Configuration
→ Identity Provider
→ Identity Sources
→ Add

不同 vCenter 8 Update 版本的中文翻译可能略有不同,但核心路径都位于 Single Sign-On 的 Identity Sources 配置区域。

12.1 选择身份源类型

选择:

1
Active Directory over LDAP

建议使用:

1
ldaps://

而不是明文 ldap://

12.2 示例配置

字段 示例
Name LAB-AD-LDAPS
Base DN for users DC=lab,DC=example,DC=com
Domain name lab.example.com
Domain alias LAB
Base DN for groups DC=lab,DC=example,DC=com
Primary server URL ldaps://dc01.lab.example.com:636
Secondary server URL ldaps://dc02.lab.example.com:636
Username svc-vcenter-ldap@lab.example.com
Password LDAP 服务账号密码
SSL certificate 域控制器证书链 / 受信 CA

只有一台域控制器时,Secondary URL 可以留空。

12.3 Base DN 怎么选

初次接入建议先从域根开始:

1
DC=lab,DC=example,DC=com

这样最容易验证是否能够正常搜索用户和组。

如果直接限制到很深的 OU,例如:

1
OU=Users,OU=VMware,DC=lab,DC=example,DC=com

可能导致:

  • 找不到其他 OU 用户;
  • 找不到授权组;
  • 嵌套组解析异常;
  • 用户认证成功但无法搜索到对应组。

先跑通,再根据安全与目录结构需求收紧查询范围。

12.4 Global Catalog

如果需要 Global Catalog,可以使用:

1
2
LDAP Global Catalog:3268
LDAPS Global Catalog:3269

单域、小型环境通常直接使用:

1
636

即可。

十三、设置默认身份源

身份源添加成功后,可以根据需要设置为默认身份源。

这样登录时可以使用更短的账号格式。

不过为了避免多身份源之间的用户名冲突,仍建议明确写:

1
mario@lab.example.com

或者:

1
LAB\mario

而不是只写:

1
mario

十四、身份认证成功不代表有权限

这是接入 AD 后第二个最常见的误区。

vCenter 身份源只负责让系统知道:

1
这个 AD 用户确实存在,而且密码正确

它不会自动赋予 vCenter Administrator 权限。

还需要配置:

1
Permission + Role

推荐不要直接给个人用户授权,而是创建 AD 安全组。

十五、创建 vSphere 管理员 AD 组

15.1 创建 Groups OU

1
2
3
New-ADOrganizationalUnit `
-Name "Groups" `
-Path "DC=lab,DC=example,DC=com"

15.2 创建管理组

1
2
3
4
5
6
New-ADGroup `
-Name "GG-vSphere-Admins" `
-SamAccountName "GG-vSphere-Admins" `
-GroupCategory Security `
-GroupScope Global `
-Path "OU=Groups,DC=lab,DC=example,DC=com"

15.3 添加管理员用户

1
2
3
Add-ADGroupMember `
-Identity "GG-vSphere-Admins" `
-Members "mario"

以后人员变化时,只需要维护 AD 组成员,而不用逐个修改 vCenter Permission。

十六、在 vCenter 中给 AD 组授权

在 vSphere Client 中选择最上层 vCenter 对象:

1
2
3
vcsa01.lab.example.com
→ Permissions
→ Add Permission

选择:

1
2
3
4
Domain:lab.example.com
User/Group:GG-vSphere-Admins
Role:Administrator
Propagate to children:Yes

实验环境可以直接使用 Administrator。

生产环境建议按职责拆分:

  • vSphere 平台管理员;
  • VM 管理员;
  • 网络管理员;
  • 存储管理员;
  • 只读审计员;
  • 备份系统服务账号。

不要给整个 IT 部门统一套上 Administrator。那不是 RBAC,那只是把权限问题改名叫“以后再说”。

十七、测试 AD 登录

退出 administrator@vsphere.local

使用:

1
mario@lab.example.com

或:

1
LAB\mario

验证:

  • 能否完成认证;
  • 能否进入 vSphere Client;
  • 能否看到预期对象;
  • 权限是否与角色一致;
  • 是否可以通过 AD 组变化控制权限。

然后再次验证:

1
administrator@vsphere.local

仍然可以正常登录。

这个账号必须长期保留。

十八、为什么必须保留 SSO 本地管理员

AD 接入之后,至少还存在这些外部依赖:

1
2
3
4
5
6
7
DNS
域控制器
LDAP 服务账号
LDAPS 证书
CA 证书链
网络
时间

只要其中任何一项故障,AD 用户登录都有可能受到影响。

所以必须保留:

1
administrator@vsphere.local

它相当于 vCenter 的“破窗锤”。

平时希望永远用不上,但真出问题时,最好别发现它被放在窗外。

十九、LDAPS 高可用建议

如果环境有两台域控制器:

1
2
dc01.lab.example.com
dc02.lab.example.com

可以分别配置:

1
2
Primary:ldaps://dc01.lab.example.com:636
Secondary:ldaps://dc02.lab.example.com:636

两台域控制器都必须:

  • DNS 正常;
  • 636 可达;
  • 拥有有效 LDAPS 证书;
  • 证书 SAN 匹配各自 FQDN;
  • 证书链可被 vCenter 信任;
  • 时间正常。

不要只验证主 DC,然后把一个从未测试过的 Secondary URL 填进去求心理安慰。

二十、常见故障排查

20.1 无法添加 LDAPS 身份源

典型错误:

1
2
3
Can't contact LDAP server
Failed to probe provider connectivity
Certificate validation failed

先检查:

1
Test-NetConnection dc01.lab.example.com -Port 636

再从 VCSA 检查:

1
2
3
4
openssl s_client \
-connect dc01.lab.example.com:636 \
-servername dc01.lab.example.com \
-showcerts </dev/null

逐项排查:

  • FQDN 是否解析正确;
  • TCP 636 是否开放;
  • 证书 SAN 是否包含域控制器 FQDN;
  • 证书是否过期;
  • CA 链是否完整;
  • Base DN 是否正确;
  • LDAP 服务账号密码是否正确;
  • 服务账号是否锁定;
  • 是否混用了 ldap://ldaps://

20.2 AD 用户能搜索到,但无法登录

检查:

  • 用户是否 Enabled;
  • 密码是否过期;
  • 用户是否 Locked;
  • 登录格式是否正确;
  • vCenter 与 AD 时间是否一致;
  • LDAPS 证书是否有效;
  • Identity Source 是否正常。

尝试:

1
2
user@lab.example.com
LAB\user

20.3 AD 用户能登录,但看不到任何对象

这一般不是 LDAP 故障,而是 vCenter Permission 没配。

检查:

1
2
vCenter 根对象
→ Permissions

确认:

  • AD 用户或组已授权;
  • Role 正确;
  • Propagate to children 已勾选。

20.4 LDAPS 证书更新后突然登录失败

域控制器证书续期后,vCenter 保存的信任证书可能不再匹配。

处理前先使用:

1
administrator@vsphere.local

登录。

然后:

1
2
3
4
5
1. 完成 VAMI 文件级备份
2. 记录当前 Identity Source 参数
3. 导出新的域控制器 / CA 证书链
4. 更新或重新创建身份源
5. 测试 AD 登录

部分版本和配置下,更新证书时重新创建身份源会比直接修改更干净。

20.5 VCSA 能解析公网域名,但不能解析 AD 域

通常说明 VCSA DNS 指到了公网 DNS。

检查:

1
cat /etc/resolv.conf

并在 VAMI 中确认 DNS 指向内部 DNS:

1
192.168.10.10

外部查询交给 Windows DNS Forwarder。

20.6 LDAP 服务账号密码变更后身份源失败

如果组织启用了密码轮换,必须把:

1
svc-vcenter-ldap

纳入变更流程。

建议:

  • 使用密码保险库;
  • 明确责任人;
  • 记录变更窗口;
  • 变更后立即验证 Identity Source;
  • 保留 SSO 管理员回退入口。

二十一、证书到期监控

至少记录:

1
2
3
4
域控制器 LDAPS 证书到期日
Root CA 到期日
Intermediate CA 到期日
VCSA Machine SSL 到期日

可以建立简单运维表:

证书 用途 到期日 责任人 提前提醒
DC01 LDAPS LDAP TLS YYYY-MM-DD AD 管理员 60 天
Root CA PKI YYYY-MM-DD PKI 管理员 180 天
VCSA Machine SSL vSphere Client YYYY-MM-DD VMware 管理员 60 天

不要等“AD 用户突然都登不上”之后,才第一次知道 LDAPS 也有证书生命周期。

二十二、权限设计建议

生产环境推荐通过 AD Group 映射 vCenter Role:

flowchart LR
    U1["用户 A"] --> G1["GG-vSphere-Admins"]
    U2["用户 B"] --> G2["GG-vSphere-VM-Admins"]
    U3["用户 C"] --> G3["GG-vSphere-Auditors"]

    G1 --> R1["Administrator"]
    G2 --> R2["VM Operator / 自定义角色"]
    G3 --> R3["Read Only"]

不要直接大量维护:

1
User → vCenter Role

优先维护:

1
User → AD Group → vCenter Role

这样人员生命周期和平台权限模型更容易解耦。

二十三、AD / LDAPS 上线检查清单

23.1 DNS

  • dc01.lab.example.com 可解析
  • vcsa01.lab.example.com 可解析
  • VCSA PTR 正常
  • VCSA 使用内部 AD DNS
  • Windows DNS 配置了外网转发器

23.2 时间

  • 域控制器时间正确
  • VCSA 时间正确
  • ESXi 时间正确
  • 时间源一致或可信

23.3 LDAPS

  • TCP 636 可达
  • 域控制器证书包含 Server Authentication
  • SAN 包含 DC FQDN
  • 证书未过期
  • CA 链完整
  • openssl s_client 验证正常

23.4 LDAP 服务账号

  • 使用专用服务账号
  • 不是 Domain Admin
  • 密码已纳入管理
  • 账号未锁定
  • 密码轮换流程明确

23.5 vCenter

  • AD over LDAP Identity Source 添加成功
  • 使用 ldaps://...:636
  • Base DN 正确
  • AD 用户可以被搜索
  • AD Group 已绑定 vCenter Role
  • Propagate to children 按需求配置
  • AD 用户实际登录测试成功
  • administrator@vsphere.local 仍然可用

23.6 运维

  • LDAPS 证书到期日已记录
  • 身份源变更前有 VAMI 备份
  • 主 / 备域控制器都验证过
  • 有 AD 故障时的本地 SSO 回退路径

二十四、推荐的最终结构

一套比较清晰的 vCenter + AD 身份体系可以是:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Windows Server 2022
├─ AD DS
├─ DNS
└─ LDAPS Certificate

│ TCP 636

VCSA 8.0
├─ vsphere.local
│ └─ administrator@vsphere.local

└─ Identity Source
└─ lab.example.com
├─ svc-vcenter-ldap
├─ GG-vSphere-Admins
├─ GG-vSphere-VM-Admins
└─ GG-vSphere-Auditors

这个设计把:

1
2
3
vCenter 本地应急身份
AD 企业身份
vCenter 权限

三个层次分开,故障边界也更清晰。

总结

把 vCenter 接入 AD,并不是简单地“填一个域名”。

真正完整的链路是:

1
2
3
4
5
6
7
8
9
10
AD DS
→ DNS
→ 时间同步
→ LDAPS 证书
→ TCP 636
→ LDAP 查询服务账号
→ vCenter Identity Source
→ AD Group
→ vCenter Role / Permission
→ 登录验证

其中最重要的原则有四个:

1
2
3
4
1. VCSA 使用内部 DNS
2. AD 接入优先使用 LDAPS
3. 授权优先使用 AD 安全组,而不是个人账号
4. 永远保留 administrator@vsphere.local

认证链路越集中,就越要给故障场景留下一个不依赖它自己的入口。

参考资料

  1. VMware vCenter Server 8.0 Installation and Setup Guide
  2. Broadcom:Removal of Integrated Windows Authentication
  3. Broadcom:Migrating Identity Source from IWA to AD over LDAP
  4. Microsoft Learn:Best Practices for DNS Client Settings
  5. Microsoft Learn:Configure Certificates for LDAP over SSL
  6. Broadcom:Manually Back Up vCenter Server by Using VAMI

启示录

身份系统最危险的设计,不是认证失败,而是认证失败之后没有第二把钥匙。

备豫不虞,为国常道。


VMware vCenter Server 8.0 接入 Windows Server 2022 AD 域:LDAPS 身份源与权限配置
https://allendericdalexander.github.io/2026/08/13/devops/virtual/vcenter-8-windows-server-2022-ad-ldaps/
作者
AtLuoFu
发布于
2026年8月13日
许可协议