Cara mengonfigurasi Layanan Azure OpenAI dengan autentikasi ID Microsoft Entra
Skenario keamanan yang lebih kompleks memerlukan kontrol akses berbasis peran Azure (Azure RBAC). Dokumen ini mencakup cara mengautentikasi ke sumber daya Azure 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
Langganan Azure - buat langganan gratis
Azure CLI - Panduan Penginstalan
Pustaka Python berikut: os, permintaan, json, openai, azure-identity
Menetapkan peran
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:
- Portal Azure
- Azure PowerShell
- Azure CLI
- Templat Azure Resource Manager
- Pustaka klien Azure Resource Manager
Untuk informasi selengkapnya tentang identitas terkelola, lihat Identitas terkelola untuk sumber daya Azure.