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的请求,甚至我们不需要考虑那些语言所提供的接口。

 

参考:

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

展开阅读全文

没有更多推荐了,返回首页

应支付0元
点击重新获取
扫码支付

支付成功即可阅读