البرنامج التعليمي: تخزين بيانات اعتماد Azure Cosmos DB واستخدامها مع Azure Key Vault

ينطبق على: NoSQL MongoDB كاساندرا العفريت جدول

هام

يوصى بالوصول إلى Azure Cosmos DB هو استخدام هوية مدارة يعينها النظام. إذا لم يفي كل من حل الهوية المدارة والحل المستند إلى الشهادة باحتياجاتك، فالرجاء استخدام حل Azure Key vault في هذه المقالة.

إذا كنت تستخدم Azure Cosmos DB كقاعدة بيانات، يمكنك الاتصال بقواعد البيانات والحاوية والعناصر باستخدام SDK ونقطة نهاية واجهة برمجة التطبيقات والمفتاح الأساسي أو الثانوي.

ليس من الممارسات الجيدة تخزين URI لنقطة النهاية ومفاتيح القراءة والكتابة الحساسة مباشرة داخل التعليمات البرمجية للتطبيق أو ملف التكوين. من الناحية المثالية، تتم قراءة هذه البيانات من متغيرات البيئة داخل المضيف. في Azure App Service، تسمح لك إعدادات التطبيق بإدخال بيانات اعتماد وقت التشغيل لحساب Azure Cosmos DB الخاص بك دون الحاجة إلى أن يقوم المطورون بتخزين بيانات الاعتماد هذه بطريقة نصية واضحة غير آمنة.

يكرر Azure Key Vault على أفضل الممارسات هذه بشكل أكبر من خلال السماح لك بتخزين بيانات الاعتماد هذه بشكل آمن مع منح خدمات مثل الوصول المدار من Azure App Service إلى بيانات الاعتماد. ستقرأ Azure App Service بيانات الاعتماد الخاصة بك بأمان من Azure Key Vault وتدخل بيانات الاعتماد هذه في تطبيقك قيد التشغيل.

باستخدام أفضل الممارسات، يمكن للمطورين تخزين بيانات الاعتماد لأدوات مثل محاكي Azure Cosmos DB أو تجربة Azure Cosmos DB مجانا أثناء التطوير. بعد ذلك، يمكن لفريق العمليات التأكد من إدخال إعدادات الإنتاج الصحيحة في وقت التشغيل.

في هذا البرنامج التعليمي، تتعلم كيفية:

  • إنشاء مثيل Azure Key Vault
  • إضافة بيانات اعتماد Azure Cosmos DB كأسرار إلى مخزن المفاتيح
  • إنشاء مورد Azure App Service وتسجيله ومنح أذونات "مفتاح القراءة"
  • إدخال أسرار مخزن المفاتيح في مورد App Service

إشعار

يستخدم هذا البرنامج التعليمي ونموذج التطبيق حساب Azure Cosmos DB ل NoSQL. يمكنك تنفيذ العديد من الخطوات نفسها باستخدام واجهات برمجة التطبيقات الأخرى.

المتطلبات الأساسية

قبل البدء: احصل على بيانات اعتماد Azure Cosmos DB

قبل البدء، ستحصل على بيانات الاعتماد لحسابك الحالي.

  1. انتقل إلى صفحة مدخل Microsoft Azure لحساب Azure Cosmos DB الحالي ل NoSQL.

  2. من صفحة حساب Azure Cosmos DB for NoSQL، حدد خيار قائمة التنقل Keys .

    لقطة شاشة لصفحة حساب Azure Cosmos DB SQL API. يتم تمييز خيار Keys في قائمة التنقل.

  3. سجل القيم من حقلي URI وPRIMARY KEY. ستستخدم هذه القيم لاحقا في هذا البرنامج التعليمي.

    لقطة شاشة لصفحة Keys مع بيانات اعتماد مختلفة لحساب Azure Cosmos DB SQL API.

إنشاء مورد Azure Key Vault

