تعرف على كيفية توصيل تطبيق ASP.NET Core يعمل على Azure App Service، ب Azure App Configuration، باستخدام إحدى الطرق التالية:
- الهوية المدارة المعينة من قبل النظام (SMI)
- الهوية المدارة المعينة من قبل المستخدم (UMI)
- كيان الخدمة
- سلسلة الاتصال
في هذا البرنامج التعليمي، استخدم Azure CLI لإكمال المهام التالية:
- إعداد موارد Azure
- إنشاء اتصال بين تطبيق ويب وتكوين التطبيق
- إنشاء تطبيقك ونشره في Azure App Service
المتطلبات الأساسية
تسجيل الدخول إلى Azure
قم بتشغيل az login
في Azure CLI لتسجيل الدخول إلى Azure.
إعداد موارد Azure
ابدأ بإنشاء موارد Azure.
استنساخ نموذج المستودع التالي:
git clone https://github.com/Azure-Samples/serviceconnector-webapp-appconfig-dotnet.git
قم بتشغيل تطبيق الويب على Azure
اتبع هذه الخطوات لإنشاء App Service ونشر نموذج التطبيق. تأكد من أن لديك دور المساهم في الاشتراك أو المالك.
إنشاء خدمة تطبيق ونشر نموذج التطبيق الذي يستخدم الهوية المدارة المعينة من قبل النظام للتفاعل مع App Config.
# Change directory to the SMI sample
cd serviceconnector-webapp-appconfig-dotnet\system-managed-identity
# Create a web app
LOCATION='eastus'
RESOURCE_GROUP_NAME='service-connector-tutorial-rg'
APP_SERVICE_NAME='webapp-appconfig-smi'
az webapp up --location $LOCATION --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME
المعلمة |
الوصف |
مثال |
الموقع |
اختر موقعًا قريبًا منك. استخدم az account list-locations --output table لسرد المواقع. |
eastus |
اسم مجموعة الموارد |
ستستخدم مجموعة الموارد هذه لتنظيم جميع موارد Azure المطلوبة لإكمال هذا البرنامج التعليمي. |
service-connector-tutorial-rg |
اسم خدمة التطبيق |
يتم استخدام اسم خدمة التطبيق كاسم للمورد في Azure ولتشكل اسم المجال المؤهل بالكامل لتطبيقك، في شكل نقطة https://<app-service-name>.azurewebsites.com نهاية الخادم . يجب أن يكون هذا الاسم فريدا عبر جميع Azure والأحرف الوحيدة المسموح بها هي A -Z و-0 9 و.- |
webapp-appconfig-smi |
إنشاء خدمة تطبيق ونشر نموذج التطبيق الذي يستخدم الهوية المدارة المعينة من قبل المستخدم للتفاعل مع App Config.
# Change directory to the UMI sample
cd serviceconnector-webapp-appconfig-dotnet\user-assigned-managed-identity
# Create a web app
LOCATION='eastus'
RESOURCE_GROUP_NAME='service-connector-tutorial-rg'
APP_SERVICE_NAME='webapp-appconfig-umi'
az webapp up --location $LOCATION --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME
المعلمة |
الوصف |
مثال |
الموقع |
اختر موقعًا قريبًا منك. استخدم az account list-locations --output table لسرد المواقع. |
eastus |
اسم مجموعة الموارد |
ستستخدم مجموعة الموارد هذه لتنظيم جميع موارد Azure المطلوبة لإكمال هذا البرنامج التعليمي. |
service-connector-tutorial-rg |
اسم خدمة التطبيق |
يتم استخدام اسم خدمة التطبيق كاسم للمورد في Azure ولتشكل اسم المجال المؤهل بالكامل لتطبيقك، في شكل نقطة https://<app-service-name>.azurewebsites.com نهاية الخادم . يجب أن يكون هذا الاسم فريدا عبر جميع Azure والأحرف الوحيدة المسموح بها هي A -Z و-0 9 و.- |
webapp-appconfig-umi |
إنشاء هوية مُدارة يُعينها المستخدم. احفظ الإخراج في مفكرة مؤقتة.
az identity create --resource-group $RESOURCE_GROUP_NAME -n "myIdentity"
إنشاء خدمة تطبيق ونشر نموذج التطبيق الذي يستخدم كيان الخدمة للتفاعل مع App Config.
# Change directory to the service principal sample
cd serviceconnector-webapp-appconfig-dotnet\service-principal
# Create a web app
LOCATION='eastus'
RESOURCE_GROUP_NAME='service-connector-tutorial-rg'
APP_SERVICE_NAME='webapp-appconfig-sp'
az webapp up --location $LOCATION --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME
المعلمة |
الوصف |
مثال |
الموقع |
اختر موقعًا قريبًا منك. استخدم az account list-locations --output table لسرد المواقع. |
eastus |
اسم مجموعة الموارد |
ستستخدم مجموعة الموارد هذه لتنظيم جميع موارد Azure المطلوبة لإكمال هذا البرنامج التعليمي. |
service-connector-tutorial-rg |
اسم خدمة التطبيق |
يتم استخدام اسم خدمة التطبيق كاسم للمورد في Azure ولتشكل اسم المجال المؤهل بالكامل لتطبيقك، في شكل نقطة https://<app-service-name>.azurewebsites.com نهاية الخادم . يجب أن يكون هذا الاسم فريدا عبر جميع Azure والأحرف الوحيدة المسموح بها هي A -Z و-0 9 و.- |
webapp-appconfig-sp |
قم بإنشاء كيان خدمة، وتأكد من استبدال yourSubscriptionID
بمعرف الاشتراك الفعلي. احفظ الإخراج في مفكرة مؤقتة.
az ad sp create-for-rbac --name myServicePrincipal --role Contributor --scopes /subscriptions/{yourSubscriptionID}/resourceGroups/$RESOURCE_GROUP_NAME
تحذير
توصي Microsoft باستخدام تدفق المصادقة الأكثر أمانا المتوفر. يتطلب تدفق المصادقة الموضح في هذا الإجراء درجة عالية جدا من الثقة في التطبيق، ويحمل مخاطر غير موجودة في تدفقات أخرى. يجب عليك استخدام هذا التدفق فقط عندما لا تكون التدفقات الأخرى الأكثر أمانا، مثل الهويات المدارة، قابلة للتطبيق.
إنشاء خدمة تطبيق ونشر نموذج التطبيق الذي يستخدم سلسلة الاتصال للتفاعل مع App Config.
# Change directory to the service principal sample
cd serviceconnector-webapp-appconfig-dotnet\connection-string
# Create a web app
LOCATION='eastus'
RESOURCE_GROUP_NAME='service-connector-tutorial-rg'
APP_SERVICE_NAME='webapp-appconfig-cs'
az webapp up --location $LOCATION --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME
المعلمة |
الوصف |
مثال |
الموقع |
اختر موقعًا قريبًا منك. استخدم az account list-locations --output table لسرد المواقع. |
eastus |
اسم مجموعة الموارد |
ستستخدم مجموعة الموارد هذه لتنظيم جميع موارد Azure المطلوبة لإكمال هذا البرنامج التعليمي. |
service-connector-tutorial-rg |
اسم خدمة التطبيق |
يتم استخدام اسم خدمة التطبيق كاسم للمورد في Azure ولتشكل اسم المجال المؤهل بالكامل لتطبيقك، في شكل نقطة https://<app-service-name>.azurewebsites.com نهاية الخادم . يجب أن يكون هذا الاسم فريدا عبر جميع Azure والأحرف الوحيدة المسموح بها هي A -Z و-0 9 و.- |
webapp-appconfig-cs |
إنشاء مخزن Azure App Configuration
APP_CONFIG_NAME='my-app-config'
az appconfig create -g $RESOURCE_GROUP_NAME -n $APP_CONFIG_NAME --sku Free -l eastus
استيراد ملف تكوين الاختبار إلى Azure App Configuration.
استيراد ملف تكوين الاختبار إلى Azure App Configuration باستخدام هوية مدارة معينة من قبل النظام.
قرص مضغوط في المجلد ServiceConnectorSample
استيراد ملف تكوين الاختبار ./sampleconfigs.json إلى متجر App Configuration. إذا كنت تستخدم Cloud Shell، فحمل sampleconfigs.json قبل تشغيل الأمر.
az appconfig kv import -n $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
استيراد ملف تكوين الاختبار إلى Azure App Configuration باستخدام هوية مدارة يعينها المستخدم.
قرص مضغوط في المجلد ServiceConnectorSample
استيراد ملف تكوين الاختبار ./sampleconfigs.json إلى متجر App Configuration. إذا كنت تستخدم Cloud Shell، فحمل sampleconfigs.json قبل تشغيل الأمر.
az appconfig kv import -n $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
استيراد ملف تكوين الاختبار إلى Azure App Configuration باستخدام كيان الخدمة.
قرص مضغوط في المجلد ServiceConnectorSample
استيراد ملف تكوين الاختبار ./sampleconfigs.json إلى متجر App Configuration. إذا كنت تستخدم Cloud Shell، فحمل sampleconfigs.json قبل تشغيل الأمر.
az appconfig kv import -n $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
تحذير
توصي Microsoft باستخدام تدفق المصادقة الأكثر أمانا المتوفر. يتطلب تدفق المصادقة الموضح في هذا الإجراء درجة عالية جدا من الثقة في التطبيق، ويحمل مخاطر غير موجودة في تدفقات أخرى. يجب عليك استخدام هذا التدفق فقط عندما لا تكون التدفقات الأخرى الأكثر أمانا، مثل الهويات المدارة، قابلة للتطبيق.
استيراد ملف تكوين الاختبار إلى Azure App Configuration باستخدام سلسلة الاتصال.
قرص مضغوط في المجلد ServiceConnectorSample
استيراد ملف تكوين الاختبار ./sampleconfigs.json إلى متجر App Configuration. إذا كنت تستخدم Cloud Shell، فحمل sampleconfigs.json قبل تشغيل الأمر.
az appconfig kv import -n $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
توصيل تطبيق الويب ب App Configuration
إنشاء اتصال بين تطبيق الويب الخاص بك ومخزن App Configuration.
إنشاء اتصال بين تطبيق الويب الخاص بك ومخزن App Configuration الخاص بك، باستخدام مصادقة هوية مدارة معينة من قبل النظام. يتم هذا الاتصال من خلال Service Connector.
az webapp connection create appconfig -g $RESOURCE_GROUP_NAME -n $APP_SERVICE_NAME --app-config $APP_CONFIG_NAME --tg $RESOURCE_GROUP_NAME --connection "app_config_smi" --system-identity
system-identity
يشير إلى نوع مصادقة الهوية المدارة (SMI) المعين من قبل النظام. يدعم Service Connector أيضا المصادقات التالية: الهوية المدارة المعينة من قبل المستخدم (UMI) سلسلة الاتصال (سري) ومدير الخدمة.
إنشاء اتصال بين تطبيق الويب الخاص بك ومخزن App Configuration الخاص بك، باستخدام مصادقة هوية مدارة يعينها المستخدم. يتم هذا الاتصال من خلال Service Connector.
az webapp connection create appconfig -g $RESOURCE_GROUP_NAME -n $APP_SERVICE_NAME --app-config $APP_CONFIG_NAME --tg $RESOURCE_GROUP_NAME --connection "app_config_umi" --user-identity client-id=<myIdentityClientId> subs-id=<myTestSubsId>
user-identity
يشير إلى نوع مصادقة الهوية المدارة المعينة من قبل المستخدم. يدعم Service Connector أيضا المصادقات التالية: الهوية المدارة المعينة من قبل النظام، سلسلة الاتصال (سري) ومدير الخدمة.
هناك طريقتان يمكنك من خلالهما العثور على client-id
:
- في Azure CLI، أدخل
az identity show -n "myIdentity" -g $RESOURCE_GROUP_NAME --query 'clientId'
.
- في مدخل Microsoft Azure، افتح الهوية المدارة التي تم إنشاؤها سابقا وفي نظرة عامة، احصل على القيمة ضمن معرف العميل.
إنشاء اتصال بين تطبيق الويب الخاص بك ومخزن تكوين التطبيق الخاص بك، باستخدام كيان الخدمة. يتم ذلك من خلال Service Connector.
az webapp connection create appconfig -g $RESOURCE_GROUP_NAME -n $APP_SERVICE_NAME --app-config $APP_CONFIG_NAME --tg $RESOURCE_GROUP_NAME --connection "app_config_sp" --service-principal client-id=<mySPClientId> secret=<mySPSecret>
service-principal
يشير إلى نوع المصادقة الأساسي للخدمة. يدعم Service Connector أيضا المصادقات التالية: الهوية المدارة المعينة من قبل النظام (UMI)، والهوية المدارة المعينة من قبل المستخدم (UMI) سلسلة الاتصال (سري).
إنشاء اتصال بين تطبيق الويب الخاص بك ومخزن تكوين التطبيق الخاص بك، باستخدام سلسلة الاتصال. يتم هذا الاتصال من خلال Service Connector.
az webapp connection create appconfig -g $RESOURCE_GROUP_NAME -n $APP_SERVICE_NAME --app-config $APP_CONFIG_NAME --tg $RESOURCE_GROUP_NAME --connection "app_config_cs" --secret
secret
يشير إلى نوع مصادقة سلسلة الاتصال. يدعم Service Connector أيضا المصادقات التالية: الهوية المدارة المعينة من قبل النظام، والهوية المدارة المعينة من قبل المستخدم، ومدير الخدمة.
تحقق من صحة الاتصالات
- للتحقق مما إذا كان الاتصال يعمل، انتقل إلى تطبيق الويب الخاص بك على
https://<myWebAppName>.azurewebsites.net/
من المستعرض. بمجرد أن يصل موقع الويب، سترى أنه يعرض "Hello. Azure WebApp متصل بتكوين التطبيق بواسطة ServiceConnector الآن".
طريقة العمل
ابحث أدناه عما يديره Service Connector خلف الكواليس لكل نوع مصادقة.
يدير Service Connector تكوين الاتصال نيابة عنك:
- قم بإعداد تطبيق
AZURE_APPCONFIGURATION_ENDPOINT
الويب للسماح للتطبيق بالوصول إليه والحصول على نقطة نهاية تكوين التطبيق. الوصول إلى نموذج التعليمات البرمجية.
- قم بتنشيط المصادقة المدارة المعينة من قبل النظام لتطبيق الويب وامنح App Configuration دور قارئ البيانات للسماح للتطبيق بالمصادقة على تكوين التطبيق باستخدام DefaultAzureCredential من Azure.Identity. الوصول إلى نموذج التعليمات البرمجية.
يدير Service Connector تكوين الاتصال نيابة عنك:
- إعداد تطبيق
AZURE_APPCONFIGURATION_ENDPOINT
الويب ، AZURE_APPCONFIGURATION_CLIENTID
للسماح للتطبيق بالوصول إليه والحصول على نقطة نهاية تكوين التطبيق في التعليمات البرمجية؛
- قم بتنشيط المصادقة المدارة المعينة من قبل المستخدم لتطبيق الويب وامنح App Configuration دور قارئ البيانات للسماح للتطبيق بالمصادقة على تكوين التطبيق باستخدام DefaultAzureCredential من Azure.Identity. الوصول إلى نموذج التعليمات البرمجية.
يدير Service Connector تكوين الاتصال نيابة عنك:
- قم بإعداد تطبيق
AZURE_APPCONFIGURATION_ENDPOINT
الويب للسماح للتطبيق بالوصول إليه والحصول على نقطة نهاية تكوين التطبيق. الوصول إلى نموذج التعليمات البرمجية.
- احفظ بيانات اعتماد كيان الخدمة إلى WebApp AppSettings
AZURE_APPCONFIGURATION_CLIENTID
. AZURE_APPCONFIGURATION_TENANTID
، AZURE_APPCONFIGURATION_CLIENTSECRET
وامنح دور قارئ بيانات تكوين التطبيق إلى كيان الخدمة، بحيث يمكن مصادقة التطبيق إلى تكوين التطبيق في التعليمات البرمجية، باستخدام ClientSecretCredential
من Azure.Identity.
يدير Service Connector تكوين الاتصال نيابة عنك:
- قم بإعداد تطبيق
AZURE_APPCONFIGURATION_CONNECTIONSTRING
الويب للسماح للتطبيق بالوصول إليه والحصول على تكوين التطبيق سلسلة الاتصال. الوصول إلى نموذج التعليمات البرمجية.
- قم بتنشيط المصادقة المدارة المعينة من قبل النظام لتطبيق الويب وامنح App Configuration دور قارئ البيانات للسماح للتطبيق بالمصادقة على تكوين التطبيق باستخدام DefaultAzureCredential من Azure.Identity. الوصول إلى نموذج التعليمات البرمجية.
لمزيد من المعلومات، انتقل إلى Service Connector internals.
اختبار (اختياري)
اختياريا، قم بالاختبارات التالية:
تحديث قيمة المفتاح SampleApplication:Settings:Messages
في App Configuration Store.
az appconfig kv set -n <myAppConfigStoreName> --key SampleApplication:Settings:Messages --value hello --yes
انتقل إلى تطبيق ويب Azure بالانتقال إلى https://<myWebAppName>.azurewebsites.net/
الصفحة وتحديثها. سترى أنه تم تحديث الرسالة إلى "hello".
تنظيف الموارد
بمجرد الانتهاء، إذا كنت لن تستخدم موارد Azure هذه بعد الآن، فاحذفها عن طريق تشغيل az group delete
الأمر . يحذف هذا الأمر مجموعة الموارد وجميع الموارد الموجودة داخلها.
az group delete -n <myResourceGroupName> --yes
الخطوات التالية
اتبع البرامج التعليمية المذكورة أدناه لمعرفة المزيد عن Service Connector.