如何使用令牌而不是API密钥进行Azure SearchClient认证?

0 投票
1 回答
55 浏览
提问于 2025-04-13 14:48

我正在尝试使用searchClient这个库:

service_endpoint = os.environ["AZURE_SEARCH_SERVICE_ENDPOINT"] 
index_name = os.environ["AZURE_SEARCH_INDEX_NAME"]
key = os.environ["AZURE_SEARCH_API_KEY"]
search_client = SearchClient(service_endpoint, index_name, AzureKeyCredential(key))

有没有办法通过传递一个令牌来创建searchClient,而不是使用API密钥?或者有没有其他方法可以在不使用这个API密钥的情况下进行认证?

1 个回答

1

正如 @Gaurav Mantri 提到的,你需要使用 DefaultAzureCredential 来通过令牌进行授权。

这里是修正后的代码:

from azure.search.documents import SearchClient
from azure.identity import DefaultAzureCredential

credential = DefaultAzureCredential()
endpoint = "https://<resource_name>.search.windows.net"
index_name = "hotels-2"
client = SearchClient(endpoint=endpoint, index_name=index_name, credential=credential)

DefaultAzureCredential 通过多种方式进行身份验证。想了解更多,可以点击 这里

输出结果:

在这里输入图片描述

确保你提供了访问 AI 搜索服务所需的所有角色。

撰写回答