文档文档

设置 InfluxDB Enterprise 授权

使用存储在 InfluxDB Enterprise 中并由其管理的基于用户的授权来验证对 Kapacitor HTTP API 的请求。

身份验证的工作原理

使用 InfluxDB Enterprise 授权与 Kapacitor 进行身份验证的过程涉及企业 TICK stack 的三个组件

  1. Kapacitor 解析 API 请求中提供的用户凭据。

  2. Kapacitor 检查用户名和密码是否与本地 Kapacitor 缓存中存储的任何用户详细信息匹配。

  3. 如果用户详细信息在缓存中,则跳至步骤 7。
    如果用户详细信息不在缓存中,Kapacitor 会将凭据发送到 InfluxDB Enterprise 元 API 端点。

  4. InfluxDB Enterprise 元服务器检查凭据是否有效,如果有效,则将用户详细信息 JSON 文档返回给 Kapacitor。

  5. Kapacitor 检查用户详细信息文档以获取正确的权限。

  6. Kapacitor 缓存用户详细信息。

  7. 如果用户具有正确的权限,Kapacitor 将完成请求。
    如果用户没有正确的权限,Kapacitor 将中止事务并返回 403 错误以及响应正文

    {"error":"user <USER> does not have \"read\" privilege for API endpoint \"/kapacitor/v1/tasks\""}

创建具有 Kapacitor 权限的 InfluxDB Enterprise 用户或角色

使用 InfluxDB Enterprise 元 API 创建具有 Kapacitor 权限的用户,或创建具有 Kapacitor 权限的角色并为该角色分配用户。

以下示例使用 InfluxDB Enterprise 元 API 来管理用户和角色,但您也可以 使用 Chronograf 来管理用户和角色

要与 Kapacitor 交互,用户或角色必须具有以下一项或两项权限

  • KapacitorAPI:授予通过 Kapacitor API 执行 CRUD 操作的权限。
  • KapacitorConfigAPI:授予通过 API 配置 Kapacitor 的权限。
  1. 创建新的 InfluxDB Enterprise 用户
  2. 授予新用户 Kapacitor 权限

创建新的 InfluxDB Enterprise 用户

使用以下 InfluxDB Enterprise 元 API 的请求方法和端点创建新的 InfluxDB Enterprise 用户

POST /user

提供以下内容

  • InfluxDB Enterprise 元 URL InfluxDB Enterprise 元节点的 URL
  • 基本身份验证:InfluxDB Enterprise 用户名和密码
  • 请求正文:具有以下字段的 JSON 对象
    • action:create
    • user:具有以下字段的 JSON 对象
      • name:用户名
      • password:密码
curl --request POST https://172.17.0.2:8091/user \
  --user "admin:changeit" \
  --data '{
    "action":"create",
    "user": {
      "name":"johndoe",
      "password":"pa5sw0Rd"
    }
  }' 

授予新用户 Kapacitor 权限

使用以下 InfluxDB Enterprise 元 API 的请求方法和端点向新用户授予与 Kapacitor 相关的权限

POST /user

提供以下内容

  • InfluxDB Enterprise 元 URL InfluxDB Enterprise 元节点的 URL
  • 基本身份验证:InfluxDB Enterprise 用户名和密码
  • 请求正文:具有以下字段的 JSON 对象
    • action:add-permissions
    • user:具有以下字段的 JSON 对象
      • name:用户名
      • permissions:具有以下字段的 JSON 对象: -"":要添加的权限列表
$ curl --request POST https://172.17.0.2:8091/user \
  --user "username:password" \
  --data '{
    "action": "add-permissions",
    "user":{
      "name": "johndoe",
      "permissions": {
        "":[
          "KapacitorAPI",
          "KapacitorConfigAPI"
        ]
      }
    }
  }'
  1. 创建新的 InfluxDB Enterprise 角色
  2. 授予新角色 Kapacitor 权限
  3. 创建新的 InfluxDB Enterprise 用户
  4. 将用户分配给新角色

创建新的 InfluxDB Enterprise 角色

使用以下 InfluxDB Enterprise 元 API 的请求方法和端点创建新的 InfluxDB Enterprise 角色

POST /role

提供以下内容

  • InfluxDB Enterprise 元 URL InfluxDB Enterprise 元节点的 URL
  • 基本身份验证:InfluxDB Enterprise 用户名和密码
  • 请求正文:具有以下字段的 JSON 对象
    • action:create
    • role:具有以下字段的 JSON 对象
      • name:角色名称
curl --request POST https://172.17.0.2:8091/role \
  --user "admin:changeit" \
  --data '{
    "action":"create",
    "user": {
      "name":"kapacitor",
    }
  }' 

授予新角色 Kapacitor 权限

使用以下 InfluxDB Enterprise 元 API 的请求方法和端点向新角色授予与 Kapacitor 相关的权限

POST /role

提供以下内容

  • InfluxDB Enterprise 元 URL InfluxDB Enterprise 元节点的 URL
  • 基本身份验证:InfluxDB Enterprise 用户名和密码
  • 请求正文:具有以下字段的 JSON 对象
    • action:add-permissions
    • role:具有以下字段的 JSON 对象
      • name:角色名称
      • permissions:具有以下字段的 JSON 对象: -"":要添加的权限列表
