# Kerberos管理指南


# 总览

KNIME Server执行工作流,这些工作流可能尝试访问受Kerberos保护的服务,例如Apache Hive™,Apache Impala™和ApacheHadoop®HDFS™。

本指南介绍了如何配置KNIME Server,以便它可以针对Kerberos进行身份验证。

要在KNIME Analytics Platform上配置Kerberos,请参阅Kerberos用户指南 (opens new window)

# 先决条件

设置KNIME Server进行Kerberos身份验证具有以下先决条件:

  • 对于Kerberos:
    • 现有的Kerberos KDC,例如MIT Kerberos或Microsoft ActiveDirectory
    • KNIME服务器的服务主体。推荐的格式为knimeserver/@,其中:
      • `` 是运行KNIME Server的计算机的标准域名,
      • `` 是Kerberos领域。
    • KNIME服务器服务主体的密钥表文件。
    • Kerberos客户端配置文件(krb5.conf)。或者,可以手动创建(请参阅“设置”krb5.conf (opens new window)一节)。
  • 对于KNIME服务器:
    • 现有的KNIME服务器安装。
    • 在安装KNIME Server的计算机上具有管理特权的帐户。该帐户需要能够编辑KNIME Server配置文件并重新启动KNIME Server。

# 配置 krb5.conf

krb5.conf在Kerberos身份验证期间,KNIME服务器执行程序可能需要读取文件。在这种情况下,krb5.conf需要获取有效文件。如果文件的位置未知或文件不可用,请联系本地管理员。

# 建立krb5.conf档案

或者,krb5.conf可以手动创建文件。最小配置文件如下所示:

[libdefaults]
default_realm = MYCOMPANY.COM

[领域]
MYCOMPANY.COM = {
  kdc = kdc.mycompany.com
  admin_server = kdc.mycompany.com
}

上面的示例声明Kerberos领域称为MYCOMPANY.COM,而Kerberos KDC的主机名是kdc.mycompany.com。调整这些值以适合所使用的设置。根据特定的设置,可能需要更多的配置设置。该krb5.conf格式作为MIT Kerberos文档的 (opens new window)一部分进行了完整描述。

# KNIME首选项

KNIME Server允许分发自定义配置文件 (opens new window),该配置文件 (opens new window)可用于将Kerberos首选项(包括krb5.conf)自动分发给所有已连接的KNIME Server执行程序和KNIME Analytics Platform客户端。

建议为KNIME Server执行程序和KNIME Analytics Platform客户端创建单独的自定义配置文件。

Kerberos配置首选项存储在首选项文件中(文件名以结尾.epf)。下表包含所有受支持的Kerberos配置选项。

/instance/org.knime.kerberos/org.knime.kerberos.conf=指定Kerberos配置选项。替换``为:FILE:使用Kerberos客户端配置文件(krb5.conf)。DEFAULT:使用系统默认值(禁用)。REALM_KDC:直接在首选项文件中提供领域和KDC。
/instance/org.knime.kerberos/org.knime.kerberos.conf.file=指定krb5.conf文件位置。替换``为的路径krb5.conf。 仅FILE在以上选项中选择时,此配置才适用。
/instance/org.knime.kerberos/org.knime.kerberos.kdc=指定KDC值。替换``为KDC的IP或主机名。 仅REALM_KDC在上面列出的第一个选项中选择时,此配置才适用。
/instance/org.knime.kerberos/org.knime.kerberos.realm=指定领域值。用``领域名称替换(名称必须使用大写字母)。 仅REALM_KDC在上面列出的第一个选项中选择时,此配置才适用。
/instance/org.knime.kerberos/org.knime.kerberos.authMethod=指定Kerberos身份验证方法。替换``为:KEYTAB:使用keytab和服务主体。建议KNIME Server执行程序使用。USER_PWD:使用用户名和密码。建议为KNIME Analytics Platform客户使用。
/instance/org.knime.kerberos/org.knime.kerberos.keytabFile=指定密钥表文件的位置。 如果此配置只KEYTAB被选择作为验证方法。建议使用Keytab作为KNIME Server执行程序的身份验证方法。在这种情况下,密钥表不能存储在配置文件文件夹中,而必须存在于KNIME Server执行程序机器上,以便首选项可以通过本地路径引用它。
/instance/org.knime.kerberos/org.knime.kerberos.keytabPrincipal=指定密钥表服务主体值。 如果此配置只KEYTAB被选择作为验证方法。
/instance/org.knime.kerberos/org.knime.kerberos.showIcon=指定是否在KNIME Analytics Platform的下部显示Kerberos登录状态栏。 该配置仅适用于KNIME Analytics Platform客户端。
/instance/org.knime.kerberos/org.knime.kerberos.debug=指定是否启用Kerberos调试。
/instance/org.knime.kerberos/org.knime.kerberos.debugLogLevel=如果启用了Kerberos调试,则指定日志级别。替换``为WARNERROR

# 对于KNIME Server执行者

