激活用户配置文件 API
编辑激活用户配置文件 API
编辑用户配置文件功能仅供 Kibana 以及 Elastic 的可观测性、企业搜索和 Elastic 安全解决方案使用。个人用户和外部应用程序不应直接调用此 API。Elastic 保留在未来版本中更改或删除此功能,恕不另行通知的权利。
代表另一用户创建或更新用户配置文件。
请求
编辑POST /_security/profile/_activate
先决条件
编辑- 要使用此 API,您必须拥有
manage_user_profile
集群权限。
描述
编辑激活用户配置文件 API 会为最终用户创建或更新配置文件文档,其中包含从用户身份验证对象中提取的信息,包括 username
、full_name
、roles
和身份验证领域。例如,在 JWT access_token
的情况下,配置文件用户的 username
是从 JWT 令牌声明中提取的,该声明由对令牌进行身份验证的 JWT 领域的 claims.principal
设置指向。
当更新配置文件文档时,如果文档被禁用,则 API 会启用该文档。任何更新都不会更改 labels
或 data
字段的现有内容。
此 API 仅供需要为最终用户创建或更新配置文件的应用程序(例如 Kibana)使用。
调用应用程序必须具有 access_token
,或者目标配置文件用户的 username
和 password
的组合。
请求正文
编辑-
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
或 JWTid_token
)。 -
password
- 在这种授权类型中,您必须提供您要为其创建 API 密钥的用户的
username
和password
。
-
-
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 } }