创建由 WebSphere Application Server SPNEGO TAI 使用的 Kerberos 服务主体和密钥表文件(不推荐)
在 Microsoft Active Directory 域控制器机器上执行此配置任务。在准备处理对 WebSphere® Application Server 和 SPNEGO 信任关联拦截器 (TAI) 的单点登录浏览器请求的过程中,必须执行本任务。
开始之前

在 WebSphere Application Server V6.1 中引入了一个信任关联拦截器 (TAI),TAI 使用“简单且受保护的 GSS-API 协商机制” (SPNEGO) 来对安全资源的 HTTP 请求进行安全地协商和认证。建议不要在 WebSphere Application Server 7.0 中使用此功能。SPNEGO Web 认证已取代该 TAI,以提供动态重新装入 SPNEGO 过滤器的功能以及对应用程序登录方法启用回退。
depfeat关于此任务
过程
- 在 Microsoft Active Directory 中为
WebSphere Application Server 创建用户帐户。
单击开始 -> 程序 -> 管理工具 -> 活动目录用户和计算机
对 WebSphere Application Server 使用该名称。例如,如果在 WebSphere Application Server 机器上运行的应用程序服务器称为 myappserver.austin.ibm.com,那么就在 Active Directory 中创建一个名称为 myappserver 的新用户。要点: 请勿选中“用户下次登录时必须更改密码”。要点: 确保针对计算机和域控制器没有计算机名称 myappserver。如果已存在计算机名称 myappserver,那么需要创建不同的用户帐户名称。- 转至开始 -> 程序 -> 管理工具 -> 活动目录用户和计算机 -> 计算机
- 转至开始 -> 程序 -> 管理工具 -> 活动目录用户和计算机 -> 域控制器
- 使用 setspn 命令将 Kerberos 服务主体名称 HTTP/<host name> 映射至 Microsoft 用户帐户。 setspn 用法示例如下所示:
C:\Program Files\Support Tools> setspn -A HTTP/myappserver.austin.ibm.com myappserver
注: 已添加至域的 Microsoft Windows 主机可能已存在某些相关的 SPN。虽然可通过使用 setspn -L 命令来显示那些已存在的 SPN,但是仍然必须对 WebSphere Application Server 添加 HTTP SPN。例如,setspn -L myappserver 将列示 SPN。要点: 确保未将相同的 SPN 映射至多个 Microsoft 用户帐户。如果将同一 SPN 映射至多个用户帐户,那么 Web 浏览器客户机可以将 NTLM 令牌(而不是 SPNEGO 令牌)发送至 WebSphere Application Server。可以在 Windows 2003 Technical Reference (setspn command) 中找到有关 setspn 命令的更多信息。
- 创建 Kerberos 密钥表文件并使它可供 WebSphere Application Server 使用。使用 ktpass 命令创建 Kerberos 密钥表文件 (krb5.keytab)。
使用 Windows Server 工具箱中的 ktpass 工具为服务主体名称 (SPN) 创建 Kerberos 密钥表文件。请使用与您正在使用的 Windows Server 级别匹配的最新版本 ktpass 工具。例如,对于 Windows 2003 Server,请使用此工具的 Windows 2003 版本。
要确定 ktpass 工具的合适参数值,请从命令行运行 ktpass -? 命令。此命令将列示与特定操作系统相对应的 ktpass 工具是使用 -crypto RC4-HMAC 还是 -crypto RC4-HMAC-NT 参数值。要屏蔽工具箱的警告消息,必须指定 -ptype KRB5_NT_PRINCIPAL 参数值。
Windows 2003 Server 版本的 ktpass 工具支持 RC4-HMAC 加密类型和单一数据加密标准 (DES)。有关 ktpass 工具的更多信息,请参阅 Windows 2003 Technical Reference - Ktpass overview。
下列代码显示了在命令行上输入 ktpass -? 命令时的可用功能。根据您使用的工具箱版本不同,此信息也可能有所不同。C:\Program Files\Support Tools>ktpass -? Command line options: ---------------------most useful args [- /] out : Keytab to produce [- /] princ : Principal name (user@REALM) [- /] pass : password to use use "*" to prompt for password. [- +] rndPass : ... or use +rndPass to generate a random password [- /] minPass : minimum length for random password (def:15) [- /] maxPass : maximum length for random password (def:256) ---------------------less useful stuff [- /] mapuser : map princ to this user account (default: don't) [- /] mapOp : how to set the mapping attribute (default: add it) [- /] mapOp : is one of: [- /] mapOp : add : add value (default) [- /] mapOp : set : set value [- +] DesOnly : Set account for des-only encryption (default:don't) [- /] in : Keytab to read/digest ---------------------options for key generation [- /] crypto : Cryptosystem to use [- /] crypto : is one of: [- /] crypto : DES-CBC-CRC : for compatibility [- /] crypto : DES-CBC-MD5 : for compatibliity [- /] crypto : RC4-HMAC-NT : default 128-bit encryption [- /] ptype : principal type in question [- /] ptype : is one of: [- /] ptype : KRB5_NT_PRINCIPAL : The general ptype-- recommended [- /] ptype : KRB5_NT_SRV_INST : user service instance [- /] ptype : KRB5_NT_SRV_HST : host service instance [- /] kvno : Override Key Version Number Default: query DC for kvno. Use /kvno 1 for Win2K compat. [- +] Answer : +Answer answers YES to prompts. -Answer answers NO. [- /] Target : Which DC to use. Default:detect ---------------------options for trust attributes (Windows Server 2003 Sp1 Only [- /] MitRealmName : MIT Realm which we want to enable RC4 trust on. [- /] TrustEncryp : Trust Encryption to use; DES is default [- /] TrustEncryp : is one of: [- /] TrustEncryp : RC4 : RC4 Realm Trusts (default) [- /] TrustEncryp : DES : go back to DES
要点: 不要在 ktpass 命令中使用 -pass 开关来重置 Microsoft Windows 服务器帐户的密码。有关更多信息,请参阅 Windows 2003 Technical Reference - Ktpass overview。必须将 -mapUser 选项与 ktpass 命令配合使用以允许 KDC 创建加密密钥。否则,接收到 SPENGO 时,表示它未通过验证过程并且应用程序服务器会询问用户的用户名和密码。根据加密类型的不同,可以通过下列其中一种方法使用 ktpass 工具来创建 Kerberos 密钥表文件。下一节描述了 ktpass 工具所使用的不同加密类型。运行 ktpass -? 命令来确定 Microsoft Windows 环境中的特定工具箱期望得到哪个 -crypto 参数值十分重要。已创建用于 SPNEGO TAI 的 Kerberos 密钥表文件。- 对于单一 DES 加密类型
从命令提示符运行 ktpass 命令:
ktpass -out c:\temp\myappserver.keytab -princ HTTP/myappserver.austin.ibm.com@WSSEC.AUSTIN.IBM.COM -mapUser myappserv -mapOp set -pass was1edu -crypto DES-CBC-MD5 -pType KRB5_NT_PRINCIPAL +DesOnly
表 1. 将 ktpass 用于单一 DES 加密类型. 下表描述如何将 ktpass 用于单一 DES 加密类型。
选项 说明 -out c:\temp\myappserver.keytab 密钥将写入此输出文件。 -princ HTTP/myappserver.austin.ibm.com@WSSEC.AUSTIN.IBM.COM 用户登录名的并置,并且领域必须大写。 -mapUser 密钥将映射至用户 myappserver。 -mapOp 此选项设置映射。 -pass was1edu 此选项是用户标识的密码。 -crypto DES-CBC-MD5 此选项使用单一 DES 加密类型。 -pType KRB5_NT_PRINCIPAL 此选项指定 KRB5_NT_PRINCIPAL 主体值。指定此选项以屏蔽工具箱警告消息。 +DesOnly 此选项只生成 DES 加密内容。 - 对于 RC4-HMAC 加密类型要点: 只有将 Windows 2003 Server 用作 KDC 时,才支持 RC4-HMAC 加密。在命令提示符下运行 ktpass 命令。
ktpass -out c:\temp\myappserver.keytab -princ HTTP/myappserver.austin.ibm.com@WSSEC.AUSTIN.IBM.COM -mapUser myappserver -mapOp set –pass was1edu -crypto RC4-HMAC -pType KRB5_NT_PRINCIPAL
表 2. 将 ktpass 用于 RC4-HMAC 加密类型. 此表标识和描述 RC4-HMAC 加密的 ktpass 选项
选项 说明 -out c:\temp\myappserver.keytab 密钥将写入此输出文件。 -princ HTTP/myappserver.austin.ibm.com@WSSEC.AUSTIN.IBM.COM 用户登录名的并置,并且领域必须大写。 -mapUser 密钥将映射至用户 myappserver。 -mapOp 此选项设置映射。 -pass was1edu 此选项是用户标识的密码。 -crypto RC4-HMAC 此选项选择 RC4-HMAC 加密类型。 -pType KRB5_NT_PRINCIPAL 此选项指定 KRB5_NT_PRINCIPAL 主体值。指定此选项以屏蔽工具箱警告消息。 - 对于 RC4-HMAC-NT 加密类型在命令提示符下运行 ktpass 命令。
ktpass -out c:\temp\myappserver.keytab -princ HTTP/myappserver.austin.ibm.com@WSSEC.AUSTIN.IBM.COM -mapUser myappserver -mapOp set -pass was1edu -crypto RC4-HMAC-NT -pType KRB5_NT_PRINCIPAL
表 3. 将 ktpass 用于 RC4-HMAC 加密类型. 此表描述如何对 RC4-HMAC 加密类型使用 ktpass。 选项 说明 -out c:\temp\myappserver.keytab 密钥将写入此输出文件。 -princ HTTP/myappserver.austin.ibm.com@WSSEC.AUSTIN.IBM.COM 用户登录名的并置,并且领域必须大写。 -mapUser 密钥将映射至用户 myappserver。 -mapOp 此选项设置映射。 -pass was1edu 此选项是用户标识的密码。 -crypto RC4-HMAC-NT 此选项选择 RC4-HMAC-NT 加密类型。 -pType KRB5_NT_PRINCIPAL 此选项指定 KRB5_NT_PRINCIPAL 主体值。指定此选项以屏蔽工具箱警告消息。
注: Kerberos 密钥表配置文件包含类似于用户密码的密钥列表。重要的是主机通过将其 Kerberos 密钥表文件存储在本地磁盘上,这使这些文件只能被授权的用户读取。通过将 krb5.keytab 文件从域控制器(LDAP 机器)复制到 WebSphere Application Server 机器,使密钥表文件可供 WebSphere Application Server 使用。ftp> bin ftp> put c:\temp\KRB5_NT_SEV_HST\krb5.keytab
- 对于单一 DES 加密类型
结果
Active Directory 域控制器已正确配置为处理对 WebSphere Application Server 和 SPNEGO TAI 的单点登录请求
子主题
使用 ktab 命令来管理 Kerberos 密钥表文件
Kerberos 密钥表管理器命令 (Ktab) 允许产品管理员管理本地 Kerberos 密钥表文件中存储的 Kerberos 服务主体名称和密钥。通过 IBM 软件开发包 (SDK) 或 Sun Java Development Kit (JDK) 1.6 或更高版本,可以使用 ktab 命令合并两个 Kerberos 密钥表文件。


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsec_SPNEGO_config_dc
文件名:tsec_SPNEGO_config_dc.html