Настройка Службы Azure OpenAI с помощью проверки подлинности идентификатора Microsoft Entra
Для более сложных сценариев обеспечения безопасности требуется управление доступом на основе ролей Azure (Azure RBAC). В этом документе описывается, как пройти проверку подлинности в ресурсе Azure OpenAI с помощью идентификатора Microsoft Entra.
В следующих разделах вы будете использовать Azure CLI для входа и получения маркера носителя для вызова ресурса OpenAI. На всякий случай в каждом разделе приведены ссылки со всеми доступными параметрами для каждой команды в Azure Cloud Shell и Azure CLI.
Необходимые компоненты
подписка Azure — создайте бесплатную учетную запись.
Azure CLI — руководство по установке
Следующие библиотеки Python: ос, запросы, json, openai, azure-identity
Назначение роли
Назначьте себе роль участника OpenAI Или Cognitive Services OpenAI, чтобы разрешить использовать свою учетную запись для вызова API вывода Azure OpenAI , а не использовать проверку подлинности на основе ключей. После внесения этого изменения может потребоваться до 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)
Запрос Azure OpenAI с помощью API плоскости управления
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 с помощью учетных данных Microsoft Entra из приложений, работающих на виртуальных машинах Azure, приложениях-функциях, масштабируемых наборах виртуальных машин и других службах. Используя управляемые удостоверения для ресурсов Azure вместе с проверкой подлинности Microsoft Entra, вы можете избежать хранения учетных данных с приложениями, работающими в облаке.
Включение управляемых удостоверений на виртуальной машине
Прежде чем использовать управляемые удостоверения для ресурсов Azure для авторизации доступа к ресурсам служб ИИ Azure на виртуальной машине, необходимо включить управляемые удостоверения для ресурсов Azure на виртуальной машине. Сведения о включении управляемых удостоверений для ресурсов Azure см. в одной из следующих статей:
- Портал Azure
- Azure PowerShell
- Azure CLI
- Шаблон Azure Resource Manager
- Клиентские библиотеки Azure Resource Manager
Дополнительные сведения об управляемых удостоверениях см. в статье Управляемые удостоверения для ресурсов Azure.