本节包含逐步指南,以创建自定义配置文件以将Kerberos首选项分发给所有KNIME Server执行程序:

  1. 在中创建一个配置文件文件夹/config/client-profiles。文件夹的名称与配置文件的名称相对应。该文件夹应包含首选项文件和krb5.conf要分发的其他文件,例如。

  2. 在配置文件文件夹中,创建一个首选项文件(文件名以结尾.epf)。该文件的内容取决于要使用的Kerberos配置和身份验证方法。例如,推荐给KNIME Server执行程序的Kerberos配置如下所示:

    /instance/org.knime.kerberos/org.knime.kerberos.conf=文件
    /instance/org.knime.kerberos/org.knime.kerberos.conf.file=${profile:location}/krb5.conf
    /instance/org.knime.kerberos/org.knime.kerberos.authMethod=KEYTAB
    /instance/org.knime.kerberos/org.knime.kerberos.keytabFile= <PATH_TO_KEYTAB>
    /instance/org.knime.kerberos/org.knime.kerberos.keytabPrincipal= <PRINCIPAL_VALUE>
    
    如果krb5.conf使用,则将krb5.conf文件复制到配置文件文件夹中,以便将其与首选项文件一起分发给所有KNIME Server执行程序。
    keytab文件的路径和 服务主体替换。密钥表不得存储在配置文件文件夹中,而必须存在于KNIME Server执行程序机器上,以便首选项可以通过本地路径对其进行引用。
    请检查上 (opens new window)以获取有关所有受支持的Kerberos配置的更多信息。
  3. 需要使KNIME Server执行者知道自定义配置文件,以便他们可以向KNIME Server请求。请参阅服务器管理指南 (opens new window)相应部分 (opens new window) ,以获取有关如何进行设置的完整参考。

# 对于KNIME Analytics Platform客户

以下是创建自定义配置文件以将Kerberos首选项分发给所有KNIME Analytics Platform客户端的分步指南。

  1. 在中创建一个配置文件文件夹/config/client-profiles。文件夹的名称与配置文件的名称相对应。该文件夹应包含首选项文件和krb5.conf要分发的其他文件,例如。

  2. 在配置文件文件夹中,创建一个首选项文件(文件名以结尾.epf)。该文件的内容取决于要使用的Kerberos配置和身份验证方法。例如,为KNIME Analytics Platform客户端推荐的Kerberos配置如下所示:

    /instance/org.knime.kerberos/org.knime.kerberos.conf=文件
    /instance/org.knime.kerberos/org.knime.kerberos.conf.file=${profile:location}/krb5.conf
    /instance/org.knime.kerberos/org.knime.kerberos.authMethod=USER_PWD
    /instance/org.knime.kerberos/org.knime.kerberos.showIcon=true
    
    如果krb5.conf使用,则将krb5.conf文件复制到配置文件文件夹,以便将其与首选项文件一起分发给所有KNIME Analytics Platform客户端。

    除了手动编写首选项行外,另一种可能性是在KNIME Analytics Platform中以图形方式配置Kerberos首选项,然后导出首选项并将相关行复制到配置文件中。有关更多信息,请参阅从KNIME Analytics Platform导出首选项 (opens new window)部分。

  3. 需要使KNIME Analytics Platform客户端知道自定义配置文件,以便他们可以向KNIME Server请求。请参阅服务器管理指南 (opens new window)相应部分 (opens new window),以 获取有关如何进行设置的完整参考。在KNIME Analytics Platform中,转到文件首选项KNIME定制配置文件,打开“*定制配置文件”*页面,可以在其中选择要使用的KNIME服务器和配置文件。更改将在重启KNIME Analytics Platform后生效。

# 从KNIME Analytics Platform导出首选项

本节介绍了一种以图形方式设置Kerberos首选项的替代方法,而不是手动编写首选项行(请参阅上一节中的 (opens new window)步骤2 )。可以在KNIME Analytics Platform的“首选项”页面中以图形方式配置Kerberos首选项。之后,可以导出首选项,并将相关行复制到配置文件中。

  1. 启动KNIME Analytics Platform。

  2. 通过文件首选项KNIMEKerberos设置所有Kerberos首选项, 并通过文件导出首选项导出这些首选项。 有关Kerberos首选项页面的更多信息,请参考《Kerberos用户指南》 (opens new window)

  3. 打开导出的首选项文件,然后将所有以开头的行复制/instance/org.knime.kerberos/ 到概要文件中。有关首选项文件的更多信息,请检查 (opens new window)服务器管理指南》 (opens new window)“首选项文件” (opens new window) 部分。

  4. 请确保在首选项中设置的所有路径在服务器上均有效:

    • 如果krb5.conf使用,则krb5.conf需要将文件复制到配置文件文件夹中,以便将其与首选项文件一起分发给所有KNIME Server执行程序。之后,将路径更改krb5.conf为以下内容:

      /instance/org.knime.kerberos/org.knime.kerberos.conf.file=${profile:location}/krb5.conf
      
    • 如果使用keytab,请确保KNIME Server可以访问该路径。

# 故障排除

# Kerberos调试

如果Kerberos身份验证失败,则激活Kerberos调试日志记录可以深入了解发生这种情况的原因。要激活Kerberos调试日志记录,请将以下行添加到首选项文件中(请检查上一节 (opens new window) 以获取有关首选项文件的更多信息)。

/instance/org.knime.kerberos/org.knime.kerberos.debug=true

调试日志级别INFO默认设置为,但是可以通过添加以下行来更改它:

/instance/org.knime.kerberos/org.knime.kerberos.debugLogLevel= <LOG_LEVEL>

在哪里``可以用WARN或代替ERROR

请检查包含所有受支持的Kerberos配置选项的 (opens new window),以获取更多信息。

然后,重新启动KNIME Server Executor,并运行可访问受Kerberos保护的服务的工作流。然后,knime.log将包含Kerberos调试消息。可以在KNIME Server计算机上的以下位置找到knime.log:

<服务器存储库> / runtime / runtime_knime-rmi_ <后缀> /。metadata / knime / knime.log

根据配置的不同,``可以是数字,用户名或两者的组合。