سرد تعيينات دور Azure باستخدام واجهة برمجة تطبيقات REST

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

إشعار

إذا كانت مؤسستك قد قامت بإسناد وظائف الإدارة إلى موفر خدمة خارجي يستخدم Azure Lighthouse، فلن يتم عرض تعيينات الأدوار المسموح بها من قبل موفر الخدمة هذا هنا. وبالمثل، لن يرى المستخدمون في مستأجر موفر الخدمة تعيينات الأدوار للمستخدمين في مستأجر العميل، بغض النظر عن الدور الذي تم تعيينه لهم.

إشعار

للحصول على معلومات حول عرض البيانات الشخصية أو حذفها، راجع طلبات موضوع بيانات Azure للقانون العام لحماية البيانات (GDPR). لمزيد من المعلومات حول القانون العام لحماية البيانات (GDPR)، راجع قسم القانون العام لحماية البيانات (GDPR) في مركز توثيق Microsoft وقسم القانون العام لحماية البيانات (GDPR) لمدخل Service Trust.

المتطلبات الأساسية

يجب استخدام الإصدار التالي:

  • 2015-07-01 أو أحدث
  • 2022-04-01 أو لاحقا لتضمين الشروط

لمزيد من المعلومات، راجع إصدارات واجهة برمجة التطبيقات من واجهات برمجة تطبيقات AZURE RBAC REST.

سرد تعيينات الدور

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

  1. ابدأ بالطلب التالي:

    GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter={filter}
    
  2. ضمن URI، استبدل {scope} بالنطاق الذي تريد سرد تعيينات الدور له.

    النطاق نوع
    providers/Microsoft.Management/managementGroups/{groupId1} مجموعة الإدارة
    subscriptions/{subscriptionId1} الوصف
    subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1 مجموعة الموارد
    subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1 Resource

    في المثال السابق، microsoft.web هو موفر موارد يشير إلى مثيل App Service. وبالمثل، يمكنك استخدام أي موفري موارد آخرين وتحديد النطاق. لمزيد من المعلومات، راجع موفري موارد Azure وأنواعها وعمليات موفر موارد Azure المدعومة.

  3. استبدل {filter} بالشرط الذي تريد تطبيقه لتصفية قائمة تعيين الدور.

    تصفية ‏‏الوصف
    $filter=atScope() يسرد تعيينات الأدوار للنطاق المحدد فقط، وليس بما في ذلك تعيينات الأدوار في النطاقات الفرعية.
    $filter=assignedTo('{objectId}') يسرد تعيينات الأدوار لمستخدم محدد أو كيان خدمة محدد.
    إذا كان المستخدم عضوا في مجموعة لها تعيين دور، يتم أيضا سرد تعيين الدور هذا. عامل التصفية هذا عابر للمجموعات مما يعني أنه إذا كان المستخدم عضوا في مجموعة وكانت تلك المجموعة عضوا في مجموعة أخرى لها تعيين دور، يتم أيضا إدراج تعيين الدور هذا.
    يقبل عامل التصفية هذا معرف كائن فقط لمستخدم أو كيان خدمة. لا يمكنك تمرير معرف كائن لمجموعة.
    $filter=atScope()+and+assignedTo('{objectId}') يسرد تعيينات الأدوار للمستخدم المحدد أو كيان الخدمة المحدد وفي النطاق المحدد.
    $filter=principalId+eq+'{objectId}' يسرد تعيينات الأدوار لمستخدم أو مجموعة أو كيان خدمة محدد.

يسرد الطلب التالي جميع تعيينات الأدوار للمستخدم المحدد في نطاق الاشتراك:

GET https://management.azure.com/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=atScope()+and+assignedTo('{objectId1}')

يوضح ما يلي مثالا على الإخراج:

{
    "value": [
        {
            "properties": {
                "roleDefinitionId": "/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
                "principalId": "{objectId1}",
                "principalType": "User",
                "scope": "/subscriptions/{subscriptionId1}",
                "condition": null,
                "conditionVersion": null,
                "createdOn": "2022-01-15T21:08:45.4904312Z",
                "updatedOn": "2022-01-15T21:08:45.4904312Z",
                "createdBy": "{createdByObjectId1}",
                "updatedBy": "{updatedByObjectId1}",
                "delegatedManagedIdentityResourceId": null,
                "description": null
            },
            "id": "/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId1}",
            "type": "Microsoft.Authorization/roleAssignments",
            "name": "{roleAssignmentId1}"
        }
    ]
}

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