تخويل الوصول إلى الكائنات ثنائية كبيرة الحجم باستخدام AzCopy وMicrosoft Azure Active Directory

يمكنك تزويد AzCopy ببيانات اعتماد التخويل باستخدام Microsoft Azure Active Directory. بهذه الطريقة ، لن تضطر إلى إلحاق رمز مميز لتوقيع الوصول المشترك (SAS) بكل أمر.

ابدأ بالتحقق من تعيينات الأدوار الخاصة بك. بعد ذلك، اختر نوع مبدأ الأمان الذي تريد تفويضه. يعد كل من هوية المستخدم و الهوية المُدارة و مبدأ الخدمة نوعًا من أنواع مبادئ الأمان.

هوية المستخدم هي أي مستخدم لديه هوية في Microsoft Azure Active Directory. إنه أسهل مبدأ أمان يمكن تفويضه. تعد الهويات المدارة وكيان الخدمة خيارات رائعة إذا كنت تخطط لاستخدام AzCopy داخل برنامج نصي يتم تشغيله دون تدخل المستخدم. تعد الهوية المدارة أكثر ملاءمة للبرامج النصية التي يتم تشغيلها من جهاز Azure الظاهري (VM)، وكيان الخدمة أكثر ملاءمة للبرامج النصية التي يتم تشغيلها محليًّا.

لمزيد من المعلومات بشأن AzCopy، ابدأ مع AzCopy .

التحقق من تعيينات الأدوار

يعتمد مستوى التخويل الذي تحتاجه على ما إذا كنت تخطط لتحميل الملفات أو مجرد تنزيلها.

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

إذا كنت ترغب في تحميل الملفات، فتأكد من أن أحد هذه الأدوار قد تم تعيينه لمدير الأمان الخاص بك:

يمكن تعيين هذه الأدوار لمدير الأمان الخاص بك في أي من هذه النطاقات:

  • حاوية (نظام الملفات)
  • حساب التخزين
  • مجموعة الموارد:
  • الاشتراك

لمعرفة كيفية التحقق من الأدوار وتعيينها ، راجع تعيين دور Azure للوصول إلى بيانات كائن ثنائي كبير الحجم .

ملاحظة

ضع في اعتبارك أن تعيينات أدوار Azure قد تستغرق ما يصل إلى خمس دقائق للنشر.

لست بحاجة إلى تعيين أحد هذه الأدوار لمبدأ الأمان الخاص بك إذا تمت إضافة أساس الأمان إلى قائمة التحكم في الوصول (ACL) للحاوية أو الدليل الهدف. في قائمة التحكم بالوصول (ACL) ، يحتاج مدير الأمان الخاص بك إلى إذن كتابة على الدليل الهدف، وتنفيذ إذن على الحاوية وكل دليل أصلي.

لمعرفة المزيد ، راجع نموذج التحكم في الوصول في Azure Data Lake Storage Gen2 .

تخويل هوية المستخدم

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

azcopy login

إذا تلقيت خطأ، فحاول تضمين معرف المستأجر للمؤسسة التي ينتمي إليها حساب التخزين.

azcopy login --tenant-id=<tenant-id>

استبدل العنصر النائب <tenant-id> بمعرف المستأجر للمؤسسة التي ينتمي إليها حساب التخزين. للعثور على معرّف المستأجر، حدد Microsoft Azure Active Directory > خصائص > معرف الدليل في مدخل Microsoft Azure

يقوم هذا الأمر بإرجاع رمز مصادقة، وعنوان URL لموقع ويب. افتح موقع الويب، وقم بتوفير الرمز، ثم اختر الزر ⁧⁩Next⁧⁩.

Create a container

ستظهر نافذة تسجيل الدخول. في هذه النافذة، سجّل الدخول إلى حساب Azure باستخدام بيانات اعتماد حساب Azure. بعد تسجيل الدخول بنجاح، يمكنك إغلاق نافذة المتصفح، والبدء في استخدام AzCopy.

تخويل هوية مدارة

