更新Kibana内置用户详情时,roles参数是否为必填项?
更新Kibana内置用户详情是否必须指定roles参数?
是的,使用POST /_security/user/{username}接口更新Kibana内置用户时,必须指定roles参数,否则会触发请求验证失败错误。
成功执行的请求示例
POST /_security/user/jacknich { "roles" : [ "admin", "other_role1" ], "full_name" : "Jack Nicholson", "email" : "jacknich@example.com" }
未指定roles参数的失败请求示例
POST /_security/user/jacknich { "full_name" : "Jack Nicholson", "email" : "jacknich@example.com" }
触发的错误信息(翻译后):
"type" : "action_request_validation_exception",
"reason" : "验证失败:1: 缺少roles字段;"
原因说明
POST /_security/user/{username}接口属于覆盖式更新,会用请求体中的配置完全替换用户原有信息。由于roles是用户的必填属性,若请求体中不包含该字段,系统会判定为无效请求,触发验证错误。
增量更新的解决方案
如果仅需更新full_name、email这类非角色字段,推荐使用PATCH请求实现增量更新,无需传入所有必填字段:
PATCH /_security/user/jacknich { "full_name" : "Jack Nicholson", "email" : "jacknich@example.com" }
内容的提问来源于stack exchange,提问作者Komal
相关产品推荐
相关产品推荐

