kibana - 如何使用 PKI 身份验证来使用 Opensearch Dashboards API?
问题描述
我正在尝试使用 OpenSearch Dashboards API (Amazon Kibana fork) 添加搜索索引。我使用的是 1.0 版并且还设置了安全插件。我使用 TLS PKI 与 OpenSearch (Elasticsearch) 交互没有任何问题。但是,每当我尝试使用 TLS PKI 身份验证与 OpenSearch Dashboard API 交互时,都会收到错误消息。我能够在仪表板中设置 PKI 以向 OpenSearch 进行身份验证,而不会出现任何问题。这实际上是使用 curl 的 shell 上的命令,但我希望在完成后使用 python:
curl -X POST --cert MYCERT.crt --key MYKEY.key --cacert MY-CA-BUNDLE.crt https://HOSTNAME:5601/api/saved_objects/index-pattern/test-index -H 'kbn-xsrf: true' -H 'Content-Type: application/json' -d' { "attributes": { "title": "test-index-*","timeFieldName": "@timestamp" } }'
我收到以下 JSON 消息错误:
{"statusCode":401,"error":"Unauthorized","message":"Authentication required"}
如果我改为使用带有“简单”用户名/密码的 API,则相同的命令可以工作:
curl -X POST -u USERNAME:PASSWORD https://HOSTNAME:5601/api/saved_objects/index-pattern/test-index -H 'kbn-xsrf: true' -H 'Content-Type: application/json' -d' { "attributes": { "title": "test-index-*","timeFieldName": "@timestamp" } }'
但是,我似乎无法找到一种方法来允许我的 ansible 使用 PKI 证书向 API 发出命令,我希望这样做,以便我可以禁用简单的身份验证。有谁知道我缺少什么设置或者我是否滥用了 API?我研究了插件文档,但找不到任何我丢失的项目。
解决方案
您是否尝试过对 Opensearch 服务进行简单查询,例如:
curl -XGET -k https://$(hostname):9200/ --key MYKEY.key --cert MYCERT.crt
如果这个不起作用,可能您需要检查 opensearch.yml 文件中配置的证书。
推荐阅读
- javascript - 过渡项目符号导航
- mule4 - MULE 4:批处理:批处理组件如何处理集合中的记录?
- docusignapi - DcouSign 收件箱为空
- python - Pythonic 使用排序函数的方法
- c# - Streamwriter 未将命令正确写入网络流
- python - github存储库中的json文件是否需要时间来更新?
- flutter - Dart / Flutter:使用基对象中的 fromJson 将 json 映射到具有基类的对象
- matlab - 为什么空数组可以有非空维度?
- azure - 如何根据 JSON 模式验证 JSON 源?
- python - 如何仅记录 Sphinx 中的一部分功能?