在 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 时,请确保您的时钟同步。