概述
我正在尝试让 Proxmox 使用 Windows Server 2016 ADDS 服务器通过 LDAP 执行用户身份验证。Proxmox 确信我的凭据不正确。
环境
Proxmox 6.3-1,PVE 6.3-6
Windows Server 2019 数据中心 1809,b17763.1823
Proxmox 服务器和域控制器位于同一网络上(DC 是 Proxmox 实例上的客户机)。
DC 的根证书已添加到 Proxmox 服务器的存储中。
Proxmox 的领域绑定是通过 OU 中的专用标准用户帐户设置的
OU=Service Users,DC=subdomain,DC=domain,DC=tld
。我在标准中有一个管理帐户
CN=Users,DC=subdomain,DC=domain,DC=tld
。Proxmox 的领域绑定通过 GUI 如下:
General --- Domain: DC=subdomain,DC=domain,DC=tld Default: True Server: dc.subdomain.domain.tld Fallback Server: Unused Port: Default SSL: True Verify Certificate: True Require TFA: None Sync Options --- Bind User: CN=ServiceAccount,OU=Service Users,DC=subdomain,DC=domain,DC=tld E-Mail Attribute: mail Groupname Attr.: sAMAccountName User Classes: user Group Classes: group User Filter: (&(objectCategory=Person)(sAMAccountName=*)(memberOf=CN=InfrastructureAdmins,CN=Users,DC=subdomain,DC=domain,DC=tld)) Group Filter: (sAMAccountName=InfrastructureAdmins)
发生了什么
- Proxmox 的登录页面显示错误消息“登录失败。请重试”。
- Proxmox 的系统日志显示行条目
hostname pvedaemon[pid]: authentication failure; rhost=10.9.0.50 user=username@realm msg=80090308: LdapErr: DSID-0C090439, comment: AcceptSecurityContext error, data 52e, v4563
。- 错误代码
52e
表示密码不正确。
- 错误代码
- 登录失败时,我在 DC 的安全事件日志中看不到 ServiceAccount 或用户名的任何条目。
我尝试过的方法
- 我已经验证 Proxmox 可以与 DC 通信;当领域同步时,它会成功地从域中提取组和用户。
- 我已经验证绑定用户
ServiceAccount
可以登录加入域的计算机。 - 我已经验证我正在测试的帐户(我的管理员帐户)可以登录到加入域的计算机;它是我用来登录 DC 的帐户。
- 我还创建了一个没有任何附加设置的测试帐户,只有适当的组成员身份,并尝试使用它登录 Proxmox。
- 我尝试将我的用户帐户和绑定帐户的密码简化为
P4$$w0rd
。 - LDAP 适用于具有类似绑定账户的其他系统。
非常感谢任何指导或建议。
答案1
100% 确定这是由于 AD 组“服务帐户”包含空格,这是 MS AD 组设计允许的,而 Proxmox 不接受这一点。
解决方法:
不要使用本机 AD 组“服务帐户”(或任何其他包含空格的组),而是用名称中没有空格的组代替它们。
解决方案:
希望 Proxmox 能够进行更新,现在将其作为一项功能进行请求,但在我看来应该是一个优先的错误修复,以符合 Microsoft 使用的 AD 命名约定以及已经模仿这些命名约定的开源变体(即允许使用空格)。
请参阅以下可追溯至 2020 年 8 月的帖子:
https://forum.proxmox.com/threads/group-names-and-active-directory-sync.74072/
https://forum.proxmox.com/threads/ldap-sync-with-nested-groups.80749/
https://forum.proxmox.com/threads/ad-group-users-permissions-not-right.113395/
以及相应的功能/错误请求:
答案2
我不能确定你和我是否有同样的问题,但我通过以下方式解决了相同的症状:
- 确保 LDAP 设置中的“域”是实际的 AD 域名(例如
ad.example.com
)。Proxmox 会将其附加到用户名以便登录,因此如果您输入错误,LDAP 服务器将拒绝您。 - 确保登录的用户或组已分配角色。您可以通过转到数据中心->权限(“标题”,而不是下拉菜单中的内容!)并添加组权限(在我的情况下,我使用了我创建的 LDAP 组
ProxmoxAdmins
并为其分配角色Administrator
)来执行此操作
我注意到日志消息根本没有告诉你问题的原因。我还注意到 LDAP 组中不能有空格(例如,Proxmox Admins
不起作用,ProxmoxAdmins
起作用)。如果您在 LDAP 设置中执行“同步预览”,则可以看到这一点)。最后,“同步”有效并不意味着用户会这样做 - 它只测试绑定凭据(有用的检查,但不是全部!)。