如何让 Windows XP 作为客户端针对 Kerberos 或 heimdal 进行身份验证(其中操作系统是 Ubuntu、FreeBSD 或 OpenBSD)
答案1
如果您想要获得类似于具有基于标准的 Kerberos KDC 的 Windows XP 客户端的 Active Directory 域的“单点登录”功能,您将必须进行一些黑客攻击。
以下是 Windows 2000 时代针对 Kerberos 领域配置身份验证的指南:http://technet.microsoft.com/en-us/library/bb742433.aspx
Active Directory 到 Windows XP 客户端的“工作站信任”和登录过程不仅仅是基于标准的 Kerberos。Windows XP 可以对 Kerberos 域进行身份验证,但 Kerberos 凭据必须“映射”到本地用户帐户。这与加入域的 Windows XP 计算机的功能不同,因为加入域时不需要本地用户帐户。如果您打算获得类似域的功能,则需要创建与每组 Kerberos 凭据相对应的本地用户帐户。
Windows 默认的“图形识别和身份验证”(GINA) 模块有替代品,可以伪造类似域的行为。执行此功能的“正确方法”是为基于标准的 Kerberos 编写一个 LSA 安全支持提供程序 (SSP)(我不相信 Microsoft 以外的任何人做过这件事)。
REGINA - 里德学院的一个项目,旨在实现基于 Kerberos 的单点登录 GINA。-http://people.reed.edu/~nobles/reed/regina.html
CMU“Kerberized”NT 登录 -http://asg.andrew.cmu.edu/andrew2/dist/gina.html (看起来该来源不再可用!)
答案2
有pGina 项目,但这开始遭受代码腐烂的困扰。虽然它很稳定,但我只会将其作为最后的手段。除了提供 Kerberos 支持外,它还有一个模块化框架,可以与几乎任何你能想到的东西进行交互 - 有数据库、RADIUS 等示例。可以将其视为 Windows 的“pam”堆栈的开源版本。
源代码仍然可用,至少核心代码已经远远超过 1.0 版本,并且值得投入生产。真正的问题是围绕某些模块的代码质量,有些模块很稳定,但有些模块仅比概念验证好一点点。