البرنامج التعليمي: تخزين بيانات اعتماد 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. ستستخدم هذه القيم لاحقا في هذا البرنامج التعليمي.

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

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

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

  1. تسجيل الدخول إلى ⁧⁩مدخل Microsoft Azure⁧⁩.

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

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

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

  5. حدد Review + create.

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

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

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

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

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

  3. حدد إنشاء/استيراد من القائمة.

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

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

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

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

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

  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المعرف السري هو .

    لقطة شاشة لمعرف سري لسر مخزن مفاتيح يسمى cosmos-readwrite-key.

إنشاء Azure Web App وتسجيله باستخدام 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 DB هذا.
    مجموعة الموارد حدد مجموعة موارد، أو حدد إنشاء جديد، ثم أدخل اسمًا فريدًا لمجموعة الموارد الجديدة.
    الاسم أدخل اسما فريدا عالميا لتطبيق الويب الخاص بك.
    نشر حدد التعليمات البرمجية.
    مكدس وقت التشغيل حدد .NET 6 (LTS).
    نظام تشغيل حدد Windows.
    المنطقة حدد موقعًا جغرافيًا لاستضافة حساب Azure Cosmos DB. استخدم الموقع الأقرب إلى المستخدمين لمنحهم أسرع وصول إلى البيانات.
  4. اترك الإعدادات المتبقية لقيمها الافتراضية.

  5. حدد Next: Deployment.

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

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

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

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

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

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

  11. في صفحة Identity ، حدد On للهوية المدارة المعينة من قبل النظام ، ثم حدد Save.

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

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

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

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

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

    لقطة شاشة لخيار Create في قائمة Access policies.

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

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

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

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

    ملاحظة

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

  5. حدد التالي مرة أخرى لتخطي علامة التبويب التطبيق . في علامة التبويب Review + create ، راجع الإعدادات التي تقدمها، ثم حدد Create.

  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)المرجع .

    لقطة شاشة لمربع الحوار إضافة/تحرير إعداد التطبيق مع إعداد تطبيق جديد يشير إلى سر مخزن المفاتيح.

  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. حدد Overview من قائمة التنقل. حدد استعراض لمشاهدة التطبيق باستخدام بيانات الاعتماد المكتظة.

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

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