تكوين سلاسل اتصال مساحة تخزين Azure
تتضمن سلسلة الاتصال معلومات التخويل المطلوبة لتطبيقك للوصول إلى البيانات في حساب Azure Storage في وقت التشغيل باستخدام تخويل المفتاح المشترك. يمكنك تكوين سلاسل الاتصال من أجل:
- الاتصال بمحاكي تخزين Azurite.
- الوصول إلى حساب تخزين في Azure.
- الوصول إلى الموارد المحددة في Azure عبر توقيع وصول مشترك (SAS).
لمعرفة كيفية عرض مفاتيح الوصول إلى حسابك ونسخ سلسلة اتصال، راجع إدارة مفاتيح الوصول إلى حساب التخزين.
هام
للحصول على الأمان الأمثل، توصي Microsoft باستخدام معرف Microsoft Entra مع الهويات المدارة لتخويل الطلبات مقابل بيانات كائن ثنائي كبير الحجم وقائمة الانتظار والجدول، كلما أمكن ذلك. يوفر التخويل باستخدام معرف Microsoft Entra والهويات المدارة أمانا فائقا وسهولة استخدام عبر تخويل المفتاح المشترك. لمعرفة المزيد حول الهويات المدارة، راجع ما هي الهويات المدارة لموارد Azure. للحصول على مثال حول كيفية تمكين هوية مدارة واستخدامها لتطبيق .NET، راجع مصادقة التطبيقات المستضافة من Azure إلى موارد Azure باستخدام .NET.
بالنسبة للموارد المستضافة خارج Azure، مثل التطبيقات المحلية، يمكنك استخدام الهويات المدارة من خلال Azure Arc. على سبيل المثال، يمكن للتطبيقات التي تعمل على خوادم Azure Arc الممكنة استخدام الهويات المدارة للاتصال بخدمات Azure. لمعرفة المزيد، راجع المصادقة مقابل موارد Azure باستخدام خوادم Azure Arc الممكنة.
بالنسبة للسيناريوهات التي يتم فيها استخدام توقيعات الوصول المشترك (SAS)، توصي Microsoft باستخدام SAS لتفويض المستخدم. يتم تأمين SAS لتفويض المستخدم باستخدام بيانات اعتماد Microsoft Entra بدلا من مفتاح الحساب. للتعرف على توقيعات الوصول المشترك، راجع منح وصول محدود إلى البيانات باستخدام توقيعات الوصول المشترك. للحصول على مثال حول كيفية إنشاء واستخدام توقيعات الوصول المشترك لتفويض مستخدم مع .NET، راجع إنشاء توقيعات الوصول المشترك لتفويض مستخدم لكائن ثنائي كبير الحجم باستخدام .NET.
حماية مفاتيح الوصول خاصتك
توفر مفاتيح الوصول إلى حساب التخزين الوصول الكامل إلى بيانات حساب التخزين والقدرة على إنشاء رموز SAS المميزة. كن حذرًا دائمًا لحماية مفاتيح الوصول خاصتك. استخدم Azure Key Vault لإدارة المفاتيح وتدويرها بأمان. يمنح الوصول إلى المفتاح المشترك المستخدم حق الوصول الكامل إلى بيانات حساب التخزين. يجب أن يكون الوصول إلى المفاتيح المشتركة محدودا ومراقبا بعناية. استخدم رموز SAS لتفويض المستخدم مع نطاق وصول محدود في السيناريوهات التي لا يمكن فيها استخدام التخويل المستند إلى معرف Microsoft Entra. تجنب مفاتيح الوصول ذات الترميز الثابت أو حفظها في أي مكان في نص عادي يمكن للآخرين الوصول إليه. قم بتدوير المفاتيح إذا كنت تعتقد أنها قد تم اختراقها.
هام
لمنع المستخدمين من الوصول إلى البيانات في حساب التخزين الخاص بك باستخدام المفتاح المشترك، يمكنك عدم السماح بتخويل المفتاح المشترك لحساب التخزين. يوصى بالوصول الدقيق إلى البيانات بأقل الامتيازات الضرورية كأفضل ممارسة أمنية. يجب استخدام التخويل المستند إلى معرف Microsoft Entra باستخدام الهويات المدارة للسيناريوهات التي تدعم OAuth. يجب استخدام Kerberos أو SMTP لملفات Azure عبر SMB. بالنسبة لملفات Azure عبر REST، يمكن استخدام رموز SAS المميزة. يجب تعطيل الوصول إلى المفتاح المشترك إذا لم يكن مطلوبا لمنع استخدامه غير المقصود. لمزيد من المعلومات، انظر منع تخويل "مفتاح مشترك" لحساب تخزين Azure.
لحماية حساب تخزين Azure باستخدام نهج الوصول المشروط من Microsoft Entra، يجب عدم السماح بتخويل المفتاح المشترك لحساب التخزين.
إذا قمت بتعطيل الوصول إلى المفتاح المشترك وكنت ترى تخويل المفتاح المشترك تم الإبلاغ عنه في سجلات التشخيص، فهذا يشير إلى أنه يتم استخدام الوصول الموثوق به للوصول إلى التخزين. لمزيد من التفاصيل، راجع الوصول الموثوق به للموارد المسجلة في مستأجر Microsoft Entra.
تخزين سلسلة اتصال
يحتاج تطبيقك إلى الوصول إلى سلسلة الاتصال في وقت التشغيل لتخويل الطلبات المقدمة إلى Azure Storage. لديك العديد من الخيارات لتخزين مفاتيح الوصول إلى حسابك أو سلسلة الاتصال:
- يمكنك تخزين مفاتيح حسابك بأمان في Azure Key Vault. لمزيد من المعلومات، راجع حول مفاتيح حساب التخزين المدارة في Azure Key Vault.
- يمكنك تخزين سلسلة الاتصال في متغير بيئة.
- يمكن للتطبيق تخزين سلسلة الاتصال في ملف app.config أو web.config. أضف سلسلة الاتصال إلى قسم AppSettings في هذه الملفات.
تحذير
يمثل تخزين مفاتيح الوصول إلى حسابك أو سلسلة الاتصال في نص واضح خطرا أمنيا ولا يوصى به. قم بتخزين مفاتيح حسابك بتنسيق مشفر، أو قم بترحيل تطبيقاتك لاستخدام تخويل 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&sr=b&si=tutorial-policy-635959936145100803&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&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
إنشاء سلسلة اتصال لنقطة نهاية تخزين صريحة
يمكنك تحديد نقاط نهاية خدمة صريحة في سلسلة الاتصال بدلاً من استخدام نقاط النهاية الافتراضية. لإنشاء سلسلة اتصال تحدد نقطة نهاية صريحة، حدد نقطة تقديم الخدمة الكاملة لكل خدمة، بما في ذلك مواصفات البروتوكول (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 باستخدام مفتاح الحساب أو باستخدام سلسلة الاتصال، راجع إحدى المقالات التالية:
- تخويل الوصول والاتصال ب Blob Storage باستخدام .NET
- تخويل الوصول والاتصال ب Blob Storage باستخدام Java
- تخويل الوصول والاتصال ب Blob Storage باستخدام JavaScript
- تخويل الوصول والاتصال ب Blob Storage باستخدام Python