Cara mengonfigurasi Azure OpenAI Service dengan identitas terkelola

Skenario keamanan yang lebih kompleks memerlukan kontrol akses berbasis peran Azure (Azure RBAC). Dokumen ini membahas cara mengautentikasi ke sumber daya OpenAI Anda menggunakan ID Microsoft Entra.

Di bagian berikut, Anda akan menggunakan Azure CLI untuk masuk, dan mendapatkan token pembawa untuk memanggil sumber daya OpenAI. Jika Anda terjebak, tautan disediakan di setiap bagian dengan semua opsi yang tersedia untuk setiap perintah di Azure Cloud Shell/Azure CLI.

Prasyarat

Tetapkan diri Anda ke peran Pengguna Cognitive Services

Tetapkan diri Anda peran Pengguna OpenAI Cognitive Services atau Kontributor OpenAI Cognitive Services untuk memungkinkan Anda menggunakan akun Anda untuk melakukan panggilan API inferensi Azure OpenAI daripada harus menggunakan autentikasi berbasis kunci. Setelah Anda membuat perubahan ini, diperlukan waktu hingga 5 menit sebelum perubahan berlaku.

Masuk ke Azure CLI

Untuk masuk ke Azure CLI, jalankan perintah berikut dan selesaikan masuk. Anda mungkin perlu melakukannya lagi jika sesi Anda diam terlalu lama.

az login

Penyelesaian Obrolan

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)

Mengkueri Azure OpenAI dengan API sarana kontrol

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

Mengotorisasi akses ke identitas terkelola

OpenAI mendukung autentikasi Microsoft Entra dengan identitas terkelola untuk sumber daya Azure. Identitas terkelola untuk sumber daya Azure dapat mengotorisasi akses ke sumber daya layanan Azure AI menggunakan kredensial Microsoft Entra dari aplikasi yang berjalan di komputer virtual (VM) Azure, aplikasi fungsi, set skala komputer virtual, dan layanan lainnya. Dengan menggunakan identitas terkelola untuk sumber daya Azure bersama dengan autentikasi Microsoft Entra, Anda dapat menghindari penyimpanan kredensial dengan aplikasi Anda yang berjalan di cloud.

Mengaktifkan identitas terkelola pada VM

Sebelum Anda dapat menggunakan identitas terkelola untuk sumber daya Azure untuk mengotorisasi akses ke sumber daya layanan Azure AI dari VM, Anda harus mengaktifkan identitas terkelola untuk sumber daya Azure di VM. Untuk mempelajari cara mengaktifkan identitas terkelola untuk Azure Resources, lihat:

Untuk informasi selengkapnya tentang identitas terkelola, lihat Identitas terkelola untuk sumber daya Azure.