如何使用 Microsoft Entra ID 驗證來設定 Azure OpenAI 服務
更複雜的安全性案例需要 Azure 角色型存取控制 (Azure RBAC)。 本文件涵蓋如何使用 Microsoft entra ID 向 Azure OpenAI 資源進行驗證。
在下列各節中,您將使用 Azure CLI 來進行登入,然後取得持有人權杖以呼叫 OpenAI 資源。 如果遇到困難,每一節都會提供連結,其中包含 Azure Cloud Shell/Azure CLI 中每個命令的所有可用選項。
必要條件
指派角色
向自己指派認知服務 OpenAI 使用者 (部分機器翻譯) 或認知服務 OpenAI 參與者 (部分機器翻譯) 角色,以讓您能夠使用自己的帳戶來呼叫 Azure OpenAI 推斷 API,而不必使用金鑰型驗證。在進行這項變更後,最多可能需要 5 分鐘的時間,變更才會生效。
登入 Azure CLI
若要登入 Azure CLI,請執行下列命令並完成登入。 如果您的工作階段閒置太久,則可能需要再次執行此動作。
az login
聊天完成
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
from openai import AzureOpenAI
token_provider = get_bearer_token_provider(
DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
)
client = AzureOpenAI(
api_version="2024-02-15-preview",
azure_endpoint="https://{your-custom-endpoint}.openai.azure.com/",
azure_ad_token_provider=token_provider
)
response = client.chat.completions.create(
model="gpt-35-turbo-0125", # model = "deployment_name".
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},
{"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},
{"role": "user", "content": "Do other Azure AI services support this too?"}
]
)
print(response.choices[0].message.content)
使用控制平面 API 來查詢 Azure OpenAI
import requests
import json
from azure.identity import DefaultAzureCredential
region = "eastus"
token_credential = DefaultAzureCredential()
subscriptionId = "{YOUR-SUBSCRIPTION-ID}"
token = token_credential.get_token('https://management.azure.com/.default')
headers = {'Authorization': 'Bearer ' + token.token}
url = f"https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.CognitiveServices/locations/{region}/models?api-version=2023-05-01"
response = requests.get(url, headers=headers)
data = json.loads(response.text)
print(json.dumps(data, indent=4))
授權存取受控身分識別
OpenAI 支援以 Microsoft Entra 驗證 Azure 資源的受控識別 (部分機器翻譯)。 Azure 資源受控識別可以使用從來自在 Azure 虛擬機器 (VM)、函數應用程式、虛擬機器擴展集及其他服務中執行之應用程式的 Microsoft Entra 認證,來授權對 Azure AI 服務資源的存取權。 藉由使用適用於 Azure 資源的受控識別搭配 Microsoft Entra 驗證,您可以避免使用在雲端執行的應用程式儲存認證。
在 VM 上啟用受控識別
在您可以使用 Azure 資源受控識別對來自 VM 的 Azure AI 服務資源驗證存取權之前,必須先在該 VM 上啟用 Azure 資源受控識別。 若要了解如何啟用適用於 Azure 資源的受控識別,請參閱:
如需有關受控識別的詳細資訊,請參閱適用於 Azure 資源的受控識別。