Elastic:使用Postman来访问Elastic Stack
对于很多的开发者来说,他们很习惯用Postman来测试REST接口。在我之前的文章“如何在Linux,MacOS及Windows上进行安装Elasticsearch”中,我也展示了如何使用Postman来访问我们的Elasticsearch。对于Postman访问Elasticsearch来说,非常地直接。但是在那里有一种情况,我没有展示,那就是:当一个集群启动安全过后,我们该如何使用用户名及密码来访问我们的Elasticsearch集群呢?
为Elasticsearch集群设置安全
我们可以按照我之前的文章“Elasticsearch:设置Elastic账户安全”设置用户名及密码。一旦设置好用户名及密码后,当我们使用Postman或各类语言的API来访问Elasticsearch时,我们必须使用用户名及密码来访问。
在今天的实验中,我将采用Elastic cloud来做实验。如果大家没有使用过Elastic cloud,请参阅我之前的文章“Elastic:在Elastic云上3分钟部署Elastic集群”。在默认的情况下,Elastic cloud是带有安全设置的。
将Elasticsearch HTTP / REST客户端与Shield结合使用
首先,我们可以参考Elastic的官方文档。如文档所示:Elasticsearch与标准HTTP基本身份验证header一起使用以识别请求者。 由于Elasticsearch是无状态的,因此此标头必须与每个请求一起发送:
Authorization: Basic <TOKEN>
在这里<TOKEN>计算为base64(USERNAME:PASSWORD)。
我们在网上找一个计算base64的在线工具https://www.base64encode.org/。假设我们的用户名是elastic,而我们的密码是123456。
我们把elastic:123456输入后,在点击ENCODE按钮,我们就可以发现被编码后的base64代码ZWxhc3RpYzoxMjM0NTY=。这个将是我们在如下进行Postman请求时填入到header里的字符串。
使用Postman访问Elasticsearch
有了上面的方法可以得到base64的token,那么我就可以在Postman中进行配置了。我们打开Postman:
如上图所示:我们填入Elasticsearch的访问地址,同时在header的Authorization部分填入相应的Basic <token>。等我们填完好后,我们点击Send按钮。在下面我们就可以看出返回来的结果。
在我们请求时,如果有payload的情况下,该怎么办呢?我们可以把我们的payload写入到Postman的body里:
一旦我们使用Postman能够完成我们的API接口的测试,我们可以使用任何一种语言来发起对Elasticsearch的请求,甚至我们不需要考虑那些语言所提供的接口。
参考:
推荐阅读
-
Elastic Stack 开源的大数据解决方案
-
linux使用useradd添加用户失败,出现异常useradd: group elastic exists
-
Elastic Stack:ELK
-
Elastic Stack 开源的大数据解决方案
-
干货实战|基于Elastic Stack的日志分析系统
-
Elastic:使用Postman来访问Elastic Stack
-
Elastic:使用Elastic Helm Chart来部署多节点的Elasticsearch集群
-
Spring Boot中使用Elastic Job实现定时任务
-
Spring Boot中使用Elastic Job实现定时任务
-
Elastic Stack:ELK