# Kerberos用户指南


# 介绍

本指南分步介绍了如何在KNIME Analytics Platform上配置Kerberos (opens new window)

Kerberos的历史可以追溯到1993年,它是用于分布式应用程序的网络身份验证协议,并且它的支持也集成到KNIME大数据扩展和KNIME Extension for Apache Spark中。

您可以使用Kerberos身份验证来连接到一系列受Kerberos保护的服务。通过将KNIME Analytics Platform与大数据扩展一起使用,您可以例如使用Hive连接器节点连接到受Kerberos保护的Hive群集,或使用Impala连接器节点连接到Impala。

# 总览

要在KNIME Analytics Platform中配置Kerberos,请转至文件>首选项> KNIME> Kerberos, 然后打开Kerberos首选项页面。

如图1 (opens new window)所示,连接到Kerberos包含以下两个高级步骤:

  1. 设置Kerberos配置。
  2. 登录到Kerberos(即获取Kerberos票证)。

02首选项

图1. Kerberos首选项页面

以下各节将更详细地说明这些步骤。

如果不清楚任何Kerberos术语,则可以参考本指南底部的术语表 (opens new window)

# Kerberos配置

第一步是在KNIME Analytics Platform中配置Kerberos(请参见图1 (opens new window))。可以根据您的需要和所用系统的环境设置来选择提供的三个选项之一。

# 使用系统默认值(不建议使用)

不建议使用 此选项,因为正确的设置高度依赖于系统环境。此外,如果将首选项文件或KNIME Analytics Platform移至另一台计算机,则该文件可能不再起作用。但是,如果要保持现有设置运行,或者要在KNIME Analytics Platform外部管理Kerberos配置,请选择此选项。

选择此选项时,KNIME Analytics Platform将查看krb5.conf(Kerberos客户端配置文件)的一组默认位置。

# 可能的位置 krb5.conf

KNIME Analytics Platform将按照给定的顺序尝试以下位置:

  1. 首先,它检查是否java.security.krb5.conf设置了系统属性。如果是这样,它将尝试从此系统属性中指定的位置读取文件。

  2. 否则,它将尝试krb5.conf从KNIME Analytics Platform的Java运行时环境中读取:

    <knime-analytics-platform-installation> /plugins/org.knime.binary.jre。<版本> /jre/lib/security/krb5.conf
    
  3. 如果以上操作仍然失败,它将尝试以下操作系统相关的位置:

    • 视窗: C:\Windows\krb5.ini
    • Linux / MacOS: /etc/krb5.conf

有关更多信息,请参考Kerberos文档 (opens new window)

# 使用Kerberos客户端配置文件(krb5.conf

建议使用此选项来配置KNIME Analytics Platform,因为它允许完全配置Kerberos客户端配置文件(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)一部分进行了完整描述。

现在,将krb5.conf文件移动到您选择的位置,KNIME Analytics Platform可以在该位置访问该文件,然后在“ Kerberos首选项”页面中输入文件路径。建议将文件存储在KNIME Analytics Platform安装文件夹之外,以避免在升级过程中意外删除它。

# 使用领域和KDC

最简单的方法是直接在Kerberos首选项页面中插入:

  • 领域的名称(名称必须使用大写字母)
  • KDC的IP或主机名

根据输入领域和KDC,krb5.conf将生成文件。

# 登录到Kerberos

# 如何登入

配置Kerberos后,下一步是选择以下身份验证方法之一以登录Kerberos。

# 使用系统票证缓存(不鼓励使用)

不建议使用 此选项。

如果要从系统票证缓存中获取票证授予票证(TGT),请选择此选项。票证缓存将在以下位置搜索:

  • 在Solaris和Linux上:/tmp/krb5cc_uid其中uid为数字用户标识符。

  • 在Windows上:

    • C:\Users\\krb5cc_

    • 否则,如果文件不存在或不包含有效的TGT,则将从本地安全机构(LSA)API获取该TGT。

      在最新的Windows版本上,需要Java进程(例如KNIME Analytics Platform)对Windows注册表进行进一步更改,才能从LSA读取TGT。不建议使用这种类型的设置,因为它会带来安全风险。

