使用管理控制台将 Kerberos 配置成认证机制

可使用管理控制台将 Kerberos 配置成应用程序服务器的认证机制。您输入所需信息并将其应用于配置之后,Kerberos 服务主体名称将构造为 <service name>/<fully qualified hostname>@KerberosRealm 并用于验证入局 Kerberos 令牌请求。

开始之前

请阅读对于安全性的 Kerberos (KRB5) 认证机制支持以了解此版本的 WebSphere® Application Server 中的 Kerberos 认证机制。在使用管理控制台将 Kerberos 配置为认证机制之前,必须已完成下列步骤:

  • 如果您还没有 Kerberos 配置文件 krb5.inikrb5.conf,请使用 createkrbConfigFile 命令任务来创建该 Kerberos 配置文件。有关更多信息,请参阅创建 Kerberos 配置文件
  • 对于每台运行 WebSphere Application Server 的机器,都必须有一个包含 Kerberos 服务主体名称 (SPN) <service_name>/<fully_qualified hostname>@KerberosRealm 的 Kerberos 密钥表文件 krb5.keytab。服务名称可以是您选择的任何内容;缺省值是 WAS

    例如,如果您有两台应用程序服务器机器 host1.austin.ibm.comhost2.austin.ibm.com,那么 Kerberos 密钥表文件必须包含 <service_name>/host1.austin.ibm.com<service_name>/host2.austin.ibm.com 这两个 SPN 及其 Kerberos 密钥。

    对于每个会话,Kerberos 将只装入并使用一个密钥表文件。例如,如果已配置 Kerberos,并且要使用名称和位置与先前密钥表文件都相同的新密钥表文件,那么必须先重新启动服务器才能使用新的密钥表文件。

    如果您是第一次配置 Kerberos,并且意外地使用了错误的密钥表文件,那么必须先取消配置 Kerberos 并重新启动服务器,然后才能使用新的密钥表文件来再次配置 Kerberos。但是,如果已安装带有 SP3 的 Java™ SE 开发包 (JDK),那么不必如此。

必须先启用全局安全性和应用程序安全性。

如果是在全局安全性中配置了 Kerberos,但您要在域 (domain) 上使用不同的 Kerberos 域 (realm) 来配置“简单且受保护的 GSS-API 协商”(SPNEGO),那么必须先使用 Java ktab -m 命令,将现有密钥表文件合并到一个密钥表文件。然后,使用合并后的密钥表文件对全局安全性和域安全性配置 Kerberos 和 SPNEGO。

