تكوين سلاسل اتصال مساحة تخزين Azure

تتضمن سلسلة الاتصال معلومات التخويل المطلوبة لتطبيقك للوصول إلى البيانات في حساب Azure Storage في وقت التشغيل باستخدام تخويل المفتاح المشترك. يمكنك تكوين سلاسل الاتصال من أجل:

  • الاتصال بمحاكي تخزين Azurite.
  • الوصول إلى حساب تخزين في Azure.
  • الوصول إلى الموارد المحددة في Azure عبر توقيع وصول مشترك (SAS).

لمعرفة كيفية عرض مفاتيح الوصول إلى حسابك ونسخ سلسلة اتصال، راجع إدارة مفاتيح الوصول إلى حساب التخزين.

حماية مفاتيح الوصول خاصتك

توفر مفاتيح الوصول إلى حساب التخزين وصولا كاملا إلى تكوين حساب التخزين، بالإضافة إلى البيانات. كن حذرًا دائمًا لحماية مفاتيح الوصول خاصتك. استخدم Azure Key Vault لإدارة المفاتيح وتدويرها بأمان. يمنح الوصول إلى المفتاح المشترك المستخدم حق الوصول الكامل إلى تكوين حساب التخزين وبياناته. يجب أن يكون الوصول إلى المفاتيح المشتركة محدودا ومراقبا بعناية. استخدم رموز SAS المميزة ذات نطاق وصول محدود في السيناريوهات التي لا يمكن فيها استخدام التخويل المستند إلى معرف Microsoft Entra. تجنب مفاتيح الوصول ذات الترميز الثابت أو حفظها في أي مكان في نص عادي يمكن للآخرين الوصول إليه. قم بتدوير المفاتيح إذا كنت تعتقد أنها قد تم اختراقها.

هام

توصي Microsoft باستخدام معرف Microsoft Entra لتخويل الطلبات مقابل بيانات الكائن الثنائي كبير الحجم وقائمة الانتظار والجدول إذا كان ذلك ممكنا، بدلا من استخدام مفاتيح الحساب (تخويل المفتاح المشترك). يوفر التخويل باستخدام معرف Microsoft Entra أمانا فائقا وسهولة في الاستخدام عبر تخويل المفتاح المشترك. لمزيد من المعلومات حول استخدام تخويل Microsoft Entra من تطبيقاتك، راجع كيفية مصادقة تطبيقات .NET باستخدام خدمات Azure. بالنسبة لمشاركات ملفات SMB Azure، توصي Microsoft باستخدام تكامل خدمات المجال Active Directory محلي (AD DS) أو مصادقة Microsoft Entra Kerberos.

لمنع المستخدمين من الوصول إلى البيانات في حساب التخزين الخاص بك باستخدام المفتاح المشترك، يمكنك عدم السماح بتخويل المفتاح المشترك لحساب التخزين. يوصى بالوصول الدقيق إلى البيانات بأقل الامتيازات الضرورية كأفضل ممارسة أمنية. يجب استخدام التخويل المستند إلى معرف Microsoft Entra للسيناريوهات التي تدعم OAuth. يجب استخدام Kerberos أو SMTP لملفات Azure عبر SMB. بالنسبة لملفات Azure عبر REST، يمكن استخدام رموز SAS المميزة. يجب تعطيل الوصول إلى المفتاح المشترك إذا لم يكن مطلوبا لمنع استخدامه غير المقصود. لمزيد من المعلومات، انظر منع تخويل "مفتاح مشترك" لحساب تخزين Azure.

لحماية حساب تخزين Azure باستخدام نهج الوصول المشروط من Microsoft Entra، يجب عدم السماح بتخويل المفتاح المشترك لحساب التخزين.

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

تخزين سلسلة اتصال

يحتاج تطبيقك إلى الوصول إلى سلسلة الاتصال في وقت التشغيل لتخويل الطلبات المقدمة إلى Azure Storage. لديك العديد من الخيارات لتخزين مفاتيح الوصول إلى حسابك أو سلسلة الاتصال:

  • يمكنك تخزين مفاتيح حسابك بأمان في Azure Key Vault. لمزيد من المعلومات، راجع حول مفاتيح حساب التخزين المدارة في Azure Key Vault.
  • يمكنك تخزين سلسلة الاتصال في متغير بيئة.
  • يمكن للتطبيق تخزين سلسلة الاتصال في ملف app.config أو web.config. أضف سلسلة الاتصال إلى قسم App الإعدادات في هذه الملفات.

التحذير

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

تكوين سلسلة اتصال لـ Azurite

يدعم المحاكي حسابًا ثابتًا واحدًا ومفتاح مصادقة معروفًا لمصادقة المفتاح المشترك. يشير هذا الحساب والمفتاح إلى بيانات الاعتماد الخاصة بالمفتاح المشترك الوحيدة المسموح باستخدامها مع المحاكي. وهي:

Account name: devstoreaccount1
Account key: Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==

