Microsoft Entra ID kimlik doğrulaması (klasik) ile Microsoft Döküm Modellerinde Azure OpenAI'yi yapılandırma

Yalnızca şunlar için geçerlidir:Dökümhane (klasik) portalı. Bu makale yeni Dökümhane portalında kullanılamaz. Yeni portal hakkında daha fazla bilgi edinin.

Uyarı

Bu makaledeki bağlantılar, şu anda görüntülediğiniz Dökümhane (klasik) belgeleri yerine yeni Microsoft Foundry belgelerinde içerik açabilir.

Daha karmaşık güvenlik senaryoları için Azure rol tabanlı erişim denetimi (Azure RBAC) gereklidir. Bu belge, Microsoft Entra ID kullanarak Azure OpenAI kaynağınızda kimlik doğrulaması yapmayı kapsar.

Aşağıdaki bölümlerde, oturum açmak için Azure CLI kullanacak ve OpenAI kaynağını çağırmak için taşıyıcı belirteci edineceksiniz. Takılırsanız, her bölümde Azure Cloud Shell/Azure CLI her komut için tüm kullanılabilir seçenekleri içeren bağlantılar sağlanır.

Önkoşullar

  • Azure aboneliği - Ücretsiz bir abonelik oluştur

  • Özel alt etki alanı adları, kimlik doğrulaması için Microsoft Entra ID gibi özellikleri etkinleştirmek amacıyla gereklidir.

  • Azure CLI - Yükleme Kılavuzu

  • Aşağıdaki Python kitaplıkları: işletim sistemi, istekler, json, openai, azure-identity

Rol atama

Kendinize Cognitive Services OpenAI Kullanıcısı veya Cognitive Services OpenAI Katkıda Bulunanı rollerini atayarak anahtar tabanlı kimlik doğrulaması kullanmak yerine Azure OpenAI çıkarım API'si çağrıları yapmanıza olanak tanıyın. Bu değişikliği yaptıktan sonra, değişikliğin geçerlilik kazanması 5 dakika kadar sürebilir.

Azure CLI oturum açın

Azure CLI oturum açmak için aşağıdaki komutu çalıştırın ve oturum açmayı tamamlayın. Oturumunuz çok uzun süredir boştaysa yeniden yapmanız gerekebilir.

az login

Sohbet Sonuçları

from azure.identity import DefaultAzureCredential, get_bearer_token_provider
from openai import OpenAI

token_provider = get_bearer_token_provider(
    DefaultAzureCredential(), "https://ai.azure.com/.default"
)

client = AzureOpenAI(
    base_url="https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
    api_key=token_provider
)

response = client.chat.completions.create(
    model="gpt-4o", # 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 services support this too?"}
    ]
)

print(response.choices[0].message.content)

OpenAI Azure'ı denetim düzlemi API'si ile sorgulama

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))

Yönetilen kimlikler için erişim yetkilendirmesi

OpenAI, Azure kaynakları için yönetilen kimliklerle Microsoft Entra kimlik doğrulamasını destekler. Azure kaynakları için yönetilen kimlikler, Azure sanal makinelerde (VM), işlev uygulamalarında, sanal makine ölçek kümelerinde ve diğer hizmetlerde çalışan uygulamalardan Microsoft Entra kimlik bilgilerini kullanarak Azure OpenAI kaynaklarına erişim yetkisi verebilir. Azure kaynakları için yönetilen kimlikleri Microsoft Entra kimlik doğrulamasıyla birlikte kullanarak, kimlik bilgilerini bulutta çalışan uygulamalarınızla birlikte depolamaktan kaçınabilirsiniz.

VM'de yönetilen kimlikleri etkinleştirme

vm'nizden Azure OpenAI kaynaklarına erişim yetkisi vermek üzere Azure kaynaklar için yönetilen kimlikleri kullanabilmeniz için önce VM'deki Azure kaynaklar için yönetilen kimlikleri etkinleştirmeniz gerekir. Azure Kaynakları için yönetilen kimlikleri etkinleştirmeyi öğrenmek için bkz:

Yönetilen kimlikler hakkında daha fazla bilgi için bkz. Azure kaynakları için Yönetilen kimlikler.