更新用户配置文件数据 API
编辑更新用户配置文件数据 API
编辑用户配置文件功能仅供 Kibana 和 Elastic 的可观测性、企业搜索和 Elastic 安全解决方案使用。个人用户和外部应用程序不应直接调用此 API。Elastic 保留未来版本中更改或删除此功能的权利,恕不另行通知。
更新与指定唯一 ID 关联的用户配置文件的特定数据。
请求
编辑POST /_security/profile/<uid>/_data
描述
编辑更新用户配置文件 API 使用 JSON 对象更新现有用户配置文件文档的 labels
和 data
字段。新的键及其值将添加到配置文件文档中,冲突的键将被请求中包含的数据替换。
对于 labels
和 data
,内容都按顶级字段进行命名空间划分。update_profile_data
全局权限授予仅更新允许的命名空间的权限。
路径参数
编辑-
uid
- (必需,字符串)用户配置文件的唯一标识符。
查询参数
编辑请求正文
编辑-
labels
- (必需*,对象)您想要与用户配置文件关联的可搜索数据。此字段支持嵌套数据结构。在
labels
对象中,顶级键不能以下划线 (_
) 开头或包含句点 (.
)。 -
data
- (必需*,对象)您想要与用户配置文件关联的不可搜索数据。此字段支持嵌套数据结构。在
data
对象中,顶级键不能以下划线 (_
) 开头或包含句点 (.
)。data
对象不可搜索,但可以使用 获取用户配置文件 API 进行检索。
*表示设置在某些情况下是必需的,但并非所有情况下都必需。
示例
编辑以下请求更新与 uid
匹配 u_P_0BMHgaOK3p7k-PFWUCbw9dQ-UFjt01oWJ_Dp2PmPc_0
的配置文件文档
resp = client.security.update_user_profile_data( uid="u_P_0BMHgaOK3p7k-PFWUCbw9dQ-UFjt01oWJ_Dp2PmPc_0", labels={ "direction": "east" }, data={ "app1": { "theme": "default" } }, ) print(resp)
const response = await client.security.updateUserProfileData({ uid: "u_P_0BMHgaOK3p7k-PFWUCbw9dQ-UFjt01oWJ_Dp2PmPc_0", labels: { direction: "east", }, data: { app1: { theme: "default", }, }, }); console.log(response);
POST /_security/profile/u_P_0BMHgaOK3p7k-PFWUCbw9dQ-UFjt01oWJ_Dp2PmPc_0/_data { "labels": { "direction": "east" }, "data": { "app1": { "theme": "default" } } }
您可以更新配置文件数据以替换一些键并添加新键
resp = client.security.update_user_profile_data( uid="u_P_0BMHgaOK3p7k-PFWUCbw9dQ-UFjt01oWJ_Dp2PmPc_0", labels={ "direction": "west" }, data={ "app1": { "font": "large" } }, ) print(resp)
const response = await client.security.updateUserProfileData({ uid: "u_P_0BMHgaOK3p7k-PFWUCbw9dQ-UFjt01oWJ_Dp2PmPc_0", labels: { direction: "west", }, data: { app1: { font: "large", }, }, }); console.log(response);
POST /_security/profile/u_P_0BMHgaOK3p7k-PFWUCbw9dQ-UFjt01oWJ_Dp2PmPc_0/_data { "labels": { "direction": "west" }, "data": { "app1": { "font": "large" } } }
如果您现在获取配置文件,将返回合并的配置文件数据
resp = client.security.get_user_profile( uid="u_P_0BMHgaOK3p7k-PFWUCbw9dQ-UFjt01oWJ_Dp2PmPc_0", data="*", ) print(resp)
const response = await client.security.getUserProfile({ uid: "u_P_0BMHgaOK3p7k-PFWUCbw9dQ-UFjt01oWJ_Dp2PmPc_0", data: "*", }); console.log(response);
GET /_security/profile/u_P_0BMHgaOK3p7k-PFWUCbw9dQ-UFjt01oWJ_Dp2PmPc_0?data=*
{ "profiles": [ { "uid": "u_P_0BMHgaOK3p7k-PFWUCbw9dQ-UFjt01oWJ_Dp2PmPc_0", "enabled": true, "last_synchronized": 1642650651037, "user": { "username": "jackrea", "roles": [ "admin" ], "realm_name": "native", "full_name": "Jack Reacher", "email": "[email protected]" }, "labels": { "direction": "west" }, "data": { "app1": { "theme": "default", "font": "large" } }, "_doc": { "_primary_term": 88, "_seq_no": 66 } } ] }