أولا، قم بإنشاء مخزن مفاتيح جديد لتخزين واجهة برمجة التطبيقات الخاصة بك لبيانات اعتماد NoSQL.

  1. قم بتسجيل الدخول إلى بوابة Azure.

  2. حدد Create a resource > Security > Key Vault.

  3. في صفحة Create key vault ، أدخل المعلومات التالية:

    الإعدادات ‏‏الوصف
    الاشتراك حدد اشتراك Azure الذي تريد استخدامه لحساب Azure Cosmos هذا.
    مجموعة الموارد حدد مجموعة موارد، أو حدد إنشاء جديد، ثم أدخل اسمًا فريدًا لمجموعة الموارد الجديدة.
    اسم خزنة المفاتيح أدخل اسما فريدا عالميا لمخزن المفاتيح الخاص بك.
    المنطقة حدد موقعًا جغرافيًّا لاستضافة حساب Azure Cosmos DB. استخدم الموقع الأقرب إلى المستخدمين لمنحهم أسرع وصول إلى البيانات.
    مستوى الأسعار حدد قياسي.
  4. اترك الإعدادات المتبقية لقيمها الافتراضية.

  5. حدد "Review + create".

  6. راجع الإعدادات التي تقدمها، ثم حدد إنشاء. يستغرق إنشاء جهاز ظاهر بضع دقائق. انتظر حتى يتم عرض صفحة المدخل، اكتمل التوزيع الخاص بك قبل المضي قدمًا.

إضافة مفاتيح الوصول لـ Azure Cosmos DB إلى Key Vault

الآن، قم بتخزين بيانات اعتماد Azure Cosmos DB الخاصة بك كأسرار في مخزن المفاتيح.

  1. حدد Go to resource للانتقال إلى صفحة مورد Azure Key Vault.

  2. من صفحة مورد Azure Key Vault، حدد خيار قائمة تنقل البيانات السرية.

  3. حدد Generate/Import من القائمة.

    لقطة شاشة لخيار Generate/Import في قائمة key vault.

  4. في صفحة إنشاء بيانات سرية ، أدخل المعلومات التالية:

    الإعدادات ‏‏الوصف
    خيارات التحميل يدوي
    الاسم نقطة نهاية cosmos
    قيمة سرية أدخل URI الذي نسخته سابقا في هذا البرنامج التعليمي.

    لقطة شاشة لمربع حوار إنشاء بيانات سرية في مدخل Microsoft Azure مع تفاصيل سر URI.

  5. حدد Create لإنشاء بيانات سرية جديدة لنقطة نهاية cosmos.

  6. حدد إنشاء/استيراد من القائمة مرة أخرى. في صفحة إنشاء بيانات سرية ، أدخل المعلومات التالية:

    الإعدادات ‏‏الوصف
    خيارات التحميل يدوي
    الاسم cosmos-readwrite-key
    قيمة سرية أدخل PRIMARY KEY الذي نسخته سابقا في هذا البرنامج التعليمي.

    لقطة شاشة لمربع الحوار Create a secret في مدخل Microsoft Azure مع تفاصيل سر PRIMARY KEY.

  7. حدد Create لإنشاء سر cosmos-readwrite-key الجديد.

  8. بعد إنشاء الأسرار، اعرضها في قائمة الأسرار داخل صفحة الأسرار .

    لقطة شاشة لقائمة الأسرار الخاصة بخزنة المفاتيح.

  9. حدد كل مفتاح، وحدد أحدث إصدار، ثم انسخ المعرف السري. ستستخدم المعرف لنقطة نهاية cosmos والبيانات السرية cosmos-readwrite-key لاحقا في هذا البرنامج التعليمي.

    تلميح

    سيكون المعرف السري بهذا التنسيق https://<key-vault-name>.vault.azure.net/secrets/<secret-name>/<version-id>. على سبيل المثال، إذا كان اسم المخزن الرئيسي هو msdocs-key-vault، فإن اسم المفتاح هو cosmos-readwrite-key، والإصدار إذا كان 83b995e363d947999ac6cf487ae0e12e؛ فسيكون https://msdocs-key-vault.vault.azure.net/secrets/cosmos-readwrite-key/83b995e363d947999ac6cf487ae0e12eالمعرف السري .

    لقطة شاشة لمعرف سري لسر key vault يسمى cosmos-readwrite-key.

