创建服务帐户令牌 API
编辑创建服务帐户令牌 API
编辑创建一个 服务帐户 令牌,用于在不需要基本身份验证的情况下进行访问。
请求
编辑POST /_security/service/<命名空间>/<服务>/credential/token/<令牌名称>
PUT /_security/service/<命名空间>/<服务>/credential/token/<令牌名称>
POST /_security/service/<命名空间>/<服务>/credential/token
路径参数
编辑-
命名空间
- (必需,字符串)命名空间的名称。
-
服务
- (必需,字符串)服务名称。
-
令牌名称
-
(可选,字符串)服务帐户令牌的名称。 如果省略,则会生成一个随机名称。
令牌名称必须至少包含 1 个字符,且不能超过 256 个字符。 它们可以包含字母数字字符 (
a-z
、A-Z
、0-9
)、破折号 (-
) 和下划线 (_
),但不能以下划线开头。令牌名称在关联的服务帐户的上下文中必须是唯一的。 它们的完全限定名称也必须是全局唯一的,完全限定名称由服务帐户主体和令牌名称组成,例如
<命名空间>/<服务>/<令牌名称>
。
示例
编辑以下请求创建一个服务帐户令牌
resp = client.security.create_service_token( namespace="elastic", service="fleet-server", name="token1", ) print(resp)
const response = await client.security.createServiceToken({ namespace: "elastic", service: "fleet-server", name: "token1", }); console.log(response);
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
。
以下请求创建一个具有自动生成的令牌名称的服务令牌
resp = client.security.create_service_token( namespace="elastic", service="fleet-server", ) print(resp)
const response = await client.security.createServiceToken({ namespace: "elastic", service: "fleet-server", }); console.log(response);
POST /_security/service/elastic/fleet-server/credential/token
响应包括服务帐户令牌、其自动生成的名称及其密钥值
{ "created": true, "token": { "name": "Jk5J1HgBuyBK5TpDrdo4", "value": "AAEAAWVsYXN0aWM...vZmxlZXQtc2VydmVyL3Rva2VuMTo3TFdaSDZ" } }