الاتصال الآمن بخدمات وقواعد بيانات Azure من Azure App Service
قد تحتاج خدمة التطبيق إلى الاتصال بخدمات Azure الأخرى مثل قاعدة بيانات أو تخزين أو تطبيق آخر. توصي هذه النظرة العامة بأساليب مختلفة للاتصال ومتى يتم استخدامها.
اليوم، يرتبط قرار نهج الاتصال ارتباطا وثيقا بإدارة الأسرار. لم يعد النمط الشائع لاستخدام أسرار الاتصال في سلسلة الاتصال، مثل اسم المستخدم وكلمة المرور والمفتاح السري وما إلى ذلك، هو الأسلوب الأكثر أمانا للاتصال. الخطر أعلى اليوم لأن الجهات الفاعلة في التهديد تزحف بانتظام إلى مستودعات GitHub العامة للحصول على أسرار الاتصال الملتزم بها عن طريق الخطأ. بالنسبة للتطبيقات السحابية، فإن أفضل إدارة للبيانات السرية هي عدم وجود أسرار على الإطلاق. عند الترحيل إلى Azure App Service، قد يبدأ تطبيقك بالاتصال المستند إلى الأسرار، وتتيح لك App Service الاحتفاظ بالبيانات السرية بأمان. ومع ذلك، يمكن أن يساعد Azure في تأمين الاتصال الخلفي لتطبيقك من خلال مصادقة Microsoft Entra، ما يلغي الأسرار تماما في تطبيقك.
طريقة التوصيل | وقت الاستخدام |
---|---|
الاتصال بهوية تطبيق | * تريد إزالة بيانات الاعتماد أو المفاتيح أو الأسرار بالكامل من التطبيق الخاص بك. * تدعم خدمة Azure المتلقية للمعلومات مصادقة Microsoft Entra، مثل Microsoft Graph. * لا يحتاج مورد انتقال البيانات من الخادم إلى معرفة المستخدم الحالي الذي سجل الدخول أو لا يحتاج إلى تخويل متعدد المستويات للمستخدم الحالي الذي سجل الدخول. |
الاتصال نيابة عن المستخدم الذي سجل الدخول | * يجب على التطبيق الوصول إلى مورد انتقال البيانات من الخادم نيابة عن المستخدم الذي سجل الدخول. * تدعم خدمة Azure المتلقية للمعلومات مصادقة Microsoft Entra، مثل Microsoft Graph. * يجب أن يقوم مورد انتقال البيانات من الخادم بتخويل متعدد المستويات للمستخدم الحالي الذي قام بتسجيل الدخول. |
الاتصال باستخدام الأسرار | * يتطلب مورد انتقال البيانات من الخادم بيانات سرية للاتصال. * يتصل تطبيقك بخدمات غير Azure، مثل خادم قاعدة بيانات محلي. * خدمة Azure المتلقية للمعلومات لا تدعم مصادقة Microsoft Entra حتى الآن. |
الاتصال بهوية تطبيق
إذا كان تطبيقك يستخدم بالفعل مجموعة واحدة من بيانات الاعتماد للوصول إلى خدمة Azure المتلقية للمعلومات، يمكنك تحويل الاتصال بسرعة لاستخدام هوية تطبيق بدلا من ذلك. تتيح الهوية المدارة من Microsoft Entra ID ل App Service الوصول إلى الموارد دون أسرار، ويمكنك إدارة الوصول إليها من خلال التحكم في الوصول استنادا إلى الدور (RBAC). يمكن للهوية المدارة الاتصال بأي مورد Azure يدعم مصادقة Microsoft Entra، ويتم إجراء المصادقة باستخدام رموز مميزة قصيرة الأجل.
توضح الصورة التالية خدمة التطبيق التالية المتصلة بخدمات Azure الأخرى:
- ج: يزور المستخدم موقع خدمة تطبيقات Azure.
- ب: الاتصال بأمان من App Service إلى خدمة Azure أخرى باستخدام هوية مدارة.
- ج: الاتصال بأمان من App Service إلى Microsoft Graph باستخدام هوية مدارة.
أمثلة على استخدام أسرار التطبيق للاتصال بقاعدة بيانات:
- البرنامج التعليمي: الاتصال بقواعد بيانات Azure من App Service دون بيانات سرية باستخدام الهوية المُدارة
- البرنامج التعليمي: الاتصال بـ SQL Database من .NET App Service دون أسرار باستخدام هوية مُدارة
- البرنامج التعليمي: الاتصال بقاعدة بيانات PostgreSQL من Java Tomcat App Service دون أسرار باستخدام هوية مدارة
الاتصال نيابة عن المستخدم الذي سجل الدخول
قد يحتاج تطبيقك إلى الاتصال بخدمة انتقال البيانات من الخادم نيابة عن المستخدم الذي سجل الدخول. تتيح لك App Service مصادقة المستخدمين بسهولة باستخدام موفري الهوية الأكثر شيوعا (راجع المصادقة والتخويل في Azure App Service وAzure Functions). إذا كنت تستخدم موفر Microsoft (مصادقة Microsoft Entra)، يمكنك بعد ذلك تدفق المستخدم الذي سجل الدخول إلى أي خدمة انتقال البيانات من الخادم. على سبيل المثال:
- قم بتشغيل استعلام قاعدة بيانات يقوم بإرجاع البيانات السرية التي تم تفويض المستخدم الذي سجل الدخول بقراءتها.
- استرداد البيانات الشخصية أو اتخاذ إجراءات كمستخدم قام بتسجيل الدخول في Microsoft Graph.
توضح الصورة التالية تطبيقا يصل بأمان إلى قاعدة بيانات SQL نيابة عن المستخدم الذي سجل الدخول.
بعض السيناريوهات الشائعة هي:
- الاتصال ب Microsoft Graph نيابة عن المستخدم
- الاتصال بقاعدة بيانات SQL نيابة عن المستخدم
- الاتصال بتطبيق App Service آخر نيابة عن المستخدم
- تدفق المستخدم الذي سجل الدخول من خلال طبقات متعددة من خدمات انتقال البيانات من الخادم
الاتصال باستخدام الأسرار
هناك طريقتان موصى بهما لاستخدام البيانات السرية في تطبيقك: استخدام البيانات السرية المخزنة في Azure Key Vault أو الأسرار في إعدادات تطبيق App Service.
استخدام البيانات السرية من Key Vault
يمكن استخدام Azure Key Vault لتخزين الأسرار والمفاتيح بأمان، ومراقبة الوصول إلى الأسرار واستخدامها، وتبسيط إدارة أسرار التطبيق. إذا كانت خدمة انتقال البيانات من الخادم لا تدعم مصادقة Microsoft Entra أو تتطلب سلسلة الاتصال أو مفتاحا، فاستخدم Key Vault لتخزين أسرارك وتوصيل تطبيقك ب Key Vault بهوية مدارة واسترداد الأسرار. يمكن لتطبيقك الوصول إلى أسرار key vault كمراجع Key Vault في إعدادات التطبيق.
تشمل فوائد الهويات المدارة المدمجة مع Key Vault ما يلي:
- يقتصر الوصول إلى سر key vault على التطبيق.
- قد يتمتع المساهمون في التطبيقات، مثل المسؤولين، بالتحكم الكامل في موارد App Service، وفي الوقت نفسه ليس لديهم حق الوصول إلى أسرار key vault.
- لا يلزم تغيير الرمز إذا كان رمز التطبيق الخاص بك يصل بالفعل إلى أسرار الاتصال بإعدادات التطبيق.
- يوفر Key Vault المراقبة والتدقيق لمن قام بالوصول إلى الأسرار.
- لا يتطلب تدوير أسرار key vault أي تغييرات في App Service.
توضح الصورة التالية خدمة التطبيقات المتصلة ب Key Vault باستخدام هوية مدارة ثم الوصول إلى خدمة Azure باستخدام الأسرار المخزنة في Key Vault:
استخدام البيانات السرية في إعدادات التطبيق
بالنسبة للتطبيقات التي تتصل بالخدمات باستخدام الأسرار (مثل أسماء المستخدمين وكلمات المرور ومفاتيح API)، يمكن ل App Service تخزينها بأمان في إعدادات التطبيق. يتم إدخال هذه الأسرار في التعليمات البرمجية للتطبيق كمتغيرات بيئة عند بدء تشغيل التطبيق. تُشفَّر إعدادات التطبيق دائماً عند تخزينها (مشفرة في حالة الثبات). للحصول على إدارة أكثر تقدما للبيانات السرية، مثل تدوير البيانات السرية ونهج الوصول ومحفوظات التدقيق، حاول استخدام Key Vault.
أمثلة على استخدام أسرار التطبيق للاتصال بقاعدة بيانات:
- البرنامج التعليمي: نشر تطبيق ASP.NET Core وAzure SQL Database إلى Azure App Service
- البرنامج التعليمي: نشر تطبيق ASP.NET إلى Azure باستخدام قاعدة بيانات Azure SQL
- البرنامج التعليمي: نشر تطبيق PHP وMySQL وRedis إلى Azure App Service
- نشر تطبيق ويب Node.js + MongoDB إلى Azure
- نشر تطبيق ويب Python (Flask) باستخدام PostgreSQL في Azure
- نشر تطبيق ويب Python (Django) باستخدام PostgreSQL في Azure
- نشر تطبيق ويب Python (FastAPI) باستخدام PostgreSQL في Azure
- البرنامج التعليمي: إنشاء تطبيق ويب Tomcat باستخدام Azure App Service على Linux وMySQL
- البرنامج التعليمي: إنشاء تطبيق ويب Java Spring Boot باستخدام Azure App Service على Linux وAzure Cosmos DB
الخطوات التالية
تعلم كيف:
- تخزين البيانات السرية بأمان في Azure Key Vault.
- الوصول إلى الموارد باستخدام هوية مدارة.
- تخزين البيانات السرية باستخدام إعدادات تطبيق App Service.
- الاتصال ب Microsoft Graph كمستخدم.
- الاتصال بقاعدة بيانات SQL كمستخدم.
- الاتصال بتطبيق App Service آخر كمستخدم.
- اتصل بتطبيق App Service آخر ثم خدمة انتقال البيانات من الخادم كمستخدم.