Kerberos 配置文件
要将简单且受保护的 GSS-API 协商机制 (SPNEGO) 信任关联拦截器 (TAI) 用于 WebSphere® Application Server,必须在单元中的每个 WebSphere Application Server 实例中配置 Kerberos 配置属性 krb5.ini 或 krb5.conf 文件。

操作系统 | 缺省位置 |
---|---|
Windows | c:\winnt\krb5.ini 注: 如果 krb5.ini 文件不在 c:\winnt 目录中,那么它可能位于 c:\windows 目录中。
|
Linux | /etc/krb5.conf |
其他基于 UNIX 的系统 | /etc/krb5/krb5.conf |
z/OS | /etc/krb5/krb5.conf |
IBM i | /QIBM/UserData/OS400/NetworkAuthentication/krb5.conf |
对于 SPNEGO TAI,如果不使用缺省位置和 Kerberos 配置文件名,那么必须指定 JVM 属性 java.security.krb5.conf。
Windows 上的缺省 Kerberos 配置文件是 /winnt/krb5.ini,而在分布式环境上,该文件是 /etc/krb5。如果您指定另一个位置路径,那么还必须指定 JVM 属性 java.security.krb5.conf。
例如,如果在 /opt/IBM/WebSphere/profiles/AppServer/etc/krb5.conf 处指定了 krb5.conf 文件,那么需要指定 -Djava.security.krb5.conf=/opt/IBM/WebSphere/profiles/AppServer/etc/krb5.conf。
- 由 Java™ 属性 java.security.krb5.conf 引用的文件
- <java.home>/lib/security/krb5.conf
- Microsoft Windows 平台上的 c:\winnt\krb5.ini
- UNIX 平台上的 /etc/krb5/krb5.conf
- /etc/krb5.conf on Linux platforms。
- 启动 WebSphere Application Server。
通过运行 app_server_root/bin 目录中的 wsadmin 命令来启动命令行实用程序。
通过从 Qshell 命令行运行 app_server_root/bin 目录中的 wsadmin 命令来启动命令行实用程序。
- 在 wsadmin 提示符下,输入以下命令:
$AdminTask createKrbConfigFile
可以将以下参数用于此命令:表 2. 命令参数. 下表描述 $AdminTask createKrbConfigFile 命令的参数。 选项 描述 <krbPath> 此参数是必需的。它提供 Kerberos 配置(krb5.ini 或 krb5.conf)文件的标准文件系统位置。 <realm> 此参数是必需的。它提供 Kerberos 领域的名称。SPNEGO TAI 使用此属性的值来形成通过属性 com.ibm.ws.security.spnego.SPNid.hostName 指定的每台主机的 Kerberos 服务主体名称。 <kdcHost> 此参数是必需的。它提供 Kerberos 密钥分发中心 (KDC) 的主机名。 <kdcPort> 此参数是可选的。它提供 KDC 的端口号。如果未指定值,那么缺省值为 88。 <dns> 此参数是必需的。它提供用来生成标准主机名的缺省域名服务 (DNS)。 <keytabPath> 此参数是必需的。它提供 Kerberos 密钥表文件的文件系统位置。 <encryption> 此参数是可选的。它标识受支持的加密类型的列表,各个类型之间用空格分隔。指定的值用于 default_tkt_enctypes 和 default_tgs_enctypes。如果未指定类型,那么缺省加密类型为 des-cbc-md5 和 rc4-hmac。
在以下示例中,wsadmin 命令在 c:\winnt 目录中创建 krb5.ini 文件。缺省 Kerberos 密钥表文件也位于 c:\winnt 中。Kerberos 领域的实际名称是 WSSEC.AUSTIN.IBM.COM,KDC 主机名是 host1.austin.ibm.com。
wsadmin>$AdminTask createKrbConfigFile {-krbPath
c:\winnt\krb5.ini -realm WSSEC.AUSTIN.IBM.COM -kdcHost host1.austin.ibm.com
-dns austin.ibm.com -keytabPath c:\winnt\krb5.keytab}
[libdefaults]
default_realm = WSSEC.AUSTIN.IBM.COM
default_keytab_name = FILE:c:\winnt\krb5.keytab
default_tkt_enctypes = des-cbc-md5 rc4-hmac
default_tgs_enctypes = des-cbc-md5 rc4-hmac
[realms]
WSSEC.AUSTIN.IBM.COM = {
kdc = host1.austin.ibm.com:88
default_domain = austin.ibm.com
}
[domain_realm]
.austin.ibm.com = WSSEC.AUSTIN.IBM.COM
Kerberos 密钥表文件包含一组类似于用户密码的密钥。主机通过将其 Kerberos 密钥表文件存储在本地磁盘上来保护这些文件,这一点至关重要。 krb5.conf 文件许可权必须是 644,这意味着您可以读写该文件;但是,文件所隶属的组的成员以及所有其他成员都只能读该文件。
Kerberos 密钥表文件包含一组类似于用户密码的密钥。主机通过将其 Kerberos 密钥表文件存储在本地磁盘上来保护这些文件,这一点至关重要。 krb5.conf 文件许可权必须是 644,这意味着您可以读写该文件;但是,文件所隶属的组的成员以及所有其他成员都只能读该文件。用来运行附件、控件和服务方的用户标识必须对 krb5.conf 和 krb5.keytab 文件具有读访问权。
- 如果运行时无法读取 krb5.ini 文件中的 default_tkt_enctypes 或 default_tgs_enctypes 条目、它们的值不存在或值不受支持,那么缺省情况下将使用 DES-CBC-MD5 值。
![[IBM i]](../images/iseries.gif)
- 将 krb5.conf 文件中的三元组替换为它们表示的字符。
- 使用由 WebSphere Application Server 生成的 krb5.conf 文件。
- 使用 Microsoft Windows 或密钥分发中心 (KDC) 生成的密钥表文件。
Kerberos 配置设置、Kerberos 密钥分发中心 (KDC) 名称及简单且受保护的 GSS-API 协商机制 (SPNEGO) 信任关联拦截器 (TAI) 的领域设置将在 Kerberos 配置文件中提供,或者通过 java.security.krb5.kdc 和 java.security.krb5.realm 系统属性文件提供。