إشعار

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

يدعم المحاكي الاتصال خلال HTTP فقط. ومع ذلك، يعد HTTPS البروتوكول الموصى به للوصول إلى الموارد في الحساب الخاص بتخزين Azure للإنتاج.

الاتصال بحساب المحاكي بواسطة الاختصار

تتمثل أسهل طريقة للاتصال بالمحاكي من تطبيقك في تكوين سلسلة اتصال في ملف تكوين التطبيق الذي يشير إلى الاختصار UseDevelopmentStorage=true. يعبر الاختصار عن مكافئ لسلسلة الاتصال الكاملة للمحاكي الذي يحدد اسم الحساب ومفتاح الحساب ونقاط النهاية للمحاكي لكل من خدمات Azure Storage:

DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;
AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;
BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;
QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;
TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;

توضح القصاصة البرمجية ‎.NET التالية كيفية استخدام الاختصار من طريقة تأخذ سلسلة اتصال. على سبيل المثال، تأخذ الدالة الإنشائية BlobContainerClient(String, String) سلسلة اتصال.

BlobContainerClient blobContainerClient = new BlobContainerClient("UseDevelopmentStorage=true", "sample-container");
blobContainerClient.CreateIfNotExists();

تأكد من تشغيل المحاكي قبل استدعاء التعليمة البرمجية في القصاصة البرمجية.

لمزيد من المعلومات حول Azurite، راجع استخدام محاكي Azurite لتطوير Azure Storage المحلي.

تكوين سلسلة اتصال لحساب تخزين Azure

لإنشاء سلسلة اتصال لحساب تخزين Azure الخاص بك، استخدم التنسيق التالي. حدد ما إذا كنت تريد الاتصال بحساب التخزين من خلال HTTPS (مستحسن) أو HTTP، واستبدل myAccountName باسم حساب التخزين، واستبدل myAccountKey بمفتاح الوصول إلى حسابك:

DefaultEndpointsProtocol=[http|https];AccountName=myAccountName;AccountKey=myAccountKey

على سبيل المثال، قد تبدو سلسلة الاتصال مشابهة لما يلي:

DefaultEndpointsProtocol=https;AccountName=storagesample;AccountKey=<account-key>

على الرغم من أن Azure Storage يدعم كلاً من HTTP وHTTPS في سلسلة اتصال، إلا أنه يوصى بشدة باستخدام HTTPS.

تلميح

يمكنك العثور على سلاسل اتصال حساب التخزين في مدخل Azure. انتقل إلى مفاتيح الوصول إلى الأمان + الشبكات>في إعدادات حساب التخزين للاطلاع على سلسلة الاتصال لمفاتيح الوصول الأساسية والثانوية.

إنشاء سلسلة اتصال باستخدام توقيع وصول مشترك

إذا كنت تمتلك عنوان URL لتوقيع الوصول المشترك (SAS) يمنحك حق الوصول إلى الموارد في حساب تخزين، يمكنك استخدام SAS في سلسلة اتصال. نظرًا لأن SAS يحتوي على المعلومات المطلوبة لمصادقة الطلب، فإن سلسلة الاتصال مع SAS توفر البروتوكول، ونقطة تقديم الخدمة، وبيانات الاعتماد اللازمة للوصول إلى المورد.

لإنشاء سلسلة اتصال تتضمن توقيع وصول مشترك، حدد السلسلة بالتنسيق التالي:

BlobEndpoint=myBlobEndpoint;
QueueEndpoint=myQueueEndpoint;
TableEndpoint=myTableEndpoint;
FileEndpoint=myFileEndpoint;
SharedAccessSignature=sasToken

تتسم كل نقطة تقديم خدمة بأنها اختيارية، على الرغم من أن سلسلة الاتصال يجب أن تحتوي على واحدة على الأقل.

إشعار

يوصى باستخدام HTTPS مع SAS كأفضل الممارسات.

إذا كنت تحدد SAS في سلسلة اتصال في ملف تكوين، فقد تحتاج إلى ترميز أحرف خاصة في عنوان URL.

مثال على خدمة SAS

فيما يلي مثال على سلسلة اتصال تتضمن خدمة SAS لتخزين Blob:

BlobEndpoint=https://storagesample.blob.core.windows.net;
SharedAccessSignature=sv=2015-04-05&sr=b&si=tutorial-policy-635959936145100803&sig=9aCzs76n0E7y5BpEi2GvsSv433BZa22leDOZXX%2BXXIU%3D

وفي ما يلي مثال على سلسلة الاتصال نفسها مع ترميز عناوين URL:

BlobEndpoint=https://storagesample.blob.core.windows.net;
SharedAccessSignature=sv=2015-04-05&amp;sr=b&amp;si=tutorial-policy-635959936145100803&amp;sig=9aCzs76n0E7y5BpEi2GvsSv433BZa22leDOZXX%2BXXIU%3D

مثال على SAS للحساب

