我已经拥有 OpenLDAP 目录,并且一些服务针对它进行身份验证(OpenVPN、Jabber、Freeradius、redmine 等)。我还需要做的是将我的服务器设为域控制器,以允许 Windows 客户端使用与服务器上其他服务相同的用户名和密码登录 Windows。
我安装了 Samba4 并将其设置为 DC,但问题是 Samba4 有内置的 LDAP 服务器,因此我无法同时运行 OpenLDAP(slapd)服务与 Samba(因为它们使用相同的端口)。
有人能帮助我让它工作吗?(无需更改 OpenLDAP 端口,也无需 pGina)。
所以总的来说,我想要做的是:让 Samba4 域控制器和 OpenLDAP 在同一台服务器上运行,并让 Samba4 针对该 OpenLDAP 进行身份验证,以允许 Windows 用户使用我之前创建的 OpenLDAP 目录中的用户名和密码登录 Windows。
我非常感谢任何帮助,我花了一个多星期的时间搜索但没有成功)。
答案1
您不能这样做。首先,Windows 使用的任何身份验证方法(无论是现代 Kerberos 还是较旧的 NTLM)都不能与您在 OpenLDAP 上存储的任何哈希密码一起使用。即使 Samba 3 可以将 OpenLDAP 作为其后端,它仍然需要将与 NTLM 兼容的密码哈希与常规的分开存储userPassword
。Linux pam_ldap 可能乐于将原始密码发送到服务器进行验证;Windows 不会这样做。
其次,Active Directory 不仅仅是身份验证 - 即使是真正的 Kerberos KDC 也无法复制 Samba4 集成 KDC 完成的所有功能(主要是将 PAC 附加到 Kerberos 票证,其中包含用户的 UID 和从 LDAP 中获取的其他信息),但这仅仅是个开始。Windows 还希望 AD DC 也具有根据 Active Directory 的 LDAP 架构的 LDAP 条目,并支持各种 MS-RPC 服务 - 用于将计算机本身加入域、获取帐户信息等。