这是可能的。以下是一些步骤来实现这一点:
下面是一个使用 elasticsearch-py 库的代码示例,演示如何向 ElasticSearch 发送请求,并使用 Okta 进行身份验证:
from requests_aws4auth import AWS4Auth
from elasticsearch import Elasticsearch, RequestsHttpConnection
import os
# AWS 认证
awsauth = AWS4Auth(os.environ['AWS_ACCESS_KEY_ID'],
os.environ['AWS_SECRET_ACCESS_KEY'], os.environ['AWS_REGION'], 'es', session_token=os.environ['AWS_SESSION_TOKEN'])
# Elasticsearch 连接
es = Elasticsearch(
hosts=[{'host': os.environ['ES_HOSTNAME'], 'port': 443}],
http_auth=awsauth,
use_ssl=True,
verify_certs=True,
connection_class=RequestsHttpConnection
)
# Okta 认证
auth = HTTPBasicAuth(os.environ['OKTA_API_KEY'], '')
# 搜索请求
res = requests.get(os.environ['ES_ENDPOINT'] + '_search?q=user:foo', auth=auth)
print(res.content)