فيما يلي مثال على سلسلة اتصال تتضمن SAS للحساب لتخزين الملفات وكائنات blob. لاحظ أنه يتم تحديد نقاط النهاية لكلتا الخدمتين:

BlobEndpoint=https://storagesample.blob.core.windows.net;
FileEndpoint=https://storagesample.file.core.windows.net;
SharedAccessSignature=sv=2015-07-08&sig=iCvQmdZngZNW%2F4vw43j6%2BVz6fndHF5LI639QJba4r8o%3D&spr=https&st=2016-04-12T03%3A24%3A31Z&se=2016-04-13T03%3A29%3A31Z&srt=s&ss=bf&sp=rwl

وفي ما يلي مثال على سلسلة الاتصال نفسها مع ترميز عناوين URL:

BlobEndpoint=https://storagesample.blob.core.windows.net;
FileEndpoint=https://storagesample.file.core.windows.net;
SharedAccessSignature=sv=2015-07-08&amp;sig=iCvQmdZngZNW%2F4vw43j6%2BVz6fndHF5LI639QJba4r8o%3D&amp;spr=https&amp;st=2016-04-12T03%3A24%3A31Z&amp;se=2016-04-13T03%3A29%3A31Z&amp;srt=s&amp;ss=bf&amp;sp=rwl

إنشاء سلسلة اتصال لنقطة نهاية تخزين صريحة

يمكنك تحديد نقاط نهاية خدمة صريحة في سلسلة الاتصال بدلاً من استخدام نقاط النهاية الافتراضية. لإنشاء سلسلة اتصال تحدد نقطة نهاية صريحة، حدد نقطة تقديم الخدمة الكاملة لكل خدمة، بما في ذلك مواصفات البروتوكول (HTTPS (مستحسن) أو HTTP)، بالتنسيق التالي:

DefaultEndpointsProtocol=[http|https];
BlobEndpoint=myBlobEndpoint;
FileEndpoint=myFileEndpoint;
QueueEndpoint=myQueueEndpoint;
TableEndpoint=myTableEndpoint;
AccountName=myAccountName;
AccountKey=myAccountKey

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

فيما يلي مثال على سلسلة اتصال تحدد نقطة نهاية صريحة لخدمة Blob:

# Blob endpoint only
DefaultEndpointsProtocol=https;
BlobEndpoint=http://www.mydomain.com;
AccountName=storagesample;
AccountKey=<account-key>

يحدد هذا المثال نقاط نهاية صريحة لجميع الخدمات، بما في ذلك مجال مخصص لخدمة Blob:

# All service endpoints
DefaultEndpointsProtocol=https;
BlobEndpoint=http://www.mydomain.com;
FileEndpoint=https://myaccount.file.core.windows.net;
QueueEndpoint=https://myaccount.queue.core.windows.net;
TableEndpoint=https://myaccount.table.core.windows.net;
AccountName=storagesample;
AccountKey=<account-key>

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

إذا قمت بتعيين نقطة نهاية تخزين إلى مجال مخصص وحذفت نقطة النهاية هذه من سلسلة اتصال، فلن تتمكن من استخدام سلسلة الاتصال هذه للوصول إلى البيانات الموجودة في تلك الخدمة من التعليمات البرمجية.

لمزيد من المعلومات حول تكوين مجال مخصص لتخزين Azure، راجع تعيين مجال مخصص إلى نقطة نهاية Azure Blob Storage.

هام

يجب أن تكون قيم نقاط تقديم الخدمة في سلاسل الاتصال الخاصة بك عناوين URI ذات بنية صحيحة، بما في ذلك https:// (مستحسن) أو http://.

إنشاء سلسلة اتصال باستخدام لاحقة نقطة نهاية

لإنشاء سلسلة الاتصال لخدمة تخزين في مناطق أو مثيلات ذات لاحقات نقطة نهاية مختلفة، مثل Microsoft Azure التي تشغلها 21Vianet أو Azure Government، استخدم تنسيق سلسلة الاتصال التالي. حدد ما إذا كنت تريد الاتصال بحساب التخزين من خلال HTTPS (مستحسن) أو HTTP، واستبدل myAccountName باسم حساب التخزين، واستبدل myAccountKey بمفتاح الوصول إلى حسابك، واستبدل mySuffix بلاحقة عنوان URI:

DefaultEndpointsProtocol=[http|https];
AccountName=myAccountName;
AccountKey=myAccountKey;
EndpointSuffix=mySuffix;

فيما يلي مثال سلسلة الاتصال لخدمات التخزين في Azure التي تديرها 21Vianet:

DefaultEndpointsProtocol=https;
AccountName=storagesample;
AccountKey=<account-key>;
EndpointSuffix=core.chinacloudapi.cn;

تفويض الوصول باستخدام المفتاح المشترك

لمعرفة كيفية تخويل الوصول إلى Azure Storage باستخدام مفتاح الحساب أو باستخدام سلسلة الاتصال، راجع إحدى المقالات التالية:

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