在日常使用 Easysearch 中,难免会遇到集群密码需要重置的情况(如密码遗失、安全审计要求等)。
通过查看 Easysearch 用户接口文档,创建用户使用如下接口:
PUT _security/user/<username>
{"password": "adminpass","roles": ["maintenance_staff", "weapons"],"external_roles": ["captains", "starfleet"],"attributes": {"attribute1": "value1","attribute2": "value2"}
}
同样可以通过该接口对用户进行密码重置:
PUT _security/user/<username>
{"password": "adminpass111","roles": ["maintenance_staff", "weapons"],"external_roles": ["captains", "starfleet"],"attributes": {"attribute1": "value1","attribute2": "value2"
}
API 接口创建的用户
创建一个测试用户 test,并进行访问验证。
通过接口重置用户 test 密码,并进行访问验证。
配置文件创建的用户
在配置文件 user.yml
中添加测试用户(test1、test2)配置:
## Test users
test1:hash: "$2y$12$ZNfKKCeeRQXOWX27W50tbu0Tq4NT4ADdCQOBoZzokI1zR8ZEUWm4W" # test1reserved: trueroles:- "readall_and_monitor"test2:hash: "$2y$12$m4/eSiDlzRII87vNeKwzteEHGpgpbdMr5tRvOfve/xIbEYdC4bU7a" # test2reserved: falseroles:- "readall_and_monitor"
其中 hash
字段是将用户密码哈希出来的值,可通过 bin/hash_password.sh -p "<明文密码>"
生成。
进行用户访问验证。
对 test1、test2 用户进行密码重置。
用户 test1 重置失败,用户 test2 重置成功。用户 test1 重置失败是因为配置了 reserved: true
,将用户 test1 指定为内置用户,使用用户 admin 会因为权限无法进行密码重置,那就需要使用有更高权限的管理证书进行密码重置。默认在 Easysearch 集群执行初始化脚本 bin/initialize.sh
时,会在 config
目录下生成证书文件,其中 admin.crt
、admin.key
为管理证书。
test1 用户密码重置成功,进行访问验证。
关于 Easysearch
INFINI Easysearch 是一个分布式的搜索型数据库,实现非结构化数据检索、全文检索、向量检索、地理位置信息查询、组合索引查询、多语种支持、聚合分析等。Easysearch 可以完美替代 Elasticsearch,同时添加和完善多项企业级功能。Easysearch 助您拥有简洁、高效、易用的搜索体验。
官网文档:https://infinilabs.cn/docs/latest/easysearch