Kerberos 配置文件

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

已弃用的功能:在WebSphere Application Server版本6.1 ,引入了一个信任关联拦截器 (TAI),它使用简单且受保护的 GSS-API 协商机制 (SPNEGO) 来安全地协商和验证对安全资源的 HTTP 请求。 在WebSphere Application Server7.0 ,此功能现已弃用。 SPNEGO Web 认证已取代该 TAI,以提供动态重新装入 SPNEGO 过滤器的功能以及对应用程序登录方法启用回退。
Windows 的缺省 Kerberos 配置文件名为 krb5.ini。 对于其他平台,缺省 Kerberos 配置文件名为 krb5.conf。 本节的随后内容显示了 Kerberos 配置文件的缺省位置:
表 1. 默认位置Kerberos配置文件 下表描述 Kerberos 配置文件的缺省位置。
操作系统 缺省位置
窗户 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
注: 如果不使用缺省位置和 Kerberos 配置文件名,那么必须更新 soap.client.prop, ipc.client.props和 sas.client.props 文件中的 *.krb5ConfigFile 属性。 此外,如果客户机程序化登录使用 WSKRBLogin 模块,那么还必须设置 java.security.krb5.conf JVM 属性。

对于 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

WebSphere 运行时代码按如下顺序搜索 Kerberos 配置文件:
  1. Java™ 属性 java.security.krb5.conf 引用的文件
  2. <java.home>/lib/security/krb5.conf
  3. Microsoft Windows 平台上的 c:\winnt\krb5.ini
  4. UNIX 平台上的 /etc/krb5/krb5.conf
  5. /etc/krb5.conf on Linux platforms.
使用 wsadmin 实用程序为 WebSphere Application Server配置 SPNEGO TAI:
  1. 启动 WebSphere Application Server。
  2. [AIX Solaris HP-UX Linux Windows][z/OS]通过从以下命令中运行 wsadmin 命令来启动命令行实用程序:app_server_root/bin目录。
  3. [IBM i]通过从以下命令中运行 wsadmin 命令来启动命令行实用程序:app_server_root/bin来自 Qshell 命令行的目录。
  4. 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。

在以下示例中, wsadmin 命令将创建krb5.ini文件中的文件c:\winnt目录。 缺省 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}
上一个 wsadmin 命令将创建 krb5.ini 文件,如下所示:
[libdefaults]
 default_realm = WSSEC.AUSTIN.IBM.COM
        default_keytab_name = FILE:c:\winnt\krb5.keytab
        default_tkt_enctypes = aes256-cts-hmac-sha1-96
        default_tgs_enctypes = aes256-cts-hmac-sha1-96
[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
注:
  • [AIX Solaris HP-UX Linux Windows][IBM i] Kerberos 密钥表文件包含类似于用户密码的密钥列表。 主机应通过将其 Kerberos 密钥表文件存储在本地磁盘上来保护这些文件。 krb5.conf 文件许可权必须是 644,这意味着您可以读写该文件;但是,文件所隶属的组的成员以及所有其他成员都只能读该文件。
  • [z/OS]Kerberos 密钥表文件包含一组类似于用户密码的密钥。 主机应通过将其 Kerberos 密钥表文件存储在本地磁盘上来保护这些文件。 krb5.conf 文件许可权必须是 644,这意味着您可以读写该文件;但是,文件所隶属的组的成员以及所有其他成员都只能读该文件。 用来运行附件、控件和服务方的用户标识必须对 krb5.confkrb5.keytab 文件具有读访问权。
[IBM i]krb5.conf 配置文件支持三元组以表示 {、}、[ 和 ] 字符。 这些字符取决于语言集。 Kerberos 客户机不能读取本机生成的密钥表。 如果您未能使用本机 krb5.conf 或 krb5.keytab 文件来配置 SPNEGO TAI,请完成下列其中一种方案来解决三元组问题:
  • 将 krb5.conf 文件中的三元组替换为它们表示的字符。
  • 使用 WebSphere Application Server生成的 krb5.conf 文件。
  • 使用 Microsoft Windows 或密钥分发中心 (KDC) 生成的密钥表文件。

Kerberos 配置设置、Kerberos 密钥分发中心 (KDC) 名称及简单且受保护的 GSS-API 协商机制 (SPNEGO) 信任关联拦截器 (TAI) 的领域设置将在 Kerberos 配置文件中提供,或者通过 java.security.krb5.kdcjava.security.krb5.realm 系统属性文件提供。