欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Elastic:使用Postman来访问Elastic Stack

程序员文章站 2022-04-18 12:46:33
...

对于很多的开发者来说,他们很习惯用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:使用Postman来访问Elastic Stack

我们把elastic:123456输入后,在点击ENCODE按钮,我们就可以发现被编码后的base64代码ZWxhc3RpYzoxMjM0NTY=。这个将是我们在如下进行Postman请求时填入到header里的字符串。

使用Postman访问Elasticsearch

有了上面的方法可以得到base64的token,那么我就可以在Postman中进行配置了。我们打开Postman:

Elastic:使用Postman来访问Elastic Stack

如上图所示:我们填入Elasticsearch的访问地址,同时在header的Authorization部分填入相应的Basic <token>。等我们填完好后,我们点击Send按钮。在下面我们就可以看出返回来的结果。

在我们请求时,如果有payload的情况下,该怎么办呢?我们可以把我们的payload写入到Postman的body里:

Elastic:使用Postman来访问Elastic Stack

一旦我们使用Postman能够完成我们的API接口的测试,我们可以使用任何一种语言来发起对Elasticsearch的请求,甚至我们不需要考虑那些语言所提供的接口。

 

参考:

【1】https://www.elastic.co/guide/en/shield/current/_using_elasticsearch_http_rest_clients_with_shield.html

相关标签: Elastic