يعد هذا خيارًا رائعًا إذا كنت تخطط لاستخدام AzCopy داخل برنامج نصي يتم تشغيله دون تدخل المستخدم ، ويتم تشغيل البرنامج النصي من جهاز Azure الظاهري. عند استخدام هذا الخيار، لن تضطر إلى تخزين أي بيانات اعتماد على الجهاز الظاهري.

يمكنك تسجيل الدخول إلى حسابك باستخدام هوية مُدارة على مستوى النظام قمت بتمكينها على الجهاز الظاهري الخاص بك ، أو باستخدام معرف العميل أو معرف الكائن أو معرف المورد للهوية المُدارة التي عيّنها المستخدم والتي قمت بتعيينها إلى حسابك في جهازك الظاهري.

لمعرفة المزيد حول كيفية تمكين هوية مُدارة على مستوى النظام أو إنشاء هوية مُدارة يعينها المستخدم ، راجع تكوين الهويات المُدارة لموارد Azure على جهاز افتراضي باستخدام مدخل Microsoft Azure .

التخويل باستخدام هوية مُدارة على مستوى النظام

أولًا، تأكد من أنك قمت بتمكين هوية مُدارة على مستوى النظام على جهازك الظاهري. اطلع على الهوية المُدارة التي يُعينها النظام.

بعد ذلك، في وحدة تحكم الأوامر، اكتب الأمر التالي، ثم اضغط على المفتاح ENTER.

azcopy login --identity

التفويض باستخدام هوية مدارة معينة من قبل المستخدم

أولًا، تأكد من تمكين هوية مدارة معينة من قبل المستخدم على جهازك الظاهري. راجع الهوية المدارة المعينة من قبل المستخدم.

ثم، في وحدة التحكم في الأوامر، اكتب أيًّا من الأوامر التالية، ثم اضغط على المفتاح ENTER.

azcopy login --identity --identity-client-id "<client-id>"

استبدل <client-id> العنصر النائب بمعرف العميل للهوية المدارة المعينة من قبل المستخدم.

azcopy login --identity --identity-object-id "<object-id>"

استبدل <object-id> العنصر النائب بمعرف الكائن للهوية المدارة المعينة من قبل المستخدم.

azcopy login --identity --identity-resource-id "<resource-id>"

استبدل <resource-id> العنصر النائب بمعرف المورد الخاص بالهوية المدارة المعينة من قبل المستخدم.

تفويض مدير الخدمة

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

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

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

لإنشاء أساس خدمة جديد، راجع كيفية استخدام المدخل من أجل إنشاء أساس خدمة Microsoft Azure Active Directory يمكنه الوصول إلى الموارد.

لمعرفة المزيد حول معرّف التطبيق، يمكنك الاطلاع على كائنات كيان الخدمة في دليل Azure النشط.

تفويض مدير الخدمة باستخدام سر العميل

ابدأ بتعيين AZCOPY_SPA_CLIENT_SECRET متغير البيئة إلى سر العميل لتسجيل تطبيق مدير الخدمة.

ملاحظة

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

يوضح هذا المثال كيف يمكنك القيام بذلك في PowerShell.

$env:AZCOPY_SPA_CLIENT_SECRET="$(Read-Host -prompt "Enter key")"

ملاحظة

فكر في استخدام مطالبة كما هو موضح في هذا المثال. وبهذه الطريقة، لن تظهر كلمة المرور الخاصة بك في محفوظات أوامر وحدة التحكم الخاصة بك.

بعد ذلك، اكتب الأمر التالي، ثم اضغط على المفتاح ENTER.

azcopy login --service-principal  --application-id application-id --tenant-id=tenant-id

استبدل <application-id> العنصر النائب بمعرف التطبيق الخاص بتسجيل تطبيق مدير الخدمة. استبدل العنصر النائب <tenant-id> بمعرف المستأجر للمؤسسة التي ينتمي إليها حساب التخزين. للعثور على معرّف المستأجر، حدد Microsoft Azure Active Directory > خصائص > معرف الدليل في مدخل Microsoft Azure

تخويل مدير الخدمة باستخدام شهادة

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

بالإضافة إلى تحميل شهادتك إلى تسجيل التطبيق، ستحتاج أيضًا إلى حفظ نسخة من الشهادة على الجهاز أو الجهاز الظاهري حيث سيتم تشغيل AzCopy. يجب أن تكون هذه النسخة من الشهادة في . PFX أو . تنسيق PEM ، ويجب أن تتضمن المفتاح الخاص. يجب أن يكون المفتاح الخاص محميًّا بكلمة مرور. إذا كنت تستخدم Windows، وكانت شهادتك موجودة فقط في مخزن شهادات، فتأكد من تصدير هذه الشهادة إلى ملف PFX (بما في ذلك المفتاح الخاص). للحصول على إرشادات، راجع تصدير شهادة PfxCertificate

بعد ذلك، قم بتعيين AZCOPY_SPA_CERT_PASSWORD متغير البيئة إلى كلمة مرور الشهادة.

ملاحظة

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

يوضح هذا المثال كيف يمكنك القيام بهذه المهمة في PowerShell.

$env:AZCOPY_SPA_CERT_PASSWORD="$(Read-Host -prompt "Enter key")"

بعد ذلك، اكتب الأمر التالي، ثم اضغط على المفتاح ENTER.

azcopy login --service-principal --certificate-path <path-to-certificate-file> --tenant-id=<tenant-id>

استبدل <path-to-certificate-file> العنصر النائب بالمسار النسبي أو المؤهل بالكامل إلى ملف الشهادة. يحفظ AzCopy المسار إلى هذه الشهادة ولكنه لا يحفظ نسخة من الشهادة، لذا تأكد من الاحتفاظ بهذه الشهادة في مكانها. استبدل العنصر النائب <tenant-id> بمعرف المستأجر للمؤسسة التي ينتمي إليها حساب التخزين. للعثور على معرّف المستأجر، حدد Microsoft Azure Active Directory > خصائص > معرف الدليل في مدخل Microsoft Azure

ملاحظة

فكر في استخدام مطالبة كما هو موضح في هذا المثال. وبهذه الطريقة، لن تظهر كلمة المرور الخاصة بك في محفوظات أوامر وحدة التحكم الخاصة بك.

تفويض بدون متجر سري

يسترد azcopy login الأمر رمزًا مميزًا لـ OAuth ثم يضع هذا الرمز المميز في مخزن سري على نظامك. إذا لم يكن نظام التشغيل الخاص بك يحتوي على متجر سري مثل حلقة مفاتيح Linux ، azcopy login فلن يعمل الأمر لأنه لا يوجد مكان لوضع الرمز المميز.

بدلًا من استخدام azcopy login الأمر، يمكنك تعيين متغيرات بيئة الذاكرة. ثم قم بتشغيل أي أمر AzCopy. سيقوم AzCopy باسترداد الرمز المميز للمصادقة المطلوب لإكمال العملية. بعد اكتمال العملية ، يختفي الرمز المميز من الذاكرة.

تخويل هوية المستخدم

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

export AZCOPY_AUTO_LOGIN_TYPE=DEVICE

