文档首页 > > 开发指南> 开发OpenTSDB应用> 样例代码说明> IAM集群认证

IAM集群认证

分享
更新时间: 2019/05/07 GMT+08:00

功能简介

如果CloudTable启用了IAM认证功能,那么OpenTSDB必须使用HTTPS进行连接,并且在HTTP请求的HEADER中携带必需的参数,如下表所示:

表1 HTTP Header携带的参数

HTTP Header

Value

X-TSD-IamAuth

true

X-Auth-ProjectId

集群所在的ProjectID

X-Auth-User

租户名

X-Auth-AK

租户的AccessKey

X-Auth-Token

使用租户AccessKey和SecretKey生成的Token信息

说明:

Token的生成方法如下:

在客户端主机的操作系统的shell界面中执行。在客户端机器上进入HBase目录后执行Token工具,Token工具的命令格式如下:

./bin/hbase com.huawei.cloudtable.tool.RestTokenUtil <AccessKey> <SecretKey> <UserName>

“AccessKey”:用户的AccessKey。

“SecretKey”:用户的SecretKey。

“UserName”:用户名。

例如:

./bin/hbase com.huawei.cloudtable.tool.RestTokenUtil YourAccessKey YourSecretKey YourUserName

样例代码

使用HTTPS连接的时候,应用侧需要跳过校验证书。使用如下方法创建的HTTP Client可以跳过校验证书:

  private static CloseableHttpClient createSSLClientDefault() {
    try {
      X509TrustManager x509mgr = new X509TrustManager() {
        public void checkClientTrusted(X509Certificate[] xcs, String string) {
        }

        public void checkServerTrusted(X509Certificate[] xcs, String string) {
        }

        public X509Certificate[] getAcceptedIssuers() {
          return null;
        }
      };
      SSLContext sslContext = SSLContext.getInstance("TLS");
      sslContext.init(null, new TrustManager[] { x509mgr }, null);
      @SuppressWarnings("deprecation")
      SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext,
          SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);

      return HttpClients.custom().setSSLSocketFactory(sslsf).build();
    } catch (KeyManagementException e) {
      throw new RuntimeException(e);
    } catch (NoSuchAlgorithmException e) {
      throw new RuntimeException(e);
    } catch (Exception e) {
      throw new RuntimeException(e);
    }
  }

在构造HTTP请求的时候,需要在HTTP请求中增加必需的HEADER,方法如下:

HttpPost httpPost = new HttpPost(PUT_URL);
httpPost .addHeader("X-TSD-IamAuth", "true");
httpPost .addHeader("X-Auth-ProjectId", PROJECT_ID);
httpPost .addHeader("X-Auth-User", USER);
httpPost .addHeader("X-Auth-AK", AK);
httpPost .addHeader("X-Auth-Token", TOKEN);

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区