إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
توفر الجلسات الديناميكية ل Azure Container Apps سياقات معزولة وآمنة عندما تحتاج إلى تشغيل التعليمات البرمجية أو التطبيقات بشكل منفصل عن أحمال العمل الأخرى. تعمل الجلسات داخل تجمع جلسة عمل يوفر وصولا فوريا إلى جلسات العمل الجديدة والحالية. تعد هذه الجلسات مثالية للسيناريوهات التي يحتاج فيها الإدخال الذي أنشأه المستخدم إلى معالجة بطريقة خاضعة للتحكم أو عند دمج خدمات الجهات الخارجية التي تتطلب تنفيذ التعليمات البرمجية في بيئة معزولة. لا تحتاج إلى نشر مورد تطبيق الحاوية لاستخدام الجلسات الديناميكية، أو إنشاء مجموعة جلسات واستدعاء واجهة برمجة التطبيقات الإدارية الخاصة به.
توضح لك هذه المقالة كيفية إدارة الجلسات الديناميكية والتفاعل معها.
نقطة النهاية الإدارية والتوجيه
يتفاعل التطبيق الخاص بك مع جلسة عمل باستخدام واجهة برمجة تطبيقات إدارة تجمع الجلسة. للحصول على نظرة عامة مفاهيمية حول كيفية توجيه الطلبات، راجع المفاهيم الرئيسية.
للحصول على نقطة نهاية إدارة تجمع الجلسات، راجع نقطة إدارة تجمعات الجلسات.
https://<SESSION_POOL_NAME>.<ENVIRONMENT_ID>.<REGION>.azurecontainerapps.io
لمزيد من المعلومات حول إدارة تجمعات الجلسات، راجع نقطة نهاية إدارة تجمعات الجلسات.
إدارة واجهة برمجة التطبيقات والمصادقة والتفويض
جميع الطلبات إلى واجهة برمجة تطبيقات إدارة تجمع الجلسات تتطلب المصادقة (AuthN) باستخدام رمز Microsoft Entra وتفويض (AuthZ) عبر دور Azure ContainerApps Session Executor في تجمع الجلسات. للتفاصيل والأمثلة، انظر المصادقة والتفويض.
إرسال الطلبات إلى جلسة
لإرسال طلب إلى حاوية جلسة العمل، يمكنك استخدام نقطة نهاية الإدارة كجذر لطلبك. تتم إعادة توجيه أي شيء في المسار يتبع نقطة نهاية إدارة التجمع الأساسي إلى حاوية الجلسة.
على سبيل المثال، إذا أجريت استدعاء إلى <POOL_MANAGEMENT_ENDPOINT>/api/uploadfile، يتم توجيه الطلب إلى حاوية الجلسة على منفذها المستهدف عند <TARGET_PORT>/api/uploadfile.
نموذج الطلب
يوضح المثال التالي كيفية إرسال طلب إلى جلسة باستخدام معرف المستخدم كمعرف الجلسة الفريد.
قبل إرسال الطلب، استبدل العناصر النائبة بين الأقواس <> بقيم خاصة بطلبك.
POST <POOL_MANAGEMENT_ENDPOINT>/<API_PATH_EXPOSED_BY_CONTAINER>?identifier=<USER_ID>
Authorization: Bearer <TOKEN>
{
"command": "echo 'Hello, world!'"
}
تتم إعادة توجيه هذا الطلب إلى الحاوية في جلسة العمل مع معرف معرف المستخدم.
إذا لم تكن هناك جلسة للمعرف المعطى، يقوم Azure Container Apps تلقائيا بتخصيص واحد من المجموعة قبل إعادة توجيه الطلب.
في هذا المثال، تستقبل حاوية الجلسة الطلب على المنفذ المستهدف عند <TARGET_PORT>/<API_PATH_EXPOSED_BY_CONTAINER>.
معرفات
لإرسال طلب HTTP إلى جلسة عمل، يجب توفير معرف جلسة عمل في الطلب. يمكنك تمرير معرف جلسة العمل في معلمة سلسلة استعلام مسماة identifier في عنوان URL عند تقديم طلب إلى جلسة عمل.
إذا كانت هناك جلسة عمل بالمعرف موجودة بالفعل، يتم إرسال الطلب إلى جلسة العمل الموجودة.
إذا لم تكن هناك جلسة عمل بالمعرف، يتم تخصيص جلسة عمل جديدة تلقائيا قبل إرسال الطلب إليها.
يوضح المخطط التالي كيف يوجه تجمع الجلسات الطلبات إلى الجلسات الحالية أو يخصص جلسة جديدة عند الحاجة.
تنسيق المعرف
معرف جلسة العمل هو سلسلة حرة الشكل، ما يعني أنه يمكنك تعريفه بأي طريقة تناسب احتياجات التطبيق الخاص بك.
معرف الجلسة هو سلسلة نصية تحددها وتكون فريدة داخل تجمع الجلسات. إذا كنت تقوم بإنشاء تطبيق ويب، يمكنك استخدام معرف المستخدم كمعرف جلسة العمل. إذا كنت تقوم بإنشاء روبوت دردشة، يمكنك استخدام معرف المحادثة.
يجب أن يكون المعرف سلسلة من 4 إلى 128 حرفا ويمكن أن يحتوي فقط على أحرف أبجدية رقمية وأحرف خاصة من هذه القائمة: |و -&و^%$#(){}[];<>.
دورة حياة الجلسة في التطبيق
بينما تستمر في إجراء مكالمات إلى جلسة العمل نفسها، تظل جلسة العمل مخصصة في التجمع. بمجرد عدم وجود طلبات إلى الجلسة بعد انقضاء فترة التهدئة، يتم تدمير الجلسة تلقائيا.
الأمان
نموذج الأمان
تم إنشاء جلسات عمل ديناميكية لتشغيل التعليمات البرمجية والتطبيقات غير الموثوق بها في بيئة آمنة ومعزولة. بينما يتم عزل جلسات العمل عن بعضها البعض، يمكن لمستخدمي الجلسة الوصول إلى أي شيء داخل جلسة عمل واحدة، بما في ذلك الملفات ومتغيرات البيئة.
قم بتكوين البيانات الحساسة أو تحميلها إلى جلسة عمل فقط إذا كنت تثق بمستخدمي الجلسة.
الوصول إلى الشبكة
بشكل افتراضي، يتم منع جلسات العمل من إجراء طلبات الشبكة الصادرة. يمكنك التحكم في الوصول إلى الشبكة عن طريق تكوين إعدادات حالة الشبكة على تجمع الجلسة.
أفضل الممارسات
- المعرفات الآمنة: استخدم معرفات الجلسة الآمنة في جميع الأوقات. إنشاء معرفات جلسة العمل باستخدام أساليب التشفير لضمان قيم فريدة وغير متوقعة. تجنب استخدام المعرف التسلسلي الذي يمكن تخمينه من قبل المهاجم.
- استخدام HTTPS: استخدم HTTPS دائما لتشفير البيانات أثناء النقل. يحمي هذا معرفات الجلسة وأي بيانات حساسة يتم تبادلها بين العميل والخادم من اعتراضها.
- الحد من مدة بقاء الجلسة: تنفيذ المهلات للجلسات. على سبيل المثال، السماح بحد أقصى 15 دقيقة من عدم النشاط قبل إنهاء الجلسة تلقائيا. يساعد هذا في التخفيف من المخاطر بسبب فقدان جهاز أو عدم مراقبته.
- الحد من رؤية جلسة العمل: قم بتعيين عناصر تحكم وصول صارمة للتأكد من أن معرفات الجلسة مرئية فقط لتجمع الجلسة. تجنب الكشف عن معرفات جلسة العمل في عناوين URL أو السجلات.
- تدوير بيانات اعتماد جلسة العمل بانتظام: مراجعة وتحديث بيانات الاعتماد المقترنة بجلسات العمل بشكل دوري. يقلل التدوير من خطر الوصول غير المصرح به.
إرشادات إضافية لجلسات الحاويات المخصصة
استخدم بروتوكولات النقل الآمنة: استخدم دائما HTTPS لتشفير البيانات أثناء النقل، بما في ذلك معرفات الجلسات. هذا النهج يحمي من هجمات الرجل في الوسط.
مراقبة نشاط الجلسة: تنفيذ التسجيل والمراقبة لتتبع أنشطة الجلسة. استخدم هذه السجلات لتحديد أنماط غير عادية أو خروقات أمنية محتملة.
التحقق من صحة إدخال المستخدم: تعامل مع جميع إدخالات المستخدم على أنها خطرة. استخدم تقنيات التحقق من صحة الإدخال والصرف الصحي للحماية من هجمات الحقن والتأكد من معالجة البيانات الموثوق بها فقط.
المصادقة والتخويل
عند إرسال طلبات إلى جلسة عمل باستخدام واجهة برمجة تطبيقات إدارة التجمع، تتم معالجة المصادقة باستخدام رموز Microsoft Entra المميزة. يتم تخويل رموز Microsoft Entra المميزة فقط من هوية تنتمي إلى دور منفذ جلسة عمل Azure ContainerApps في تجمع الجلسة لاستدعاء واجهة برمجة تطبيقات إدارة التجمع.
لتعيين الدور إلى هوية، استخدم أمر Azure CLI التالي:
az role assignment create \
--role "Azure ContainerApps Session Executor" \
--assignee <PRINCIPAL_ID> \
--scope <SESSION_POOL_RESOURCE_ID>
إذا كنت تستخدم تكامل إطار عمل لنموذج لغوي كبير (LLM)، فإن الإطار يتولى تولد وإدارة الرموز نيابة عنك. تأكد من تكوين التطبيق بهوية مدارة مع تعيينات الدور الضرورية في تجمع الجلسة.
إذا كنت تستخدم نقاط نهاية API لإدارة التجمع مباشرة، يجب إنشاء رمز مميز وتضمينه في Authorization عنوان طلبات HTTP الخاصة بك. بالإضافة إلى تعيينات الأدوار المذكورة سابقا، يجب أن يحتوي الرمز على مطالبة جمهور (aud) بقيمة https://dynamicsessions.io.
-
Azure CLI - C#
- JavaScript
- بايثون
لإنشاء رمز مميز باستخدام Azure CLI، قم بتشغيل الأمر التالي:
az account get-access-token --resource https://dynamicsessions.io
هام
يتم استخدام رمز مميز صالح لإنشاء أي جلسة عمل والوصول إليها في التجمع. حافظ على أمان الرموز المميزة الخاصة بك ولا تشاركها مع أطراف غير موثوق بها. يجب ألا يكون لدى المستخدمين النهائيين حق الوصول المباشر إلى الرموز المميزة. اجعل الرموز المميزة متاحة للتطبيق فقط، ولا توفرها أبدا للمستخدمين النهائيين.
حماية معرفات الجلسة
معرف جلسة العمل هو معلومات حساسة يجب عليك إدارتها بشكل آمن. يحتاج التطبيق الخاص بك إلى التأكد من أن كل مستخدم أو مستأجر لديه حق الوصول إلى جلسات العمل الخاصة به فقط.
تختلف الاستراتيجيات المحددة التي تمنع إساءة استخدام معرفات الجلسة اعتمادا على تصميم وبنية تطبيقك. ومع ذلك، يجب أن يتمتع تطبيقك دائما بالتحكم الكامل في إنشاء معرفات الجلسة واستخدامها حتى لا يتمكن المستخدم الضار من الوصول إلى جلسة عمل مستخدم آخر.
تتضمن استراتيجيات المثال ما يلي:
جلسة عمل واحدة لكل مستخدم: إذا كان تطبيقك يستخدم جلسة عمل واحدة لكل مستخدم، فيجب مصادقة كل مستخدم بشكل آمن، ويجب أن يستخدم تطبيقك معرف جلسة عمل فريدا لكل مستخدم قام بتسجيل الدخول.
جلسة عمل واحدة لكل محادثة عامل: إذا كان تطبيقك يستخدم جلسة عمل واحدة لكل محادثة وكيل الذكاء الاصطناعي، فتأكد من أن تطبيقك يستخدم معرف جلسة عمل فريدا لكل محادثة لا يمكن تعديلها من قبل المستخدم النهائي.
هام
قد يؤدي الفشل في تأمين الوصول إلى الجلسات إلى إساءة استخدام البيانات المخزنة في جلسات عمل المستخدمين أو الوصول غير المصرح به إليها.
استخدام هوية مُدارة
تسمح الهوية المدارة من معرف Microsoft Entra لتجمعات جلسة عمل الحاوية وجلسات العمل الخاصة بها بالوصول إلى موارد Microsoft Entra المحمية الأخرى. يتم دعم كل من الهويات المدارة المعينة من قبل النظام والمخصصة من قبل المستخدم في تجمع جلسة العمل.
لمزيد من الاطلاع على الهويات المدارة في معرف Microsoft Entra، راجع الهويات المدارة لموارد Azure.
هناك طريقتان لاستخدام الهويات المدارة مع تجمعات جلسات الحاوية المخصصة:
مصادقة سحب الصورة: استخدم الهوية المدارة للمصادقة مع سجل الحاوية لسحب صورة الحاوية.
الوصول إلى الموارد: استخدم الهوية المدارة لتجمع الجلسة في جلسة عمل للوصول إلى موارد Microsoft Entra الأخرى المحمية. نظرا لتداعياتها الأمنية، يتم تعطيل هذه الإمكانية بشكل افتراضي.
هام
إذا قمت بتمكين الوصول إلى الهوية المدارة في جلسة عمل، يمكن لأي تعليمة برمجية أو برامج قيد التشغيل في جلسة العمل إنشاء رموز Microsoft Entra المميزة للهوية المدارة للتجمع. نظرا لأن جلسات العمل تعمل عادة على تعليمات برمجية غير موثوق بها، استخدم هذه الميزة بحذر شديد.
-
Azure CLI - مدير موارد Azure
لتمكين الهوية المدارة لتجمع جلسة حاوية مخصص، استخدم Azure Resource Manager.
تسجيل الدخول
تتكامل جلسات Azure Container Apps الديناميكية مع Azure Monitor وLog Analytics لجمع السجلات المنبعثة أثناء تنفيذ الجلسة. خطوات التكوين هي نفسها لمجموعات جلسات مفسر الكود والحاويات المخصصة، لكن فئات السجلات المتاحة تختلف حسب نوع الجلسة. المقاييس التي يتم إرجاعها عبر رؤوس استجابة API لا تكتب في Log Analytics.
تسجيل الفروقات حسب نوع الجلسة
استخدم الإرشادات التالية لمقارنة سلوك التسجيل والانتقال إلى التفاصيل التي تتناسب مع نوع جلستك:
-
جلسات مفسر الكود: يتم إرجاع المخرجات من التنفيذ (بما في ذلك
stdoutوstderr)، لكن جداول تحليلات سجلات AppEnvSession لا تصدر. انظر تسجيل جلسات مفسر الكود. -
جلسات الحاويات المخصصة: تصدر جداول تحليلات سجلات AppEnvSession عندما تكتب الحاوية إلى
stdoutأوstderr، وسجلات المنصة متاحة لدورة حياة المجموعة والأحداث. انظر تسجيل جلسات الحاويات المخصصة. - شائع: المقاييس التي يتم إرجاعها عبر رؤوس استجابة API لا تكتب في Log Analytics.
للحصول على قائمة كاملة بفئات الجلسات المدعومة على مورد البيئة (Microsoft.App/managedEnvironments)، انظر السجلات المدعومة ل Microsoft.App/managedEnvironments.
المحتويات ذات الصلة
أنواع الجلسات: تعرف على الأنواع المختلفة من الجلسات الديناميكية:
البرامج التعليمية: العمل مباشرة مع واجهة برمجة تطبيقات REST أو عبر وكيل LLM:
- استخدام عامل LLM:
- AutoGen
- لانغتشين
- LlamaIndex
- Kernel الدلالي
- استخدام واجهة برمجة تطبيقات REST
- استخدام عامل LLM: