创建服务帐户令牌 API编辑

创建 服务帐户 令牌,用于无需基本身份验证即可访问。

请求编辑

POST /_security/service/<namespace>/<service>/credential/token/<token_name>

PUT /_security/service/<namespace>/<service>/credential/token/<token_name>

POST /_security/service/<namespace>/<service>/credential/token

先决条件编辑

  • 要使用此 API,您必须至少具有 manage_service_account 集群特权

描述编辑

成功创建服务帐户令牌 API 调用将返回一个 JSON 结构,其中包含服务帐户令牌、其名称及其秘密值。

服务帐户令牌永不过期。如果不再需要,您必须主动 删除 它们。

路径参数编辑

namespace
(必需,字符串) 命名空间的名称。
service
(必需,字符串) 服务名称。
token_name

(可选,字符串) 服务帐户令牌的名称。如果省略,将生成一个随机名称。

令牌名称必须至少为 1 个字符,最多为 256 个字符。它们可以包含字母数字字符 (a-z, A-Z, 0-9)、连字符 (-) 和下划线 (_),但不能以下划线开头。

令牌名称在关联的服务帐户上下文中必须是唯一的。它们还必须与其完全限定名称在全局范围内是唯一的,完全限定名称由服务帐户主体和令牌名称组成,例如 <namespace>/<service>/<token-name>

示例编辑

以下请求创建一个服务帐户令牌

POST /_security/service/elastic/fleet-server/credential/token/token1

响应包含服务帐户令牌、其名称及其秘密值

{
  "created": true,
  "token": {
    "name": "token1",
    "value": "AAEAAWVsYXN0aWM...vZmxlZXQtc2VydmVyL3Rva2VuMTo3TFdaSDZ" 
  }
}

用作承载令牌的秘密值

要使用服务帐户令牌,请在请求中包含生成的令牌值,并使用 Authorization: Bearer 标头

curl -H "Authorization: Bearer AAEAAWVsYXN0aWM...vZmxlZXQtc2VydmVyL3Rva2VuMTo3TFdaSDZ" https://127.0.0.1:9200/_cluster/health

如果您的节点将 xpack.security.http.ssl.enabled 设置为 true,则您必须在请求 URL 中指定 https

以下请求创建一个具有自动生成的令牌名称的服务令牌

POST /_security/service/elastic/fleet-server/credential/token

响应包含服务帐户令牌、其自动生成的名称及其秘密值

{
  "created": true,
  "token": {
    "name": "Jk5J1HgBuyBK5TpDrdo4",
    "value": "AAEAAWVsYXN0aWM...vZmxlZXQtc2VydmVyL3Rva2VuMTo3TFdaSDZ"
  }
}