استكشاف أخطاء شروط تعيين دور Azure وإصلاحها

مشكلات عامة

العرض - لا يتم فرض الشرط

السبب 1

لدى أساسيات الأمان تعيين دور واحد أو أكثر في نفس النطاق أو أعلى.

الحل 1

تأكد من أن أساسيات الأمان ليس لديها تعيينات أدوار متعددة (بشروط أو بدونها) تمنح الوصول إلى نفس إجراء البيانات الذي يؤدي إلى عدم إنفاذ الشروط. للحصول على معلومات حول منطق التقييم، راجع كيف يحدد Azure RBAC ما إذا كان المستخدم لديه حق الوصول إلى مورد.

السبب 2

يحتوي تعيين دورك على إجراءات متعددة تمنح إذنا ولا تستهدف حالتك جميع الإجراءات. على سبيل المثال، يمكنك إنشاء كائن ثنائي كبير الحجم إذا كان لديك إما /blobs/write /blobs/add/action أو إجراءات بيانات. إذا كان تعيين دورك يحتوي على كل من إجراءات البيانات وكنت تستهدف واحدا منها فقط في حالة، فسيمنح تعيين الدور الإذن لإنشاء الكائنات الثنائية كبيرة الحجم وتجاوز الشرط.

الحل 2

إذا كان تعيين دورك يحتوي على إجراءات متعددة تمنح إذنا، فتأكد من استهداف جميع الإجراءات ذات الصلة.

السبب 3

عند إضافة شرط إلى تعيين دور، قد يستغرق الأمر ما يصل إلى 5 دقائق حتى يتم فرض الشرط. عند إضافة شرط، يتم إعلام موفري الموارد (مثل Microsoft Storage) للتحديث. يقوم موفرو الموارد بإجراء تحديثات على ذاكرات التخزين المؤقت المحلية الخاصة بهم على الفور للتأكد من أن لديهم أحدث تعيينات الأدوار. تكتمل هذه العملية في دقيقة أو دقيقتين، ولكن يمكن أن تستغرق ما يصل إلى 5 دقائق.

الحل 3

انتظر لمدة 5 دقائق واختبر الشرط مرة أخرى.

العرض - الشرط ليس خطأ صالحا عند إضافة شرط

عند محاولة إضافة تعيين دور بشرط، تحصل على خطأ مشابه لما يلي:

The given role assignment condition is invalid.

السبب 1

تم تعيين الخاصية conditionVersion إلى "1.0".

الحل 1

تعيين conditionVersion الخاصية إلى "2.0".

السبب 2

لم يتم تنسيق حالتك بشكل صحيح.

الحل 2

إصلاح أي مشاكل في تنسيق الشرط أو بناء الجملة . بدلا من ذلك، أضف الشرط باستخدام المحرر المرئي في مدخل Microsoft Azure.

المشاكل في المحرر المرئي

العرض - يظهر محرر الشرط عند تحرير شرط

لقد قمت بإنشاء شرط باستخدام قالب موصوف في تفويض إدارة تعيين دور Azure للآخرين الذين يعانون من شروط. عند محاولة تحرير الشرط، سترى محرر الشرط المتقدم.

لقطة شاشة لمحرر الشرط الذي يعرض خيارات لتحرير شرط.

عندما قمت بتحرير الشرط مسبقا، قمت بتحريره باستخدام قالب الشرط.

لقطة شاشة لقوالب الشرط مع تمكين قالب مطابق.

السبب

الشرط لا يتطابق مع نمط القالب.

الحل 1

قم بتحرير الشرط لمطابقة أحد أنماط القالب التالية.

Template الشرط
تقييد الأدوار مثال: تقييد الأدوار
تقييد الأدوار والأنواع الأساسية مثال: تقييد الأدوار والأنواع الأساسية
تقييد الأدوار والكيانات مثال: تقييد الأدوار والمجموعات المحددة
السماح للجميع باستثناء أدوار محددة مثال: السماح لمعظم الأدوار، ولكن لا تسمح للآخرين بتعيين الأدوار

الحل 2

احذف الشرط وأعد إنشائه باستخدام الخطوات الواردة في تفويض إدارة تعيين دور Azure للآخرين الذين يعانون من شروط.

العرض - لا يظهر الأساسي في مصدر السمة

عند محاولة إضافة تعيين دور بشرط، لا يظهر Principal في قائمة مصدر السمة.

لقطة شاشة تعرض الأساسي في قائمة مصدر السمة عند إضافة شرط.

بدلا من ذلك، سترى الرسالة:

