有人知道如何开始使用 Manager API Java 客户端吗?

问题描述 投票:0回答:1

我按照此指令在 AWS 上创建了 Cloudera 集群 https://docs.cloudera.com/cdp-public-cloud/cloud/getting-started/topics/cdp-deploy_cdp_using_terraform.html 和这些 Terraform 脚本 https:// github.com/cloudera-labs/cdp-tf-quickstarts

成功了,我可以登录 CDP 控制台并进行一些操作。

现在我正在尝试使用 Cloudera Manager API 和 java 客户端 https://github.com/cloudera/cm_api/tree/master

进行一些自动化

当我尝试进行这样的身份验证时:

ApiClient apiClient = Configuration.getDefaultApiClient();

// Configure HTTP basic authorization: basic
apiClient.setBasePath("path");
apiClient.setUsername("username");
apiClient.setPassword("password");

ClustersResourceApi resourceApi = new ClustersResourceApi(apiClient);   
//do API calls

我收到一个错误。我尝试用

curl
重复一遍:

curl -u 'username':'password' -i 'https://....cloudera.site/api/v32/clusters?clusterType=any' \
>   -H 'Accept: application/json, text/javascript, */*; q=0.01' 
HTTP/1.1 302 Found
Server: nginx
Date: Tue, 15 Oct 2024 13:09:19 GMT
Content-Length: 0
Connection: keep-alive
Location: https://....cloudera.site/{cluster}/knoxsso/api/v1/websso?originalUrl=https://...cloudera.site:443/v32/clusters?clusterType=any
x-response-nginx: true

所以,看起来服务器想要像在 WEB UI 上一样进行 SSO。我找不到任何文档如何操作

proper authorization
。有谁知道如何开始使用 Manager API Java 客户端

cloudera cloudera-manager cloudera-cdp
1个回答
0
投票

此处的问题源于与 Cloudera Manager 的连接的路由方式。

  1. 通过 https://....cloudera.site/ 等 URL 进行连接会通过 Cloudera 的云基础设施路由连接。为了安全起见,这需要单点登录 (SSO) 和双因素身份验证 (2FA)。

  2. 直接连接到 Cloudera Manager 计算机(例如,使用 SSH 隧道连接到集群的主节点)会绕过 Cloudera 云及其 SSO 代理。这允许直接访问 Cloudera Manager 服务,并解释了代码在该场景中工作的原因。

本质上,代码本身并不是问题;问题在于代码本身。两种连接类型之间身份验证方法的差异是关键因素。

© www.soinside.com 2019 - 2024. All rights reserved.