Windows 桌面 SSO 验证模块是一个基于 Kerberos 的验证插件模块,用于 Windows 2000™。它允许已通过 Kerberos 分发中心 (KDC) 验证的用户无需重新提交登录条件即可验证到 Access Manager(单一登录)。
用户通过 SPNEGO(简单且受保护的 GSS-API 协商机制)协议向 Access Manager 提交 Kerberos 令牌。要通过此验证模块执行基于 Kerberos 的 Access Manager 单点登录,用户必须在客户机端支持 SPNEGO 协议以验证本身。一般而言,支持此协议的任何用户应该都能使用此模块验证 Access Manager。根据客户机端令牌的可用性,此模块提供 SPENGO 令牌或 Kerberos 令牌(这两种情况下协议是相同的)。 在 Windows 2000(或更高版本)上运行的 Microsoft Internet Explorer(5.01 或更高版本)当前支持此协议。此外,Solaris(9 和 10)上的 Mozilla 1.4 支持 SPNEGO,但返回的令牌只有一个 KERBEROS 令牌,因为 SPNEGO 在 Solaris 上不受支持。
必须使用 JDK 1.4 或更高版本利用 Kerberos V5 验证模块和 Java GSS API 的新功能,以执行此 SPNEGO 模块中基于 Kerberos 的 SSO。
如果在进行 WindowsDesktopSSO 验证时使用 Microsoft Internet Explorer 6.x,并且浏览器不能访问与 WindowsDesktopSSO 模块中配置的 (KDC) 领域匹配的用户 kerberos/SPNEGO 令牌,则浏览器在验证 WindowsDesktopSSO 模块失败后无法对其他模块实施正确的行为。问题的直接原因是:在 Internet Explorer 验证 WindowsDesktopSSO 模块失败后,浏览器若未重新启动,将无法传送回叫(其他模块的)给 Access Manager,即使系统提示该回叫。因此,WindowsDesktopSSO 后的所有模块都将因无效的用户证书而失败。
相关信息,请参阅以下文档:
http://support.microsoft.com/default.aspx?scid=kb;en-us;308074
http://www.wedgetail.com/jcsi/sso/doc/guide/troubleshooting.html#ieNTLM
启用 Windows 桌面 SSO 验证分为两个步骤:
在 Windows 2000 域控制器中创建用户。
设置 Internet Explorer。
在域控制器中,为 Access Manager 验证模块创建用户帐户。
在用户帐户与服务提供者名称间建立关联,并将键表文件导出至装有 Access Manager 的系统。为此,请运行以下命令:
ktpass -princ host/hostname.domainname@DCDOMAIN -pass password -mapuser userName-out hostname.host.keytab ktpass -princ HTTP/hostname.domainname@DCDOMAIN -pass password -mapuser userName-out hostname .HTTP.keytab |
ktpass 命令接受以下参数:
hostname。运行 Access Manager 的主机名(不含域名)。
domainname。Access Manager 的域名。
DCDOMAIN。域控制器的域名。它可能与 Access Manager 域名不同。
password。用户帐户的密码。请确保密码正确,因为 ktpass 不校验密码。
userName。用户帐户 ID。它应与主机名相同。
确保两个键表文件都已安全保管。
服务模板的值应与以下示例类似:
服务负责人: HTTP/machine1.EXAMPLE.COM@ISQA.EXAMPLE.COM
Keytab 文件名:/tmp/machine1.HTTP.keytab
Kerberos 领域: ISQA.EXAMPLE.COM
Kerberos 服务器名:machine2.EXAMPLE.com
返回带有域名的负责人:false
验证级别: 22
重新启动服务器。
以下步骤适用于 Microsoft Internet Explorer™ 6 及更高版本。如果您使用的是较早版本,请确保 Access Manager 位于浏览器的 Internet 区域并启用“本地 Windows 验证”。