To use principal (user) attributes, you must have Microsoft Entra permissions (such as the [Attribute Assignment Administrator](../active-directory/roles/permissions-reference.md#attribute-assignment-administrator) role) and custom security attributes defined in Microsoft Entra ID.

السبب

أنت لا تفي بالمتطلبات الأساسية. لاستخدام السمات الأساسية، يجب أن يكون لديك ما يلي:

  • أذونات Microsoft Entra للمستخدم الذي سجل الدخول لقراءة مجموعة سمات واحدة على الأقل
  • سمات الأمان المخصصة المعرفة في معرف Microsoft Entra

الحل

  1. افتح سمات الأمان المخصصة لمعرف>Microsoft Entra.

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

    لقطة شاشة تعرض صفحة بدء استخدام سمات الأمان المخصصة.

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

    هام

    افتراضيا، ليس لدى المسؤول العام وأدوار المسؤول الأخرى أذونات لقراءة سمات الأمان المخصصة أو تعريفها أو تعيينها.

  3. إذا لم يتم تعريف سمات الأمان المخصصة بعد، فعين دور Attribute Definition مسؤول istrator في نطاق المستأجر وأضف سمات أمان مخصصة. لمزيد من المعلومات، راجع إضافة سمات الأمان المخصصة أو إلغاء تنشيطها في معرف Microsoft Entra.

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

    لقطة شاشة تعرض مجموعات السمات التي يمكن للمستخدم قراءتها.

    يجب أن يظهر الأساسي الآن في قائمة مصدر السمة عند إضافة تعيين دور بشرط.

العرض - لا يظهر الأساسي في مصدر السمة عند استخدام PIM

عند محاولة إضافة تعيين دور بشرط باستخدام Microsoft Entra إدارة الهويات المتميزة (PIM)، لا يظهر Principal في قائمة مصدر السمات.

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

السبب

لا يدعم PIM حاليا استخدام السمة الأساسية في شرط تعيين دور.

رسائل الخطأ في المحرر المرئي

العرض - لم يتم التعرف على الشرط

بعد استخدام محرر التعليمات البرمجية، يمكنك التبديل إلى المحرر المرئي والحصول على رسالة مشابهة للرسالة التالية:

The current expression cannot be recognized. Switch to the code editor to edit the expression or delete the expression and add a new one.

السبب

تم إجراء التحديثات بشرط أن المحرر المرئي غير قادر على التحليل.

الحل

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

العرض - السمة لا تطبق خطأ للشرط المحفوظ مسبقا

عند فتح شرط تم حفظه مسبقا في المحرر المرئي، تتلقى الرسالة التالية:

Attribute does not apply for the selected actions. Select a different set of actions.

السبب

في مايو 2022، تم تغيير الإجراء Read a blob من التنسيق التالي:

!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})

لاستبعاد Blob.List التشغيل الفرعي:

!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})

إذا قمت بإنشاء شرط باستخدام إجراء Read a blob قبل مايو 2022، فقد ترى رسالة الخطأ هذه في المحرر المرئي.

الحل

افتح جزء Select an action ثم أعد تحديد إجراء Read a blob.

العرض - السمة لا تطبق خطأ

عند تحديد إجراء واحد أو أكثر في المحرر المرئي باستخدام تعبير موجود، تحصل على الرسالة التالية ويتم إزالة السمة المحددة مسبقا:

Attribute does not apply for the selected actions. Select a different set of actions.

السبب

لم تعد السمة المحددة مسبقا تنطبق على الإجراءات المحددة حاليا.

الحل 1

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

الحل 2

في قسم Build expression ، حدد سمة تنطبق على الإجراءات المحددة حاليا. للحصول على قائمة بسمات التخزين التي يدعمها كل إجراء تخزين، راجع الإجراءات والسمات الخاصة بشروط تعيين دور Azure لتخزين Azure Blob والإجراءات والسمات لشروط تعيين دور Azure لقوائم انتظار Azure.

العرض - السمة لا تنطبق في تحذير السياق هذا

عند إجراء عمليات تحرير في محرر التعليمات البرمجية ثم التبديل إلى المحرر المرئي، تحصل على الرسالة التالية ويتم إزالة السمة المحددة مسبقا:

Attribute does not apply in this context. Use a different role assignment scope or remove the expression.

السبب

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

الحل

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

العرض - لم يتم التعرف على السمة خطأ

عند إجراء عمليات تحرير في محرر التعليمات البرمجية ثم التبديل إلى المحرر المرئي، تحصل على الرسالة التالية ويتم إزالة السمة المحددة مسبقا:

Attribute is not recognized. Select a valid attribute or remove the expression.

السبب

لم يتم التعرف على السمة المحددة، ربما بسبب خطأ إملائي.

الحل

في محرر التعليمات البرمجية، قم بإصلاح الخطأ المطبعي. أو قم بإزالة التعبير الموجود واستخدم المحرر المرئي لتحديد سمة.

العرض - قيمة السمة خطأ غير صالح

عند إجراء عمليات تحرير في محرر التعليمات البرمجية ثم التبديل إلى المحرر المرئي، تحصل على الرسالة التالية ويتم إزالة السمة المحددة مسبقا:

Attribute value is invalid. Select another attribute or value.

السبب

يحتوي الجانب الأيمن من التعبير على سمة أو قيمة غير صالحة.

الحل

استخدم المحرر المرئي لتحديد سمة أو تحديد قيمة.

العرض - لم يتم تحديد أي إجراءات خطأ

عند إزالة كافة الإجراءات في المحرر المرئي، تحصل على الرسالة التالية:

No actions selected. Select one or more actions to edit expressions.

السبب

