我正在尝试为在 Apache/Ubuntu Jammy 上运行的内部站点配置 NTLM 身份验证。我能够实现 LDAP 身份验证。不过,我希望使登录/身份验证过程顺利进行,因为用户已经使用其域凭据登录到他的工作计算机。
我尝试根据通过 Google 找到的一些旧文档通过 apt 安装 Apache 模块,但这些软件包不再可用。
sudo apt install libapache2-mod-auth-ntlm
E: Unable to locate package libapache2-mod-auth-ntlm
您能否建议我如何为在基于 Debian 的 Linux(Ubuntu)上运行的 Apache 代理服务器实现 NTLM 身份验证?
答案1
自 2010 年起,Microsoft 不再推荐 NTLM在应用程序中。
NTLM 不支持任何最新的加密方法,例如 AES 或 SHA-256。它使用循环冗余校验 (CRC)或消息摘要算法([RFC1321])来保证完整性,并使用 RC4 进行加密。推导出钥匙密码如下:[RFC1320]和[FIPS46-2].因此一般建议应用程序不要使用NTLM。<81>
应该使用 Microsoft Kerberos 身份验证。
虽然libapache2-mod-auth-kerb
对于 Jammy 来说,它已经存在从 Debian 11 中删除。因此,我会使用libapache2-mod-auth-gssapi
而是用于未来的实现。
sudo apt install libapache2-mod-auth-gssapi
配置 Apache,例如,
<Location /private> AuthType GSSAPI AuthName "GSSAPI Single Sign On Login" GssapiCredStore keytab:/etc/httpd.keytab Require valid-user </Location>