إنشاء تفويض مستخدم توقيع الوصول المشترك لحاوية أو نقطة باستخدام Azure CLI
يتيح لك توقيع الوصول المشترك (SAS) منح وصول محدود إلى الحاويات والكائنات الثنائية كبيرة الحجم في حساب التخزين الخاص بك. عند إنشاء توقيع وصول مشترك، فإنك تحدد قيوده، بما في ذلك موارد تخزين Azure التي يُسمح للعميل بالوصول إليها، والأذونات المتوفرة لديه على هذه الموارد، ومدة صلاحية توقيع الوصول المشترك.
يتم توقيع كل توقيع وصول مشترك بمفتاح. يمكنك التوقيع على توقيع وصول مشترك بإحدى طريقتين:
- باستخدام مفتاح تم إنشاؤه باستخدام بيانات اعتماد Azure Active Directory (Azure AD). توقيع الوصول المشترك الذي تم توقيعه باستخدام بيانات اعتماد Azure AD هو توقيع الوصول المشترك تفويض مستخدم.
- باستخدام مفتاح حساب التخزين. يتم توقيع كل من توقيع الوصول المشترك للخدمة وحساب توقيع الوصول المشترك باستخدام مفتاح حساب التخزين.
يوفر توقيع الوصول المشترك لتفويض المستخدم أمانا فائقا لتوقيع الوصول المشترك الموقع باستخدام مفتاح حساب التخزين. توصي Microsoft باستخدام توقيع الوصول المشترك لتفويض المستخدم عندما يكون ذلك ممكنا. لمعرفة المزيد حول مفاتيح توقيع الوصول المشترك، راجع منح وصول محدود إلى البيانات باستخدام توقيعات الوصول المشتركة (SAS).
توضح هذه المقالة كيفية استخدام بيانات اعتماد Azure Active Directory (Azure AD) لإنشاء توقيع وصول مشترك لتفويض مستخدم لحاوية أو كائن ثنائي كبير الحجم مع Azure CLI.
حول توقيع الوصول المشترك لتفويض المستخدم
قد يتم تأمين رمز توقيع الوصول المشترك المميز للوصول إلى حاوية أو كائن ثنائي كبير الحجم باستخدام بيانات اعتماد Azure AD أو مفتاح حساب. يطلق على توقيع الوصول المشترك المؤمن ببيانات اعتماد Azure AD اسم توقيع الوصول المشترك لتفويض المستخدم، لأن الرمز المميز OAuth 2.0 المستخدم لتوقيع الوصول المشترك مطلوب نيابة عن المستخدم.
توصي Microsoft باستخدام بيانات اعتماد Azure AD كلما أمكن كأفضل ممارسة أمان، بدلا من استخدام مفتاح الحساب، الذي يمكن اختراقه بسهولة أكبر. عندما يتطلب تصميم التطبيق تواقيع وصول مشتركة، استخدم بيانات اعتماد Azure AD لإنشاء توقيع الوصول المشترك لتفويض مستخدم للحصول على أمان أفضل. لمزيد من المعلومات حول توقيع الوصول المشترك تفويض المستخدم، راجع إنشاء توقيع وصول مشترك تفويض مستخدم.
تنبيه
يمكن لأي عميل يمتلك توقيع وصول مشترك صالح الوصول إلى البيانات في حساب التخزين خاصتك كما هو مسموح به من توقيع الوصول المشترك. من المهم حماية توقيع الوصول المشترك من الاستخدام الضار أو غير المقصود. استخدم التقدير في توزيع توقيع الوصول المشترك، وضع خطة لإلغاء توقيع الوصول المشترك المُخترق.
للحصول على مزيد من المعلومات عن توقيعات الوصول المشارك، راجع منح الوصول المحدود إلى موارد Azure Storage باستخدام توقيعات الوصول المشاركة (SAS).
تثبيت أحدث إصدار من Azure CLI
لاستخدام Azure CLI لتأمين توقيع الوصول المشترك باستخدام بيانات اعتماد Azure AD، تأكد أولا من تثبيت أحدث إصدار من Azure CLI. لمزيد من المعلومات عن تنزيل Azure CLI، راجع تنزيل Azure CLI.
لإنشاء توقيع الوصول المشترك لتفويض مستخدم باستخدام Azure CLI، تأكد من تثبيت الإصدار 2.0.78 أو إصدار أحدث. للتحقق من الإصدار المثبت لديك، استخدم الأمر az --version.
تسجيل الدخول باستخدام بيانات اعتماد Azure AD
قم بتسجيل الدخول إلى Azure CLI باستخدام بيانات اعتماد Azure AD. راجع تسجيل الدخول باستخدام Azure CLI للحصول على مزيدٍ من المعلومات.
تعيين الأذونات باستخدام Azure RBAC
لإنشاء تفويض مستخدم لتوقيع الوصول المشترك من Azure PowerShell، يجب تعيين دور لحساب Azure AD المستخدم لتسجيل الدخول إلى Azure CLI يتضمن الإجراء Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey. هذا الإذن يمكن حساب Azure AD هذا من طلب مفتاح تفويض المستخدم. يتم استخدام مفتاح تفويض المستخدم لتوقيع الوصول المشترك لتفويض المستخدم. الدور الذي يوفر الإجراء Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey يجب تعيينه على مستوى حساب التخزين أو مجموعة الموارد أو الاشتراك.
إذا لم يكن لديك أذونات كافية لتعيين أدوار Azure إلى مبدأ أمان Azure AD، فقد تحتاج إلى مطالبة مالك الحساب أو المسؤول بتعيين الأذونات اللازمة.
يعين المثال التالي دور المساهم في بيانات نقطة التخزين، والذي يتضمن الإجراء Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey. يتم تحديد نطاق الدور على مستوى حساب التخزين.
تذكر استبدال قيم العناصر النائبة بين أقواس الزاوية بالقيم الخاصة بك:
az role assignment create \
--role "Storage Blob Data Contributor" \
--assignee <email> \
--scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>"
لمزيد من المعلومات حول الأدوار المضمنة التي تتضمن الإجراء Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey، راجع أدوار Azure المضمنة.
استخدام بيانات اعتماد Azure AD لتأمين توقيع الوصول المشترك
عند إنشاء توقيع الوصول المشترك تفويض مستخدم باستخدام Azure CLI، يتم إنشاء مفتاح توقيع الوصول المشترك لتفويض المستخدم لك ضمنيا. يتم أيضا استخدام وقت البدء ووقت انتهاء الصلاحية اللذين تحددهما لتوقيع الوصول المشترك كوقت البدء ووقت انتهاء الصلاحية لمفتاح تفويض المستخدم.
نظرا لأن الحد الأقصى للفاصل الزمني الذي يكون مفتاح تفويض المستخدم صالحا خلاله هو 7 أيام من تاريخ البدء، يجب عليك تحديد وقت انتهاء صلاحية توقيع الوصول المشترك في غضون 7 أيام من وقت البدء. توقيع الوصول المشترك غير صالح بعد انتهاء صلاحية مفتاح تفويض المستخدم، لذلك سيظل توقيع الوصول المشترك الذي يزيد وقت انتهاء صلاحيته عن 7 أيام صالحا لمدة 7 أيام فقط.
عند إنشاء توقيع الوصول المشترك لتفويض المستخدم، يكون --auth-mode login و--as-user parameters مطلوبين. حدد تسجيل الدخول للمعلمة --auth-mode بحيث تتم الموافقة على الطلبات المقدمة إلى Azure Storage باستخدام بيانات اعتماد Azure AD الخاصة بك. حدد المعلمة --as-user للإشارة إلى أن توقيع الوصول المشترك الذي تم إرجاعه يجب أن يكون توقيع وصول مشترك لتفويض مستخدم.
إنشاء تفويض مستخدم توقيع الوصول المشترك لحاوية
لإنشاء تفويض مستخدم توقيع الوصول المشترك لحاوية تحتوي على Azure CLI، استدعِ az storage container generate-sas.
تتضمن الأذونات المدعومة لتفويض مستخدم توقيع الوصول المشترك على حاوية إضافة وإنشاء وحذف وإدراج وقراءة وكتابة. يمكن تحديد الأذونات بشكل فردي أو جماعي. لمزيد من المعلومات حول هذه الأذونات، راجع إنشاء توقيع الوصول المشترك لتفويض مستخدم.
يقوم المثال التالي بإرجاع رمز توقيع الوصول المشترك المميز لتفويض المستخدم لحاوية. تذكَّر استبدال قيم العناصر النائبة بين الأقواس بقيمك:
az storage container generate-sas \
--account-name <storage-account> \
--name <container> \
--permissions acdlrw \
--expiry <date-time> \
--auth-mode login \
--as-user
سيكون رمز توقيع الوصول المشترك المميز لتفويض المستخدم الذي تم إرجاعه مشابها لما يلي:
se=2019-07-27&sp=r&sv=2018-11-09&sr=c&skoid=<skoid>&sktid=<sktid>&skt=2019-07-26T18%3A01%3A22Z&ske=2019-07-27T00%3A00%3A00Z&sks=b&skv=2018-11-09&sig=<signature>
إنشاء توقيع وصول مشترك لتفويض مستخدم لكائن ثنائي كبير الحجم
لإنشاء توقيع الوصول المشترك لتفويض مستخدم لكائن ثنائي كبير الحجم باستخدام Azure CLI، استدعِ az storage blob generate-sas.
تتضمن الأذونات المدعومة لتوقيع الوصول المشترك لتفويض مستخدم على كائن ثنائي كبير الحجم للإضافة والإنشاء والحذف والقراءة والكتابة. يمكن تحديد الأذونات بشكل فردي أو جماعي. لمزيد من المعلومات حول هذه الأذونات، راجع إنشاء توقيع الوصول المشترك لتفويض مستخدم.
يقوم بناء الجملة التالي بإرجاع توقيع الوصول المشترك لتفويض مستخدم لكائن ثنائي كبير الحجم. يحدد المثال المعلمة --full-uri، التي ترجع محدد مواقع الويب لكائن ثنائي كبير الحجم مع إلحاق الرمز المميز توقيع الوصول المشترك. تذكَّر استبدال قيم العناصر النائبة بين الأقواس بقيمك:
az storage blob generate-sas \
--account-name <storage-account> \
--container-name <container> \
--name <blob> \
--permissions acdrw \
--expiry <date-time> \
--auth-mode login \
--as-user \
--full-uri
سيكون محدد مواقع الويب توقيع الوصول المشترك لتفويض المستخدم الذي تم إرجاعه مشابها لما يلي:
https://storagesamples.blob.core.windows.net/sample-container/blob1.txt?se=2019-08-03&sp=rw&sv=2018-11-09&sr=b&skoid=<skoid>&sktid=<sktid>&skt=2019-08-02T2
2%3A32%3A01Z&ske=2019-08-03T00%3A00%3A00Z&sks=b&skv=2018-11-09&sig=<signature>
ملاحظة
لا يدعم توقيع الوصول المشترك لتفويض المستخدم تعريف الأذونات باستخدام نهج الوصول المخزن.
إبطال توقيع الوصول المشترك لتفويض المستخدم
لإلغاء توقيع الوصول المشترك لتفويض مستخدم من Azure CLI، استدعِ الأمر az storage account revoke-delegation-keys. هذا الأمر يلغي كافة مفاتيح تفويض المستخدم المقترنة بحساب التخزين المحدد. يتم إبطال أي توقيعات وصول مشتركة مقترنة بهذه المفاتيح.
تذكر استبدال قيم العناصر النائبة بين أقواس الزاوية بالقيم الخاصة بك:
az storage account revoke-delegation-keys \
--name <storage-account> \
--resource-group <resource-group>
هام
يتم تخزين كل من مفتاح تفويض المستخدم وتعيينات دور Azure مؤقتا بواسطة Azure Storage، لذلك قد يكون هناك تأخير بين بدء عملية الإلغاء وعندما يصبح توقيع الوصول المشترك لتفويض مستخدم الموجود غير صالح.