API7 Enterprise 3.2.14.4: حدود الإذن لإدارة الأذونات الدقيقة

Zhihuang Lin

Zhihuang Lin

August 15, 2024

Products

API7 Enterprise v3.2.14.4 تم إصداره رسميًا، حيث تم تقديم حدود الصلاحيات لتلبية الحاجة إلى إدارة أكثر تفصيلاً لصلاحيات المستخدمين في المؤسسات.

ما هي حدود الصلاحيات؟

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

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

مثال

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

{
  "statement": [
    // صلاحيات العرض عبر جميع مجموعات البوابة
    {
      "effect": "allow",
      "resources": [
        "arn:api7:gateway:gatewaygroup/<.*>"
      ],
      "actions": [
        "<.*>Get<.*>"
      ]
    },
    // صلاحيات تشغيل الخدمة عبر جميع مجموعات البوابة
    {
      "effect": "allow",
      "resources": [
        "*"
      ],
      "actions": [
        "arn:api7:gateway:gatewaygroup/<.*>/publishedservice/<.*>"
      ]
    }
  ]
}

في مثل هذه الحالة، تكون صلاحيات توم مقيدة ضمن هذه السياسة. على الرغم من تعيين حدود صلاحيات، إلا أن ذلك لا يعني أن توم لديه هذه الصلاحيات بالفعل. بعد ذلك، نقوم بتعيين دور لتوم يحتوي على سياسة الصلاحيات التالية:

{
  "statement": [
    // صلاحيات العرض عبر جميع مجموعات البوابة
    {
      "effect": "allow",
      "resources": [
        "arn:api7:gateway:gatewaygroup/<.*>"
      ],
      "actions": [
        "<.*>Get<.*>"
      ]
    },
    // صلاحيات تشغيل الخدمة عبر جميع مجموعات البوابة
    {
      "effect": "allow",
      "resources": [
        "arn:api7:gateway:gatewaygroup/<.*>/publishedservice/<.*>"
      ],
      "actions": [
        "<.*>"
      ]
    },
    // صلاحيات التشغيل للإضافات المخصصة
    {
      "effect": "allow",
      "resources": [
        "arn:api7:gateway:gatewaysetting/*"
      ],
      "actions": [
        "gateway:<.*>CustomPlugin<.*>"
      ]
    }
  ]
}

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

كيفية استخدام ميزة حدود الصلاحيات؟

إنشاء سياسات الصلاحيات

يمكن لحدود الصلاحيات إعادة استخدام سياسات الصلاحيات الموجودة في النظام مباشرة. قبل تعيين حدود صلاحيات لمستخدم، تحتاج إلى إنشاء سياسة صلاحيات. انقر على "سياسات الصلاحيات" في قائمة المؤسسة في النظام للدخول إلى صفحة القائمة.

سياسات الصلاحيات

ثم، انقر على "إضافة سياسة صلاحيات" في الزاوية العلوية اليمنى من القائمة للدخول إلى نموذج الإنشاء.

إضافة سياسة

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

تكوين السياسة

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

تعيين حدود الصلاحيات

بعد إنشاء سياسات الصلاحيات، يمكنك تعيين حدود الصلاحيات. انقر على "المستخدمين" في قائمة المؤسسة للدخول إلى صفحة قائمة المستخدمين.

المستخدمين

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

تعيين الحدود

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

تحرير حدود الصلاحيات

عند تكوين الصلاحيات لمستخدم، يمكنك إضافة شرط permission_boundaries إلى صلاحيات تشغيل محددة. على سبيل المثال، في الإجراءات iam:InviteUser (دعوة مستخدم) أو iam:UpdateUserBoundary (تحديث حدود صلاحيات المستخدم)، يمكنك تحسين التحكم في الصلاحيات عن طريق إضافة شرط permission_boundaries.

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

إليك مثال يوضح كيفية تحقيق ذلك:

{
  "statement": [
    {
      "effect": "allow",
      "resources": ["arn:api7:iam:user/<.*>"],
      "actions": [
        "iam:InviteUser",
        "iam:UpdateUserBoundary"
      ],
      "conditions": {
        "permission_boundaries": {
          "type": "AllOfStrings",
          "options": [
            "d3698967-1d28-4e37-b5e7-ef00a93304cc",
            "f863a233-f732-4af0-bb21-3fbe4013be69"
          ]
        }
      }
    }
  ]
}

تعيين حدود الصلاحيات عبر التعيين

بالإضافة إلى التكوين المباشر لحدود الصلاحيات المحددة داخل النظام، يدعم API7 Enterprise أيضًا تعيين حدود الصلاحيات تلقائيًا بناءً على هوية المستخدم وصلاحياته في مزود الهوية (IdP). في صفحة إعدادات المؤسسة، انقر على "إضافة خيار تسجيل دخول". بغض النظر عن المزود المحدد، يتم إضافة مفتاح "تعيين حدود الصلاحيات" في أسفل نموذج التكوين. بمجرد تمكينه، يمكنك تكوين تعيين حدود الصلاحيات.

تعيين حدود الصلاحيات

  • سياسة الصلاحيات: هذه هي موارد سياسة الصلاحيات المحددة في API7 Enterprise، وتستخدم للتحكم في نطاق الوصول والإجراءات للمستخدمين. في تعيين حدود الصلاحيات، يمكننا تعيين التكوينات من IdP الخارجي إلى هذه الحدود لتعيين حدود الصلاحيات المقابلة للمستخدمين عند تسجيل الدخول.

  • سمة حدود الصلاحيات المعينة: المعرف لمعلومات حدود صلاحيات المستخدم التي يتم إرجاعها من IdP، ويستخدم لتحديد بيانات حدود صلاحيات المستخدم في استجابة IdP. على سبيل المثال، تحديد اسم سمة مثل "role" أو "groups" سيسمح للنظام باستخراج قيمة حدود الصلاحيات من استجابة IdP بناءً على اسم السمة هذا.

  • العملية: الطريقة المستخدمة لمطابقة قيمة حدود الصلاحيات من سمة حدود الصلاحيات في IdP. يتم دعم طرق مختلفة، مثل المطابقة التامة، المطابقة الضبابية، المطابقة في المصفوفة، إلخ. إذا كان IdP يعيد مصفوفة من قيم حدود الصلاحيات، يمكننا اختيار "المطابقة التامة في المصفوفة" للعثور على تطابق.

  • قيمة حدود الصلاحيات المعينة: القيمة المحددة التي تمثل حدود صلاحيات المستخدم في IdP.

الخلاصة

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

Tags: