【发布时间】:2017-06-08 20:01:46
【问题描述】:
我在 Kerborized 环境中有 Nifi 3 节点集群(通过 Hortonworks Data Flow - HDF 安装)。作为安装的一部分,Ambari 创建了 nifi service keytab 。 嗨
我可以使用这个 nifi.service.keytab 来配置像 PutHDFS 这样与 Hadoop 服务通信的处理器吗?
nifi.service.keytab 是特定于机器的,并且总是期望带有机器信息的主体名称。 ex nifi/HOSTNAME@REALM
如果我使用 nfii/NODE1_Hostname@REALM 信息配置我的处理器,那么我会在其他两个节点中看到 kerberos 身份验证异常。
如何动态解析主机名以使用 nifi 服务密钥表?
【问题讨论】:
-
NiFi 服务使用
service/host.fqdn@REALM形式的“服务主体名称”。客户端使用someone@REALM形式的基本“主要名称”;身份验证过程分两步完成,首先客户端获取 TGT (ticket-granting ticket) 作为身份证明,然后使用 TGT 获取服务票据以访问特定主机。 IE。在故障转移到另一台主机的情况下,它必须获得另一个服务票证;解析由 NiFi 客户端库自动完成。 -
@SamsonScharfrichter 问题是如果我在 Nifi 处理器中配置服务密钥表,它不会动态解析主机名。因为在主体与机器名称不匹配的情况下,哪个处理器开始失败。
-
是的,这就是为什么您需要在 Kerberos 目录中 三个 不同的条目,以及 3 个不同的密钥表,每个节点一个...除非您使用 Microsoft AD 作为 Kerberos KDC -- 它工作方式略有不同(对于 AD,SPN 不是 ID,而是标准帐户的属性)
-
请记住,Kerberos 是在分布式处理(甚至负载平衡器)流行之前 几十年 定义的。它对主机身份验证(包括反向 DNS 扫描)以及其他 thibgs 非常谨慎。
标签: apache-nifi hortonworks-dataflow