$ curl --request POST https://172.17.0.2:8091/user \
  --user "username:password" \
  --data '{
    "action": "add-permissions",
    "role":{
      "name": "kapacitor",
      "permissions": {
        "":[
          "KapacitorAPI",
          "KapacitorConfigAPI"
        ]
      }
    }
  }'

创建新的 InfluxDB Enterprise 用户

使用以下 InfluxDB Enterprise 元 API 的请求方法和端点创建新的 InfluxDB Enterprise 用户

POST /user

提供以下内容

  • InfluxDB Enterprise 元 URL InfluxDB Enterprise 元节点的 URL
  • 基本身份验证:InfluxDB Enterprise 用户名和密码
  • 请求正文:具有以下字段的 JSON 对象
    • action:create
    • user:具有以下字段的 JSON 对象
      • name:用户名
      • password:密码
curl --request POST https://172.17.0.2:8091/user \
  --user "admin:changeit" \
  --data '{
    "action":"create",
    "user": {
      "name":"johndoe",
      "password":"pa5sw0Rd"
    }
  }' 

将用户分配给新角色

使用以下 InfluxDB Enterprise 元 API 的请求方法和端点将 InfluxDB Enterprise 用户分配给新角色

POST /role

提供以下内容

  • 基本身份验证:InfluxDB Enterprise 用户名和密码
  • 请求正文:具有以下字段的 JSON 对象
    • action:add-users
    • role:具有以下字段的 JSON 对象
      • name:角色名称
      • users:要添加的用户列表
curl --request POST  https://172.17.0.2:8091/role \
  --user "username:password" \
  --data '{
    "action": "add-users",
    "role": {
      "name": "example-role",
      "users": [
        "johndoe"
      ]
    }
  }'

启用和配置 Kapacitor 身份验证

在您的 kapacitor.conf 中或通过环境变量启用和配置与身份验证相关的 Kapacitor 配置选项

[http]
  # ...
  auth-enabled = true

[auth]
  enabled = true
  cache-expiration = "1h"
  bcrypt-cost = 4
  meta-addr = " 172.17.0.2:8091"
  meta-username = "example-influxdb-username"
  meta-password = "example-influxdb-password"
  meta-use-tls = true
  meta-ca = "/path/to/cert.ca"
  meta-cert = "/path/to/cert.cert"
  meta-key = "/path/to/cert.key"
  meta-insecure-skip-verify = false

# ...
export KAPACITOR_HTTP_AUTH_ENABLED=true
export KAPACITOR_AUTH_ENABLED=true
export KAPACITOR_AUTH_CACHE_EXPIRATION=1h
export KAPACITOR_AUTH_BCRYPT_COST=4
export KAPACITOR_AUTH_META_ADDR=172.17.0.2:8091
export KAPACITOR_AUTH_META_USERNAME=example-username
export KAPACITOR_AUTH_META_PASSWORD=example-password
export KAPACITOR_AUTH_META_USE-tls=true
export KAPACITOR_AUTH_META_CA=/path/to/cert.ca
export KAPACITOR_AUTH_META_CERT=/path/to/cert.cert
export KAPACITOR_AUTH_META_KEY=/path/to/cert.key
export KAPACITOR_AUTH_META_INSECURE_SKIP_VERIFY=false

使用 Kapacitor 进行身份验证

启用身份验证后,Kapacitor 要求所有 API 请求都提供有效的用户凭据。

使用 Kapacitor CLI 进行身份验证

要在使用 kapacitor CLI 时使用 Kapacitor 进行身份验证,请在 Kapacitor -url 中提供您的用户名和密码

# Syntax
kapacitor -url http://<username>:<password>@localhost:9092

# Example
kapacitor -url http://admin:Pa5sw0Rd@localhost:9092

使用 Kapacitor API 进行身份验证

要直接使用 Kapacitor API 进行身份验证,请使用基本身份验证来提供您的用户名和密码。

# Syntax
curl --request GET https://:9092/kapacitor/v1/tasks \
  -u "<username>:<password>" 

# Example
curl --request GET https://:9092/kapacitor/v1/tasks \
  -u "johndoe:Pa5sw0Rd" 

此页面是否有帮助?

感谢您的反馈!


InfluxDB 3.8 新特性

InfluxDB 3.8 和 InfluxDB 3 Explorer 1.6 的主要增强功能。

查看博客文章

InfluxDB 3.8 现已适用于 Core 和 Enterprise 版本,同时发布了 InfluxDB 3 Explorer UI 的 1.6 版本。本次发布着重于操作成熟度,以及如何更轻松地部署、管理和可靠地运行 InfluxDB。

更多信息,请查看

InfluxDB Docker 的 latest 标签将指向 InfluxDB 3 Core

在 **2026 年 2 月 3 日**,InfluxDB Docker 镜像的 latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。

如果使用 Docker 来安装和运行 InfluxDB,latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。例如,如果使用 Docker 运行 InfluxDB v2,请将 latest 版本标签替换为 Docker pull 命令中的特定版本标签 — 例如

docker pull influxdb:2