📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

从 Easysearch 安全配置中删除指定的内部用户。

API 格式 #

DELETE /_security/user/{name}

API 作用 #

该 API 用于从内部原生领域(Native Realm)中删除用户,包括:

  • 删除用户的所有关联数据(角色、属性、凭证)
  • 更新整个集群的安全配置
  • 需要相应的写权限

API 参数 #

路径参数 #

参数类型是否必填默认值描述
{name}String-要删除的用户名

查询参数 #

  • 无(该 API 不使用任何查询参数)

请求体 #

  • 不需要请求体(DELETE 操作不需要 JSON 载荷)

请求示例 #

删除指定用户 #

DELETE /_security/user/john_doe

删除管理员用户 #

DELETE /_security/user/admin

响应示例 #

成功响应 #

200 OK
{
  "status": "OK",
  "message": "'john_doe' deleted."
}

错误响应 - 未指定用户 #

400 Bad Request
{
  "status": "BAD_REQUEST",
  "message": "No user specified."
}

错误响应 - 用户不存在 #

404 Not Found
{
  "status": "NOT_FOUND",
  "message": "User 'john_doe' not found."
}

错误响应 - 权限不足 #

403 Forbidden
{
  "status": "FORBIDDEN",
  "message": "No permission to delete user."
}

响应字段说明 #

字段类型描述
statusString操作状态(OKBAD_REQUESTNOT_FOUND 等)
messageString操作结果消息

权限要求 #

删除用户需要相应的安全权限:

  • 需要具有管理用户的安全权限
  • 通常需要 cluster:admin/security/user/delete 权限
  • 无法删除当前登录的超级用户(如果有)

相关操作 #

  • GET /_security/user:查询所有用户
  • GET /_security/user/{name}:查询指定用户
  • POST /_security/user:创建新用户
  • PUT /_security/user/{name}:更新用户信息

使用场景 #

  1. 用户离职:删除离职员工的账户
  2. 账户清理:清理不再使用的测试账户
  3. 安全审计:移除未授权的用户账户
  4. 权限调整:删除原有角色后重建用户

注意事项 #

  1. 不可恢复:删除后用户数据无法恢复,请谨慎操作
  2. 关联数据:删除用户会同时删除其所有角色和属性
  3. 集群更新:删除操作会更新整个集群的安全配置
  4. 当前用户:无法删除当前正在执行删除操作的用户(如果该用户是唯一的超级用户)
  5. 原生领域:该 API 仅适用于内部原生领域,不适用于外部认证提供商(如 LDAP、Active Directory)

实现细节 #

  • REST 处理器InternalUsersApiAction
  • 路由定义DELETE /_security/user/{name}
  • 继承:继承自 PatchableResourceApiActionAbstractApiAction
  • 源文件modules/security/src/main/java/com/infinilabs/security/dlic/rest/api/InternalUsersApiAction.java