هناك تعبير موجود، ولكن لم يتم تحديد أي إجراءات كهدف.

الحل

في قسم إضافة إجراء ، أضف إجراء واحدا أو أكثر يجب أن يستهدفه التعبير.

العرض - لا توجد خيارات متوفرة خطأ

عند محاولة إضافة تعبير، تحصل على الرسالة التالية:

No options available

السبب

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

الحل

في قسم إضافة إجراء ، حدد إجراءات أقل للهدف. لاستهداف الإجراءات التي قمت بإزالتها، أضف شروطا متعددة.

العرض - لم يتم العثور على معرفات تعريف الدور

عند محاولة إضافة تعبير، تحصل على الرسالة التالية:

Cannot find built-in or custom role definitions with IDs: <role IDs>. These IDs were removed. Check that the IDs are valid and try to add again. You can also refresh the page or sign out and sign in again.

السبب

لم يتم العثور على معرف تعريف دور واحد أو أكثر حاولت إضافته لسمة معرف تعريف الدور أو لا يحتوي على تنسيق GUID الصحيح: 00000000-0000-0000-0000-000000000000.

الحل

استخدم محرر الشرط لتحديد الدور. إذا قمت مؤخرا بإضافة الدور المخصص، فقم بتحديث الصفحة أو تسجيل الخروج وتسجيل الدخول مرة أخرى.

العرض - لم يتم العثور على المعرف الأساسي

عند محاولة إضافة تعبير، تحصل على الرسالة التالية:

Cannot find users, groups, or service principals in Azure Active Directory with principal IDs: <principal IDs>. These IDs were removed. Check that the IDs are valid and try to add again. You can also refresh the page or sign out and sign in again.

السبب

لم يتم العثور على معرف أساسي واحد أو أكثر حاولت إضافته لسمة المعرف الأساسي أو لا يحتوي على تنسيق GUID الصحيح: 00000000-0000-0000-0000-000000000000.

الحل

استخدم محرر الشرط لتحديد الأساسي. إذا قمت مؤخرا بإضافة الأساسي، فقم بتحديث الصفحة أو تسجيل الخروج وتسجيل الدخول مرة أخرى.

رسائل الخطأ في Azure PowerShell

العرض - سمة المورد غير صحيحة

عند محاولة إضافة تعيين دور بشرط باستخدام Azure PowerShell، تحصل على خطأ مشابه لما يلي:

New-AzRoleAssignment : Resource attribute
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$> is not valid.

السبب

إذا كانت حالتك تتضمن علامة الدولار ($)، فيجب عليك بادئها بعلامة خلفية (').

الحل

أضف خلفية (') قبل كل علامة دولار. يوضح التالي مثالا. لمزيد من المعلومات حول قواعد علامات الاقتباس في PowerShell، راجع حول قواعد الاقتباس.

$condition = "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<`$key_case_sensitive`$>] StringEquals 'Cascade'))"

العرض - خطأ عند نسخ شرط ولصقه

السبب

إذا كنت تستخدم PowerShell ونسخت شرطا من مستند، فقد يتضمن أحرفا خاصة تسبب الخطأ التالي. تضيف بعض المحررات (مثل Microsoft Word) أحرف تحكم عند تنسيق نص لا يظهر.

The given role assignment condition is invalid.

الحل

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

رسائل الخطأ في Azure CLI

العرض - سمة المورد غير صحيحة

عند محاولة إضافة تعيين دور بشرط باستخدام Azure CLI، تحصل على خطأ مشابه لما يلي:

Resource attribute Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$> is not valid.

السبب

إذا كانت حالتك تتضمن علامة الدولار ($)، فيجب عليك بادئها بشرطة مائلة عكسية (\).

الحل

أضف شرطة مائلة عكسية (\) قبل كل علامة دولار. يوضح التالي مثالا. لمزيد من المعلومات حول قواعد علامات الاقتباس في Bash، راجع علامات الاقتباس المزدوجة.

condition="((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<\$key_case_sensitive\$>] StringEquals 'Cascade'))"

العرض - خطأ وسيطات غير معروف

عند محاولة إضافة تعيين دور بشرط باستخدام Azure CLI، تحصل على خطأ مشابه لما يلي:

az: error: unrecognized arguments: --description {description} --condition {condition} --condition-version 2.0

السبب

من المحتمل أنك تستخدم إصدارا سابقا من Azure CLI لا يدعم معلمات شرط تعيين الدور.

الحل

التحديث إلى أحدث إصدار من Azure CLI (2.18 أو أحدث). لمزيد من المعلومات، اطلع على تثبيت Azure CLI.

العرض - خطأ عند تعيين سلسلة شرط إلى متغير في Bash

عند محاولة تعيين سلسلة شرط إلى متغير في Bash، تحصل على bash: !: event not found الرسالة.

السبب

في Bash، إذا تم تمكين توسيع المحفوظات، قد ترى رسالة bash: !: event not found بسبب علامة التعجب (!).

الحل

تعطيل توسيع المحفوظات باستخدام الأمر set +H. لإعادة تمكين توسيع المحفوظات، استخدم set -H .

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