如果系统上存在有效的TGT,则无需采取进一步措施即可登录Kerberos。

有关此的更多信息,请查阅Oracle文档 (opens new window)

# 使用用户名和密码

建议使用用户名和密码登录Kerberos。用户名和密码将在登录时提示。

# 使用密钥表

选择此选项以使用PrincipalKeytab。然后,无需进一步的用户交互即可登录Kerberos。

# 状态栏

在首选项页面的下方,在状态栏部分下,可以选择永久显示登录状态选项 ,如图2 (opens new window)所示。

04状态栏

图2. Kerberos状态栏

启用此选项将在KNIME Analytics Platform的下部栏中显示Kerberos登录状态(请参见图3 (opens new window))。此选项的优点是您可以随时登录/注销并检查Kerberos状态,而不必打开Kerberos首选项页面。

04登录栏

图3. KNIME Analytics Platform中的Kerberos状态栏

右键单击状态栏将打开一个包含两个选项的菜单:

04登录状态菜单

图4. Kerberos状态栏菜单

  • 登录触发登录过程。选择要登录的用户名和密码,将打开一个弹出窗口。在这里,您可以输入Kerberos凭据(请参见下面的图5 (opens new window))。

    双击状态栏也将触发登录过程。

04登录提示

图5.登录提示输入用户名和密码

  • 首选项打开Kerberos首选项页面。也可以通过转到文件>首选项> KNIME> Kerberos来实现

# 状态

配置并选择身份验证方法后,您可以在首选项页面的下部检查设置的有效性。

这里显示了一些信息:

  • 状态通常显示Kerberos状态,例如,如果发生任何错误,它将显示红色消息。
  • 在“日志”下,单击“*查看调试日志”*以查看Kerberos调试日志消息。将出现一个弹出窗口,显示与Kerberos相关的所有日志消息。请确保事先启用Kerberos调试日志记录(请查看“调试日志记录” (opens new window)部分以获取更多信息)。
  • 单击验证按钮以验证Kerberos配置。
  • 单击“*登录”*按钮以登录Kerberos。

04 kerberos状态

图6. Kerberos状态

# 调试日志

如果您在Kerberos设置上遇到问题,启用Kerberos日志记录以获得有关该问题的更多信息将很有帮助。要启用Kerberos日志记录,只需 在Kerberos首选项页面中选中选项Kerberos调试日志记录到KNIME日志和控制台选项(转到文件>首选项> KNIME> Kerberos)。

05 Kerberos调试

图7.启用调试日志

重新启动KNIME Analytics Platform后,其他Kerberos信息将显示在KNIME控制台和KNIME日志文件中。

您应重新启动KNIME Analytics Platform,以使更改生效。

05调试日志

图8.查看调试日志

要仅查看与Kerberos相关的日志消息,请在“ Kerberos首选项”页面中单击“查看调试日志”。将打开一个新的弹出窗口,其中包含Kerberos调试日志消息(请参见图8 (opens new window))。请注意,您需要事先启用选项 Kerberos调试日志记录到KNIME日志和控制台,才能查看日志消息。

# 词汇表

  • KDC密钥分发中心,一个处理Kerberos身份验证的服务器。
  • 主体Kerberos等效于用户名。在Kerberos中,主体标识用户或服务。例子:
    • 用户主体: joe@MYCOMPANY.COM
    • 服务主体(在本例中为Hive Server 2): hive/server.mycompany.com@MYCOMPANY.COM
  • 领域指示管理域。用户和服务都使用其密码在域中注册为主体。例:MYCOMPANY.COM
  • 票证一条数据,可证明您已验证自己为委托人。
  • 票证缓存保存您的Kerberos票证。为了使用KNIME Analytics Platform,票证需要存储在基于文件的票证缓存中,如KRB5CCNAME环境变量所指定。