ثم قم بتشغيل أي أمر azcopy (على سبيل المثال: azcopy list https://contoso.blob.core.windows.net).

يقوم هذا الأمر بإرجاع رمز مصادقة، وعنوان URL لموقع ويب. افتح موقع الويب، وقم بتوفير الرمز، ثم اختر الزر ⁧⁩Next⁧⁩.

Create a container

ستظهر نافذة تسجيل الدخول. في هذه النافذة، سجّل الدخول إلى حساب Azure باستخدام بيانات اعتماد حساب Azure. بعد تسجيل الدخول بنجاح، يمكن أن تكتمل العملية.

التخويل باستخدام هوية مُدارة على مستوى النظام

أولًا، تأكد من أنك قمت بتمكين هوية مُدارة على مستوى النظام على جهازك الظاهري. اطلع على الهوية المُدارة التي يُعينها النظام.

اكتب الأمر التالي ثم اضغط المفتاح ENTER.

export AZCOPY_AUTO_LOGIN_TYPE=MSI

ثم قم بتشغيل أي أمر azcopy (على سبيل المثال: azcopy list https://contoso.blob.core.windows.net).

التفويض باستخدام هوية مدارة معينة من قبل المستخدم

أولًا، تأكد من تمكين هوية مدارة معينة من قبل المستخدم على جهازك الظاهري. راجع الهوية المدارة المعينة من قبل المستخدم.

اكتب الأمر التالي ثم اضغط المفتاح ENTER.

export AZCOPY_AUTO_LOGIN_TYPE=MSI

ثم اكتب أي من الأوامر التالية ثم اضغط المفتاح ENTER.

export AZCOPY_MSI_CLIENT_ID=<client-id>

استبدل <client-id> العنصر النائب بمعرف العميل للهوية المدارة المعينة من قبل المستخدم.

export AZCOPY_MSI_OBJECT_ID=<object-id>

استبدل <object-id> العنصر النائب بمعرف الكائن للهوية المدارة المعينة من قبل المستخدم.

export AZCOPY_MSI_RESOURCE_STRING=<resource-id>

استبدل <resource-id> العنصر النائب بمعرف المورد الخاص بالهوية المدارة المعينة من قبل المستخدم.

بعد تعيين هذه المتغيرات، يمكنك تشغيل أي أمر azcopy (على سبيل المثال: azcopy list https://contoso.blob.core.windows.net).

تفويض مدير الخدمة

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

تفويض مدير الخدمة باستخدام سر العميل

اكتب الأمر التالي ثم اضغط المفتاح ENTER.

export AZCOPY_AUTO_LOGIN_TYPE=SPN
export AZCOPY_SPA_APPLICATION_ID=<application-id>
export AZCOPY_SPA_CLIENT_SECRET=<client-secret>
export AZCOPY_TENANT_ID=<tenant-id>

استبدل <application-id> العنصر النائب بمعرف التطبيق الخاص بتسجيل تطبيق مدير الخدمة. استبدل <client-secret> العنصر النائب بسر العميل. استبدل العنصر النائب <tenant-id> بمعرف المستأجر للمؤسسة التي ينتمي إليها حساب التخزين. للعثور على معرّف المستأجر، حدد Microsoft Azure Active Directory > خصائص > معرف الدليل في مدخل Microsoft Azure

ملاحظة

فكر في استخدام مطالبة لجمع كلمة المرور من المستخدم. وبهذه الطريقة، لن تظهر كلمة المرور في سجل الأوامر.

ثم قم بتشغيل أي أمر azcopy (على سبيل المثال: azcopy list https://contoso.blob.core.windows.net).

تخويل مدير الخدمة باستخدام شهادة

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

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

اكتب الأمر التالي ثم اضغط المفتاح ENTER.

export AZCOPY_AUTO_LOGIN_TYPE=SPN
export AZCOPY_SPA_CERT_PATH=<path-to-certificate-file>
export AZCOPY_SPA_CERT_PASSWORD=<certificate-password>
export AZCOPY_TENANT_ID=<tenant-id>

استبدل <path-to-certificate-file> العنصر النائب بالمسار النسبي أو المؤهل بالكامل إلى ملف الشهادة. يحفظ AzCopy المسار إلى هذه الشهادة ولكنه لا يحفظ نسخة من الشهادة، لذا تأكد من الاحتفاظ بهذه الشهادة في مكانها. استبدل <certificate-password> العنصر النائب بكلمة مرور الشهادة. استبدل العنصر النائب <tenant-id> بمعرف المستأجر للمؤسسة التي ينتمي إليها حساب التخزين. للعثور على معرّف المستأجر، حدد Microsoft Azure Active Directory > خصائص > معرف الدليل في مدخل Microsoft Azure

ملاحظة

فكر في استخدام مطالبة لجمع كلمة المرور من المستخدم. وبهذه الطريقة، لن تظهر كلمة المرور في سجل الأوامر.

ثم قم بتشغيل أي أمر azcopy (على سبيل المثال: azcopy list https://contoso.blob.core.windows.net).

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

  • لمزيد من المعلومات، راجع البدء باستخدام AzCopy.

  • إذا كانت لديك أسئلة أو مشكلات أو تعليقات عامة، فأرسلها GitHub الصفحة.