إنشاء تطبيق ويب Azure وتسجيله باستخدام Azure Key Vault

في هذا القسم، قم بإنشاء Azure Web App جديد، ونشر نموذج تطبيق، ثم تسجيل الهوية المدارة لتطبيق الويب باستخدام Azure Key Vault.

  1. إنشاء مستودع GitHub جديد باستخدام قالب cosmos-db-nosql-dotnet-sample-web-environment-variables.

  2. في مدخل Microsoft Azure، حدد Create a resource > Web > App.

  3. في صفحة Create Web App وعلامة التبويب Basics ، أدخل المعلومات التالية:

    الإعدادات ‏‏الوصف
    الاشتراك حدد اشتراك Azure الذي تريد استخدامه لحساب Azure Cosmos هذا.
    مجموعة الموارد حدد مجموعة موارد، أو حدد إنشاء جديد، ثم أدخل اسمًا فريدًا لمجموعة الموارد الجديدة.
    الاسم أدخل اسما فريدا عالميا لتطبيق الويب الخاص بك.
    نشر حدد Code.
    مكدس وقت التشغيل حدد .NET 6 (LTS).
    نظام تشغيل حدد Windows.
    المنطقة حدد موقعًا جغرافيًّا لاستضافة حساب Azure Cosmos DB. استخدم الموقع الأقرب إلى المستخدمين لمنحهم أسرع وصول إلى البيانات.
  4. اترك الإعدادات المتبقية لقيمها الافتراضية.

  5. حدد Next: Deployment.

  6. في علامة التبويب Deployment ، أدخل المعلومات التالية:

    الإعدادات ‏‏الوصف
    النشر المستمر حدد تمكين.
    حساب GitHub قم بتحديد تخويل. اتبع مطالبات تخويل حساب GitHub لمنح إذن Azure لقراءة مستودع GitHub الذي تم إنشاؤه حديثا.
    المنظمة حدد المؤسسة لمستودع GitHub الجديد.
    المستودع حدد اسم مستودع GitHub الجديد.
    الفرع حدد "main".
  7. حدد "Review + create".

  8. راجع الإعدادات التي تقدمها، ثم حدد إنشاء. يستغرق إنشاء جهاز ظاهر بضع دقائق. انتظر حتى يتم عرض صفحة المدخل، اكتمل التوزيع الخاص بك قبل المضي قدمًا.

  9. قد تحتاج إلى الانتظار بضع دقائق إضافية حتى يتم نشر تطبيق الويب في البداية إلى تطبيق الويب. من صفحة مورد Azure Web App، حدد Browse لمشاهدة الحالة الافتراضية للتطبيق.

    لقطة شاشة لتطبيق الويب في حالته الافتراضية دون بيانات اعتماد.

  10. حدد خيار قائمة تنقل الهوية.

  11. في صفحة الهوية ، حدد تشغيل للهوية المدارة المعينة من قبل النظام، ثم حدد حفظ.

    لقطة شاشة للهوية المدارة المعينة من قبل النظام التي يتم تمكينها من صفحة الهوية.

إدخال أسرار Azure Key Vault كإعدادات تطبيق Azure Web App