过程

  1. 在管理控制台中,请单击安全性 > 全局安全性
  2. 在“认证”中,单击 Kerberos 配置
  3. 输入 Kerberos 服务名称。 按照惯例,Kerberos 服务主体分为三部分:主体、实例和 Kerberos 域名。Kerberos 服务主体名称的格式为 <service_Name>/<fully_qualified hostName>@KERBEROS_REALM。Kerberos 服务主体名称的第一部分是服务名称。例如,在 WAS/test.austin.ibm.com@AUSTIN.IBM.COM 中,服务名称是 WAS。在此示例中,密钥表文件必须包含 Kerberos 服务主体名称 WAS/test.austin.ibm.com@AUSTIN.IBM.COM 以及它的密钥。

  4. 输入 Kerberos 配置文件名,或者单击浏览以找到该文件。 Kerberos 客户机配置文件 krb5.confkrb5.ini 包含 Kerberos 配置信息,包括您感兴趣的领域的密钥分发中心 (KDC) 位置。krb5.conf 文件是除 Windows 操作系统之外的所有其他平台使用的缺省文件名,而 Windows 操作系统将使用 krb5.ini 文件。
    注: Kerberos 配置文件名和 Kerberos 密钥表文件名路径不必是绝对路径。可以改为对路径使用 WebSphere 变量。在混合平台环境中,可以使用 ${CONF_OR_INI} 变量来表示 Kerberos 配置文件。安全性配置会将其展开为 ini(对于 Windows)或 conf(对于非 Windows 平台)。例如:
    ${WAS_INSTALL_ROOT}\etc\krb5\krb5.${CFG_OR_INI}
  5. 可选: 输入 Kerberos 密钥表文件名,或者单击浏览以找到该文件。 Kerberos 密钥表文件包含一个或多个 Kerberos 服务主体名称和密钥。缺省密钥表文件是 krb5.keytab。主机通过将其 Kerberos 密钥表文件存储在本地磁盘上来保护这些文件很重要,这使这些文件只能被授权用户读取。请阅读创建 Kerberos 服务主体名称和密钥表文件以了解更多信息。如果未指定此参数,那么将使用 Kerberos 配置文件中的缺省密钥表。
    注: Kerberos 配置文件名和 Kerberos 密钥表文件名路径不必是绝对路径。可以改为对路径使用 WebSphere 变量。
    ${WAS_INSTALL_ROOT}\etc\krb5\krb5.keytab
  6. Kerberos 领域名字段中输入 Kerberos 领域的名称。 大多数情况下,您的域是用大写字母表示的域名。如果您未指定此参数,那么将使用 Kerberos 配置文件中的缺省 Kerberos 域名。

    例如,如果一台机器的域名为 test.austin.ibm.com,那么它的 Kerberos 领域名为 AUSTIN.IBM.COM

    注: Microsoft KDC 的 Kerberos 域名是域控制器名称的大写形式。
  7. 可选: 缺省情况下,从主体名称中除去 Kerberos 领域处于选中状态。如果要保留 Kerberos 主体名称后缀,那么可以取消选中此选项。 此选项指定 Kerberos 登录模块是否从 Kerberos 领域名前面的 @ 开始除去主体用户名后缀。如果此属性设置为 true,那么将移除主体用户名的后缀。如果此属性设置为 false,那么将保留主体名称的后缀。使用的缺省值为 true

  8. 可选: 缺省情况下,允许委派 Kerberos 凭证处于选中状态。 此选项指定是否从客户机请求中抽取 Kerberos 委派的凭证。如果作为请求的组成部分向客户机发送 Kerberos 委派凭证,那么 Kerberos 认证令牌 (KRBAuthnToken) 将根据客户机主体名称和客户机委派 Kerberos 凭单进行创建。KRBAuthnToken 存储在客户机主体集中。KRBAuthnToken 将作为安全性属性传播的组成部分传播到下游服务器。如果客户应用程序需要 GSSCredential 以便向后端资源或下游服务器进行认证,那么您必须使用 com.ibm.wsspi.wssecurity.platform.token.KRBAuthnToken.getGSSCredential() 方法从 KRBAuthnToken 中检索 GSSCredential 并将其放入主体集。

    如果未选中此选项,那么 KRBAuthnToken 将只包含 Kerberos 主体名称。

    注: 如果此参数为 true,而运行时环境无法抽取客户机 GSS 委派凭证,那么将显示警告消息。
  9. 单击确定

结果

您选择应用确定时,将自动测试 Kerberos 认证。如果 Kerberos 配置不完整,那么将显示一条消息以指示认证失败。

您现在已配置 Kerberos,并将其保存为 WebSphere Application Server 的认证机制。

下一步做什么

要启用 SPNEGO,请单击“相关配置”中的 SPNEGO Web 认证启用

SPNEGO Web 认证和 Kerberos 认证使用相同的 Kerberos 客户机配置和密钥表文件。

当您尝试向管理控制台进行认证时,请使用存在于与应用程序服务器相关联的 KDC 中的管理用户标识。如果使用存在于与管理控制台无关的另一 KDC 中的管理用户标识,那么登录过程将失败,并且日志文件将包含以下错误消息:
SECJ9200E: No Kerberos credential found in subject credential set.
例如,客户机与应用程序服务器可能与不同的 KDC 相关联。

指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsec_kerb_auth_mech
文件名:tsec_kerb_auth_mech.html