كيفية تكوين خدمة Azure OpenAI مع الهويات المدارة
تتطلب سيناريوهات الأمان الأكثر تعقيدًا التحكم في الوصول المستند إلى دور Azure (Azure RBAC). يغطي هذا المستند كيفية المصادقة على مورد OpenAI باستخدام معرف Microsoft Entra.
في الأقسام التالية، ستستخدم Azure CLI لتسجيل الدخول، والحصول على رمز حامل للاتصال بمورد OpenAI. إذا واجهتك مشكلة، فسيتم توفير الروابط في كل قسم مع جميع الخيارات المتاحة لكل أمر في Azure Cloud Shell/Azure CLI.
المتطلبات الأساسية
اشتراك Azure - إنشاء اشتراك مجاناً
الوصول الممنوح لخدمة Azure OpenAI في اشتراك Azure المطلوب
حاليًا، يتم منح الوصول إلى هذه الخدمة فقط بواسطة التطبيق. يمكنك التقدم بطلب للوصول إلى Azure OpenAI عن طريق إكمال نموذج طلب الوصول إلى خدمة Azure OpenAI. افتح مشكلة على هذا المستودع للاتصال بنا إذا كانت لديك مشكلة.
أسماء النطاقات الفرعية المخصصة مطلوبة لتمكين ميزات مثل معرف Microsoft Entra للمصادقة.
Azure CLI - دليل التثبيت
مكتبات Python التالية: os، الطلبات، json، openai، azure-identity
تعيين دور
قم بتعيين دور مستخدم OpenAI للخدمات المعرفية أو Cognitive Services OpenAI Contributor للسماح لك باستخدام حسابك لإجراء استدعاءات 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 باستخدام واجهة برمجة تطبيقات مستوى التحكم
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 الظاهرية (VMs) وتطبيقات الوظائف ومجموعات مقياس الجهاز الظاهري والخدمات الأخرى. باستخدام الهويات المدارة لموارد Azure مع مصادقة Microsoft Entra، يمكنك تجنب تخزين بيانات الاعتماد مع التطبيقات التي تعمل في السحابة.
تمكين الهويات المُدارة على جهاز ظاهري
قبل أن تتمكن من استخدام الهويات المدارة لموارد Azure لتخويل الوصول إلى موارد خدمات Azure الذكاء الاصطناعي من الجهاز الظاهري، يجب تمكين الهويات المدارة لموارد Azure على الجهاز الظاهري. لمعرفة كيفية تمكين الهويات المُدارة لـAzure Resources، راجع:
- مدخل Microsoft Azure
- Azure PowerShell
- Azure CLI
- قالب Azure Resource Manager
- مكتبات عميل Azure Resource Manager
لمزيد من المعلومات حول الهويات المدارة، راجع الهويات المدارة لموارد Azure.