وأخيرا، أدخل الأسرار المخزنة في مخزن المفاتيح الخاص بك كإعدادات تطبيق داخل تطبيق الويب. ستقوم إعدادات التطبيق بدورها بإدخال بيانات الاعتماد في التطبيق في وقت التشغيل دون تخزين بيانات الاعتماد في نص واضح.

  1. ارجع إلى صفحة key vault في مدخل Microsoft Azure. حدد Access policies من قائمة التنقل.

  2. في صفحة Access policies ، حدد Create من القائمة.

    لقطة شاشة لخيار إنشاء في قائمة نهج الوصول.

  3. في علامة التبويب Permissions في صفحة Create an access policy، حدد الخيار Get في قسم Secret permissions. حدد التالي.

    لقطة شاشة تمكين الحصول على إذن للأذونات السرية.

  4. في علامة التبويب Principal ، حدد اسم تطبيق الويب الذي أنشأته سابقا في هذا البرنامج التعليمي. حدد التالي.

    لقطة شاشة لهوية مدارة لتطبيق الويب تم تعيينها إلى إذن.

    إشعار

    في لقطة الشاشة هذه، يسمى تطبيق الويب msdocs-dotnet-web.

  5. حدد Next مرة أخرى لتخطي علامة التبويب Application . في علامة التبويب مراجعة + إنشاء ، راجع الإعدادات التي تقدمها، ثم حدد إنشاء.

  6. ارجع إلى صفحة تطبيق الويب في مدخل Microsoft Azure. حدد Configuration من قائمة التنقل.

  7. في صفحة Configuration ، حدد New application setting. في مربع الحوار Add/Edit application setting ، أدخل المعلومات التالية:

    الإعدادات الوصف
    الاسم CREDENTIALS__ENDPOINT
    المفتاح احصل على المعرف السري للبيانات السرية لنقطة نهاية cosmos في خزنة المفاتيح التي قمت بإنشائها سابقا في هذا البرنامج التعليمي. أدخل المعرف بالتنسيق التالي: @Microsoft.KeyVault(SecretUri=<secret-identifier>).

    تلميح

    تأكد من أن متغير البيئة له قيمة تسطير أسفل السطر المزدوج (__) بدلا من تسطير سفلي واحد. التسطير السفلي المزدوج هو محدد رئيسي يدعمه .NET على جميع الأنظمة الأساسية. لمزيد من المعلومات، راجع تكوين متغيرات البيئة.

    إشعار

    على سبيل المثال، إذا كان المعرف السري هو https://msdocs-key-vault.vault.azure.net/secrets/cosmos-endpoint/69621c59ef5b4b7294b5def118921b07، فسيكون @Microsoft.KeyVault(SecretUri=https://msdocs-key-vault.vault.azure.net/secrets/cosmos-endpoint/69621c59ef5b4b7294b5def118921b07)المرجع .

    لقطة شاشة لمربع حوار إعداد التطبيق Add/Edit مع إعداد تطبيق جديد يشير إلى سر key vault.

  8. حدد موافق للاستمرار في إعداد التطبيق الجديد

  9. حدد New application setting مرة أخرى. في مربع الحوار Add/Edit application setting ، أدخل المعلومات التالية ثم حدد OK:

    الإعدادات الوصف
    الاسم CREDENTIALS__KEY
    المفتاح احصل على المعرف السري للبيانات السرية cosmos-readwrite-key في مخزن المفاتيح الذي أنشأته سابقا في هذا البرنامج التعليمي. أدخل المعرف بالتنسيق التالي: @Microsoft.KeyVault(SecretUri=<secret-identifier>).
  10. مرة أخرى في صفحة التكوين ، حدد حفظ لتحديث إعدادات التطبيق لتطبيق الويب.

    لقطة شاشة لخيار حفظ في قائمة صفحة التكوين.

  11. انتظر بضع دقائق حتى تتم إعادة تشغيل تطبيق الويب باستخدام إعدادات التطبيق الجديدة. عند هذه النقطة، يجب أن تشير إعدادات التطبيق الجديدة إلى أنها مرجع Key vault.

    لقطة شاشة للتعيين المرجعي ل Key vault على إعدادين للتطبيق في تطبيق ويب.

  12. حدد نظرة عامة من قائمة التنقل. حدد استعراض لمشاهدة التطبيق ببيانات الاعتماد المملوءة.

    لقطة شاشة لتطبيق الويب مع بيانات اعتماد حساب Azure Cosmos DB صالحة لحساب NoSQL.

الخطوات التالية