激活用户配置文件 API

编辑

用户配置文件功能仅供 Kibana 以及 Elastic 的可观测性、企业搜索和 Elastic 安全解决方案使用。个人用户和外部应用程序不应直接调用此 API。Elastic 保留在未来版本中更改或删除此功能,恕不另行通知的权利。

代表另一用户创建或更新用户配置文件。

请求

编辑

POST /_security/profile/_activate

先决条件

编辑
  • 要使用此 API,您必须拥有 manage_user_profile 集群权限。

描述

编辑

激活用户配置文件 API 会为最终用户创建或更新配置文件文档,其中包含从用户身份验证对象中提取的信息,包括 usernamefull_nameroles 和身份验证领域。例如,在 JWT access_token 的情况下,配置文件用户的 username 是从 JWT 令牌声明中提取的,该声明由对令牌进行身份验证的 JWT 领域的 claims.principal 设置指向。

当更新配置文件文档时,如果文档被禁用,则 API 会启用该文档。任何更新都不会更改 labelsdata 字段的现有内容。

此 API 仅供需要为最终用户创建或更新配置文件的应用程序(例如 Kibana)使用。

调用应用程序必须具有 access_token,或者目标配置文件用户的 usernamepassword 的组合。

请求正文

编辑
access_token
(必需*,字符串) 用户的 Elasticsearch 访问令牌或 JWT。支持 访问id JWT 令牌类型,它们取决于底层 JWT 领域配置。如果您指定 access_token 授权类型,则此参数是必需的。它与其他授权类型无效。
client_authentication

(可选,对象) 当使用 access_token 授权类型,并且在提供 JWT 时,此项指定需要 JWT 的客户端身份验证(即通常由 ES-Client-Authentication 请求头指定的内容)。

scheme
(必需,字符串) 在 ES-Client-Authentication 请求头中提供的方案(区分大小写)。目前,唯一支持的值是 SharedSecret
value
(必需,字符串) 客户端凭据的方案后的值,因为它在 ES-Client-Authentication 请求头中提供。例如,如果请求头是 ES-Client-Authentication: SharedSecret myShar3dS3cret 如果客户端直接使用 JWT 进行身份验证,那么此处的 value 应为 myShar3dS3cret
grant_type

(必需,字符串) 授权类型。

grant_type 的有效值
access_token
在这种授权类型中,您必须提供由 Elasticsearch 令牌服务创建的访问令牌(请参阅获取令牌加密 Elasticsearch 的 HTTP 客户端通信),或者一个 JWT(JWT access_token 或 JWT id_token)。
password
在这种授权类型中,您必须提供您要为其创建 API 密钥的用户的 usernamepassword
password
(必需*,字符串) 用户的密码。如果您指定 password 授权类型,则此参数是必需的。它与其他授权类型无效。
username
(必需*,字符串) 标识用户的用户名。如果您指定 password 授权类型,则此参数是必需的。它与其他授权类型无效。

*表示该设置在某些情况下是必需的,但并非所有情况都必需。

响应正文

编辑

成功的激活用户配置文件 API 调用会返回一个 JSON 结构,其中包含配置文件的唯一 ID、用户信息、操作时间戳和版本控制号。

示例

编辑
resp = client.security.activate_user_profile(
    grant_type="password",
    username="jacknich",
    password="l0ng-r4nd0m-p@ssw0rd",
)
print(resp)
const response = await client.security.activateUserProfile({
  grant_type: "password",
  username: "jacknich",
  password: "l0ng-r4nd0m-p@ssw0rd",
});
console.log(response);
POST /_security/profile/_activate
{
  "grant_type": "password",
  "username" : "jacknich",
  "password" : "l0ng-r4nd0m-p@ssw0rd"
}

API 返回以下响应

{
  "uid": "u_79HkWkwmnBH5gqFKwoxggWPjEBOur1zLPXQPEl1VBW0_0",
  "enabled": true,
  "last_synchronized": 1642650651037,
  "user": {
    "username": "jacknich",
    "roles": [
      "admin", "other_role1"
    ],
    "realm_name": "native",
    "full_name": "Jack Nicholson",
    "email": "[email protected]"
  },
  "labels": {},
  "data": {},
  "_doc": {
    "_primary_term": 88,
    "_seq_no": 66
  }
}