问题标签 [knox-gateway]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cloudera-cdh - 从 Knox 访问 Cloudera 上的 kerberized WebHDFS
我一直在尝试让 Apache Knox 在 kerberized Cloudera 集群上工作。我下载了包含 Knox 的 zip 并安装了它。我还在 sandbox.xml 文件上对我的集群进行了特定的更改。但是,当我运行 cURL 命令时,我得到 404 not found 错误。有人成功地管理了 Knox 吗?如果是,请协助
webhdfs - 如何通过 KNOX WebHDFS 网关将多个文件上传到 HDFS?
我已经为我们的 Hadoop 集群设置了 KNOX 网关,并且我已经浏览了 KNOX WebHDFS 示例。到目前为止,我知道下面的 cURL 命令可以用来创建目录和上传单个文件。
现在,如果我想将三个文件上传到 HDFS 位置file2
,我必须file3
分别为三个文件执行最后两个命令(从上面)三次。file4
/user/testuser
我想知道一种可以一次性上传多个文件的方法。PUT
有没有一种方法可以在一个请求中提供多个文件作为输入?如果没有,我什至可以将文件移动到文件夹并通过单个PUT
请求上传该文件夹。
hadoop - 使用 Hive JDBC 驱动程序通过 Squirrel 连接到 Knox
我在运行 Ubuntu 的计算机上创建了一台 VMWare 机器。我在那里使用演示 LDAP 设置了 Apache Knox,我目前正在尝试通过 SQuirreL 设置到 Knox 的连接字符串。我不能使用 Hortonworks Sandboxes,因为我需要使它与 Cloudera 下的 Hive 兼容。在开始配置 Knox 之前,我希望能够先使用 Hive JDBC 驱动程序连接到它。这是我到目前为止的字符串:
jdbc:hive2://<host>:8443/;ssl=1;sslTrustStore=/gateway.jks;trustStorePassword=<master secret>?hive.server2.transport.mode=http;httpPath=gateway/default/hive
我的具体问题是:
我应该使用什么路径
sslTrustStore
?它目前位于/home/<user>/Downloads/knox-1.0.0/data/security/keystores/gateway.jks
. 我用完整路径尝试了相同的字符串,但仍然没有运气。我应该用来做
httpPath
什么?我的虚拟机上没有专门的 Hive,因为 Knox 将使用 Hive 连接到 Hadoop 节点。我在连接字符串中还缺少什么吗?
在 SQuirreL 中,收到错误消息并单击“堆栈跟踪”后,这是我得到的一般要点:
jdbc - apache knox 中的动态(变量)身份断言
我想通过 knox 作为特定用户 (userX) 连接到 HiveServer2,并且不需要任何身份验证。为此,我将“身份断言”与“匿名身份验证提供程序”一起使用。
在我的 sandbox.xml(存在于拓扑中)中,我使用了以下代码:
这工作正常,但我希望 userX 是一个变量,我想通过 jdbc url 命令接收这个变量。
我正在使用的命令:
假设我想将连接建立为“UserABC”,我该如何实现?如何在 jdbc url 中传递此 UserABC,以及在 sandbox.xml 中需要进行哪些更改来选择该变量 userId。
jdbc - knox 中用于 hive jdbc 的基于令牌的身份验证 (JWT)
我在 apache knox 中设置了基于令牌的身份验证。我可以使用以下命令生成令牌:
使用令牌,我在 curl 命令中进行身份验证,如下所示:
但我想验证一个 hive jdbc 连接。如何在 hive jdbc url 中添加此令牌。我的 jdbc 网址是:
apache-nifi - NIFI nipyapi.nifi.rest.ApiException:(401)原因:未经授权。诺克斯网关
我有一些NIFI自动化脚本,当我在不安全的集群(localhost/或 somehwere)上运行时,它们工作得非常好,但是当我针对KNOX gateway后面的 URL 运行时,我得到了这个错误。我可以在nipyapi.access_api类中看到一些函数
- def knox_callback(**kwargs)
- def knox_callback_with_http_info(self, **kwargs):
- def knox_request(self, **kwargs):
- def knox_request_with_http_info(self, **kwargs):
我无法理解如何使用这些或与类中的任何其他功能相结合来克服这个问题?任何想法?
EDIT1: 首先使用security.py 函数的IM 是secure_login。在文档中,其书面登录需要通过 https 进行安全连接。在调用此方法之前,必须指定主机并配置 SSLContext(如果需要)。 set_service_ssl_context这个函数可以达到目的,但我不确定我是否需要它,因为一种方式 TSL 不需要它。
但我有一个困惑。我有两个 URL,一个带有 LDAP 登录的 Knox URl 另一个直接 URI(尽管它也重定向到 knox-Ldap 序列)当我给 Knox url 时,与直接错误相比,我得到了一个不同的错误。
从我得到的直接 URI
如果是 Knox uri,它会在同一行上引发相同的连接错误异常,但
所以我假设我必须使用直接网址。其次,为什么它说用户不适合。我可以手动登录。来自 LDAP 序列。我当前的请求是以匿名用户身份进行的,因此我将使用 Certs 并尝试使用 PEM 文件的 set_service_ssl_context 函数。
顺便说一句,下面是两个网址。
“nifi_host”:“https://****.****.net:8443/nifi-api”,直接网址
“nifi_host”:“https://****-****.****.net:8443/gateway/****-sso/nifi-api”,诺克斯网址
编辑 2: 即使使用以下代码,我的请求也会在服务器上以匿名方式接收。
它在这里给出连接错误
nipyapi.nifi.AccessApi().create_access_token( username=username, password=password) 并显示此错误 HTTP 响应正文:此 NiFi 不支持用户名/密码登录
我不确定如何正确使用 set_service_ssl_context。也许我应该尝试直接使用letsencrypt-root-ca而不是bi.keystore:letsencrypt.org/certs/isrgrootx1.pem.txt或我的本地系统ca-certs。
我的 toolkit-cli 属性文件是
*baseUrl= https://svc-hadoop-utilities-pre-c3-02.jamba.net:18443
keystore=/home/jread/nifi-toolkit/bi.keystore
密钥库类型=JKS
keystorePasswd=infraop6043
密钥密码=
truststore=/usr/lib/java/jre/lib/security/cacerts
信任库类型=JKS
truststorePasswd=changeit
proxiedEntity=CN=bijobs.jamba.net*
openid - 诺克斯 OpenID 登录无限循环
我正在尝试将 Apache Knox 配置为使用 OpenID Connect(ORY Hydra 产品)。使用正确的code=
参数调用回调 url,但随后登录过程无限循环。
我根据这个Auth0 指南配置了 Knox (同样的,只是更新 URL)。
登录过程只是循环。我认为诺克斯不知道如何处理该code=
值,即如何将其换成access_token
and refresh_token
。我究竟做错了什么?使用了错误的身份验证类型、错误的回调 url,还有其他什么?
apache-zookeeper - 如何对 Knox 网关后面的几个 phoenix 查询服务器进行负载均衡?
我有 3 个 phoenix 查询服务器在 knox 网关后面运行(隐藏 kerberos 身份验证复杂性),通过 Simba 的 odbc 驱动程序访问。我设法到达一台凤凰查询服务器并通过knox启动查询,方法是在拓扑文件中将avatica服务直接映射到我内部网络中一台凤凰查询服务器的内部IP地址和端口。我想让 knox 随机访问我的 3 个 phoenix 查询服务器中的任何一个,而不仅仅是一个。你知道我是否可以使用 zookeeper 来实现这一点,以及我如何配置它来做到这一点?
我已经尝试进行一些负载平衡,使 knox 拓扑指向 nginx 反向代理,将我的 3 PQS 设置为上游,但我遇到 401 错误,同样我的凭据是通过代理传输的
我的 odbc.ini 文件:
我的 knox 拓扑文件的一部分(适用于 1 个 PQS)(default.xml)
apache-zeppelin - 如何在 Zeppelin 中基于 HadoopGroupProvider 中的组配置角色,使用 Knox 提供基于 SAML 的 SSO?
我正在尝试在 Zeppelin 上实现角色库访问控制,使用 Knox 对外部 IdP 进行身份验证,并在用户成功通过身份验证后从 LDAP 实例执行组查找。
我目前能够登录到 Zeppelin,并且 HadoopGroupProvider 正在按预期查找用户的组,但经过身份验证的用户未映射到任何角色,因此无法创建笔记本或使用任何解释器。
我对 Knox 的配置如下所示:
这是 Zeppelin 的 shiro.ini 配置:
由于 gateway-audit.log,我确信 HadoopGroupProvider 正在连接到我的 LDAP 实例并成功查找我的组:
我的问题是:
如何将这些组映射到 Zeppelin 中的角色?
是否有与 KnoxJwtRealm 的 org.apache.zeppelin.realm.LdapRealm 的 rolesByGroup 配置等效的配置?
非常感谢任何帮助,在此先感谢!
jmeter - 使用智能卡和 knox 进行 JMeter 测试
我正在尝试测试 KnoxToken 服务背后的应用程序,并且用户需要使用智能卡和他的 PIN。使用 JMeter 测试没有安全功能的应用程序按预期工作。
在这种情况下,我收到一个错误:javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
从 Jmeter-> Options -> SSL Manager ,我正在导入在我的机器中找到的证书。当我运行时,系统会提示我输入密码。输入智能卡密码(每个 JMeter 会话一次)后,它似乎继续,但随后又中断了……我认为这解决了智能卡身份验证问题,并且在与 knox 通信时中断了……
从日志文件: