Apache - 用 Kerberos(mod_auth_kerb)替换 Apache::AuthenNTLM

Apache - 用 Kerberos(mod_auth_kerb)替换 Apache::AuthenNTLM

在 Solaris 的内部网系统中,我们目前使用 perlsApache2::AuthenNTLM模块与 Win 2k3 域服务器进行身份验证,这样我们就可以访问浏览网站的人员的用户 ID。

迁移到 Win 2012 AD 服务器后,我们被告知它将不支持 NTLM,而微软目前也不推荐使用 NTLM。mod-auth-kerb有适合此软件用例的替代品吗?

我在 Google 上搜索过,但找不到相关文章或教程介绍 mod-auth-kerb 的用法。我入门很困难,需要有人给我指点方向。

谢谢

答案1

您需要让 Active Directory 管理员创建一个服务帐户,该帐户包含您内联网服务器的 Kerberos 服务原则。SPN 或 SPN 应类似于<service>/<hostname>并包含用户用于访问您的内联网网站的所有主机名和/或 DNS 别名,因此如下所示:

http/solarishost.int.example.com
http/solarishost
http/intranet.example.com

您的 Active Directory 管理员可以提取 SPN's 为一个keytab文件,您需要将其复制到 Solaris 主机并在 Apache 中进行配置。注意:http/hostname SPN 也用于 HTTPS。

在 Solaris 上,您需要 MIT Kerberos 5 工具和库,下载并安装 Apache 模块,然后对其进行配置。

通常,您将编辑全局 Kerberos 配置文件/etc/krb5/krb5.conf要设置 mod-auth-kerb 也将使用的默认值,重要的通常只有 REALM 的名称,通常是 Windows AD 域、DNS 域和 KDC 服务器 - 通常是 AD 管理员告诉您使用的域控制器。

Apache 配置如下所示:

<Location /intranet>
 AuthType           Kerberos
 AuthName           "intranet"
 KrbMethodNegotiate on
 KrbAuthoritative   on
 KrbVerifyKDC       on
 KrbAuthRealm       YOUR_ACTIVEDIRECTORY_DOMAIN
 Krb5Keytab         /etc/httpd/intranet.keytab
 KrbSaveCredentials off
 Require            valid-user
</Location>

对 Kerberos 和 Microsoft AD 有所了解会有所帮助,因为对于初学者来说,调试起来可能比较棘手。哦,使用 Kerberos 时,请确保您的时钟同步。

相关内容