创建或更新用户 API
编辑创建或更新用户 API编辑
在本地领域添加和更新用户。这些用户通常被称为本地用户。
先决条件编辑
- 要使用此 API,您必须至少具有
manage_security
集群权限。
路径参数编辑
-
username
-
(必填,字符串) 用户的标识符。
用户名必须至少包含 1 个字符,最多包含 507 个字符。它们可以包含字母数字字符 (
a-z
,A-Z
,0-9
)、空格、标点符号和 基本拉丁语 (ASCII) 块 中的可打印符号。不允许前导或尾随空格。
请求正文编辑
以下参数可以在 POST 或 PUT 请求的正文中指定
-
enabled
- (布尔值) 指定用户是否启用。默认值为
true
。 -
email
- (字符串) 用户的电子邮件。
-
full_name
- (字符串) 用户的姓名。
-
metadata
- (对象) 您要与用户关联的任意元数据。
-
password
-
(必填*,字符串) 用户的密码。密码必须至少包含 6 个字符。
添加用户时,需要
password
或password_hash
之一。更新现有用户时,密码是可选的,因此可以更新用户上的其他字段(例如其角色)而不修改用户的密码。 -
password_hash
-
(字符串) 用户密码的哈希。这必须使用与为密码存储配置的相同的哈希算法生成。有关更多详细信息,请参阅 用户缓存和密码哈希算法 中对
xpack.security.authc.password_hashing.algorithm
设置的说明。使用此参数允许客户端出于性能和/或机密性原因预先对密码进行哈希处理。
password
参数和password_hash
参数不能在同一个请求中使用。 -
roles
- (必填,列表) 用户拥有的角色集。角色决定用户的访问权限。要创建没有角色的用户,请指定一个空列表:
[]
。
示例编辑
以下示例创建了一个用户 jacknich
POST /_security/user/jacknich { "password" : "l0ng-r4nd0m-p@ssw0rd", "roles" : [ "admin", "other_role1" ], "full_name" : "Jack Nicholson", "email" : "[email protected]", "metadata" : { "intelligence" : 7 } }
成功调用将返回一个 JSON 结构,显示用户是否已创建或更新。
添加用户后,可以对来自该用户的请求进行身份验证。例如
curl -u jacknich:l0ng-r4nd0m-p@ssw0rd https://127.0.0.1:9200/_cluster/health