跳到主要内容

IDMP SDK 使用 Bearer Token(JWT) 进行认证。获取 Token 的方式取决于您的部署类型。

15.1.3 认证

企业版(自托管)认证

对于自托管部署,通过调用登录端点并提供用户名和密码来获取 Token。

import org.openapitools.client.ApiClient;
import org.openapitools.client.api.UserResourceApi;
import org.openapitools.client.model.LoginReqDTO;
import org.openapitools.client.model.LoginRspDTO;

ApiClient apiClient = new ApiClient("Authorization");
apiClient.setBasePath(System.getenv("IDMP_HOST"));

UserResourceApi userApi = apiClient.buildClient(UserResourceApi.class);
LoginReqDTO req = new LoginReqDTO();
req.setLoginName(System.getenv("IDMP_USERNAME"));
req.setPassword(System.getenv("IDMP_PASSWORD"));

LoginRspDTO rsp = userApi.apiV1UsersLoginPost(req);
apiClient.setBearerToken(rsp.getToken()); // subsequent requests include this token automatically

云服务认证

云服务每次请求需要两个 Token:Authorization(Bearer Token)和 Access-token

获取 Token 的步骤:

  1. 在浏览器中登录云服务(https://<instance-id>.idmp.taosdata.com)。
  2. 打开浏览器开发者工具 → 网络选项卡。
  3. 刷新页面,找到任意后端 API 请求(如 /api/v1/permissions/menus)。
  4. 复制以下三个值:
项目说明
请求 URL 主机格式:https://<instance-id>.idmp.taosdata.com
Access-token 请求头云服务专用认证 Token
Authorization 请求头Bearer Token——使用不含 Bearer 前缀的值
  1. 将这些值设置为环境变量:
export CLOUD_HOST=https://<instance-id>.idmp.taosdata.com
export CLOUD_TOKEN=<Access-token 的值>
export BEARER_TOKEN=<Authorization Token 的值(不含 "Bearer " 前缀)>
  1. 在代码中初始化客户端:
ApiClient apiClient = new ApiClient("Authorization");
apiClient.setBasePath(System.getenv("CLOUD_HOST"));
apiClient.setBearerToken(System.getenv("BEARER_TOKEN"));
// Add the cloud-specific Access-token header
apiClient.addDefaultHeader("Access-token", System.getenv("CLOUD_TOKEN"));

Token 有效期与刷新

部署方式Token 有效期刷新方法
企业版(自托管)在服务器端配置(参见 application.yml再次调用登录端点获取新 Token
云服务由浏览器会话控制通过浏览器重新登录,并从开发者工具中复制新 Token
提示

将 Token 获取和刷新封装在工具函数中。收到 401 Unauthorized 响应时自动触发刷新。

安全最佳实践

  • 切勿在源代码中硬编码 Token、用户名或密码。
  • 将凭据存储在环境变量或密钥管理工具中(Vault、AWS Secrets Manager 等)。
  • 在生产环境中连接 IDMP 服务器时,始终使用 HTTPS。