# 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调试,则指定日志级别。替换``为WARN 或ERROR 。 |
# 对于KNIME Server执行者
本节包含逐步指南,以创建自定义配置文件以将Kerberos首选项分发给所有KNIME Server执行程序:
在中创建一个配置文件文件夹
/config/client-profiles
。文件夹的名称与配置文件的名称相对应。该文件夹应包含首选项文件和krb5.conf
要分发的其他文件,例如。在配置文件文件夹中,创建一个首选项文件(文件名以结尾
.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配置的更多信息。 需要使KNIME Server执行者知道自定义配置文件,以便他们可以向KNIME Server请求。请参阅服务器管理指南 (opens new window)的相应部分 (opens new window) ,以获取有关如何进行设置的完整参考。
# 对于KNIME Analytics Platform客户
以下是创建自定义配置文件以将Kerberos首选项分发给所有KNIME Analytics Platform客户端的分步指南。
在中创建一个配置文件文件夹
/config/client-profiles
。文件夹的名称与配置文件的名称相对应。该文件夹应包含首选项文件和krb5.conf
要分发的其他文件,例如。在配置文件文件夹中,创建一个首选项文件(文件名以结尾
.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)部分。
需要使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首选项。之后,可以导出首选项,并将相关行复制到配置文件中。
启动KNIME Analytics Platform。
通过文件→首选项→ KNIME → Kerberos设置所有Kerberos首选项, 并通过文件→ 导出首选项导出这些首选项。 有关Kerberos首选项页面的更多信息,请参考《Kerberos用户指南》 (opens new window)。
打开导出的首选项文件,然后将所有以开头的行复制
/instance/org.knime.kerberos/
到概要文件中。有关首选项文件的更多信息,请检查《 (opens new window)服务器管理指南》 (opens new window)的“首选项文件” (opens new window) 部分。请确保在首选项中设置的所有路径在服务器上均有效:
如果
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
根据配置的不同,``可以是数字,用户名或两者的组合。