跳转到主要内容

热门内容

今日:


总体:


最近浏览:


Chinese, Simplified

category

更复杂的安全场景需要Azure基于角色的访问控制(Azure RBAC)。本文档介绍如何使用Microsoft Entra ID对您的OpenAI资源进行身份验证。

在以下部分中,您将使用Azure CLI进行登录,并获得一个承载令牌来调用OpenAI资源。如果您陷入困境,每个部分都会提供链接,其中包含Azure Cloud Shell/Azure CLI中每个命令的所有可用选项。

先决条件

  • Azure订阅-免费创建一个
  • 在所需的Azure订阅中授予对Azure OpenAI服务的访问权限
  • 目前,仅由应用程序授予对此服务的访问权限。您可以通过填写“请求访问Azure OpenAI服务”表格来申请访问Azure Open人工智能。如果您有问题,请打开此回购的问题与我们联系。
  • 需要自定义子域名称才能启用Microsoft Entra ID等功能进行身份验证。
  • Azure CLI-安装指南
  • 以下Python库:os, requests, json, openai, azure-identity

分配角色


为自己分配认知服务OpenAI用户或认知服务Open人工智能参与者角色,允许您使用帐户进行Azure OpenAI推理API调用,而不必使用基于密钥的身份验证。进行此更改后,可能需要长达5分钟的时间才能使更改生效。

登录Azure CLI


若要登录Azure CLI,请运行以下命令并完成登录。如果会话空闲时间过长,则可能需要再次登录。

Azure CLI

az login


聊天完成情况


Python

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


Python

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资源的托管身份可以使用Microsoft Entra凭据从运行在Azure虚拟机(VM)、功能应用程序【function apps】、虚拟机规模集和其他服务中的应用程序授权访问Azure AI服务资源。通过将Azure资源的托管身份与Microsoft Entra身份验证一起使用,您可以避免将凭据存储在云中运行的应用程序中。

在虚拟机上启用托管标识


在您可以使用Azure资源的托管标识授权从虚拟机访问Azure AI服务资源之前,您必须在虚拟机上为Azure资源启用托管标识。要了解如何为Azure资源启用托管身份,请参阅:


有关托管标识的更多信息,请参阅Azure资源的托管标识。

本文地址
最后修改
星期二, 七月 2, 2024 - 17:25
Article