ما الجديد في API7 Enterprise: IAM للتحكم الدقيق في الوصول

Zhihuang Lin

Zhihuang Lin

July 11, 2024

Products

مقدمة

قدمت الإصدارات السابقة من API7 Enterprise آلية إدارة بسيطة وسهلة الاستخدام وشاملة لـ RBAC (التحكم في الوصول القائم على الأدوار). هذه الآلية ضمنت أمان النظام مع منح المستخدمين مرونة في تكوين أذونات الأدوار. مع زيادة أنواع الموارد وميزات API7 Enterprise، بدأت إدارة RBAC التقليدية تظهر قيودها في التحكم الدقيق في الأذونات. علاوة على ذلك، تسعى المزيد من الشركات إلى استراتيجيات إدارة أذونات أكثر دقة لتلبية احتياجات أعمالها المعقدة والمتغيرة.

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

ما هو نموذج IAM Policy؟

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

IAM, Identity and Access Management

مزايا IAM مقارنة بـ RBAC:

  • التحكم الدقيق: يمكن لـ IAM التحكم في الأذونات على مستوى الموارد وحتى لسمات أو عمليات محددة داخل الموارد، بينما تعين RBAC الأذونات بناءً على الأدوار، مع دقة أقل.

  • المرونة: يسمح IAM للمسؤولين بإدارة السياسات والأذونات مباشرة دون الحاجة إلى إنشاء وإدارة العديد من الأدوار لتخصيص الأذونات بشكل غير مباشر، مما يجعل التكوين أكثر سهولة ومرونة.

  • القدرة على التوسع: مع زيادة وظائف النظام وتنوع أنواع الموارد، يمكن لـ IAM التكيف بسهولة أكبر مع التغييرات من خلال إضافة سياسات جديدة لتلبية احتياجات الأذونات الجديدة، بينما قد يتطلب RBAC تعديل أو إضافة العديد من الأدوار للتكيف مع التغييرات.

كيفية استخدام سياسات IAM في API7 Enterprise؟

1. إنشاء سياسات الأذونات

بعد تسجيل الدخول إلى API7 Enterprise، انقر على زر "Organization" في أعلى اليمين، واختر عنصر القائمة "Permission Policies" من القائمة المنسدلة.

Permission Policies

في قسم Permission Policies، يمكنك إدارة جميع السياسات. بشكل افتراضي، هناك سياسة super-admin-permission-policy للمسؤول الأولي.

سياسة أذونات المسؤول الأعلى المدمجة

انقر على زر "Add Policy" في أعلى اليمين للدخول إلى نموذج إنشاء السياسة. هنا، تحتاج إلى ملء المعلومات الأساسية للسياسات وتكوين الأذونات في محرر السياسة، المعروف باسم Statements.

Edit Statements

تعتبر Statements المكونات الأساسية للسياسة، وتتكون من عبارة واحدة أو أكثر. تحدد كل عبارة قاعدة وصول محددة.

  • Effect: يحدد تأثير العبارة، عادة ما يكون "Allow" أو "Deny". يمكن أن تتأثر الموارد بعدة سياسات، ويحدد نظام IAM أذونات الوصول النهائية بناءً على ترتيب ومنطق العبارات.

  • Action: يحدد سلسلة من الإجراءات المسموح بها أو المرفوضة، مثل "gateway:DeleteGatewayGroup" أو "iam:GetUser". يجب استخدام هذه الإجراءات مع الموارد (Resource) لتكون ذات معنى.

  • Resource: يحدد الموارد التي تنطبق عليها العبارة، مثل مجموعة بوابة محددة أو خدمة. يمكن استخدام الأحرف العامة (مثل <.*>) لمطابقة عدة موارد.

  • Condition (اختياري): يحدد الشروط التي تكون العبارة فعالة تحتها. على سبيل المثال،

    "conditions": {
          "gateway_group_label": {
            "type": "MatchLabel",
            "options": {
              "key": "type",
              "operator": "exact_match",
              "value": "production"
            }
          }
        },
    

    يمثل هذا أن العمليات المحددة في العبارة مسموح بها فقط عندما تكون تسمية مجموعة البوابة مضبوطة على "production".

على سبيل المثال، لإنشاء سياسة تقيد المستخدم لتحرير جميع الخدمات المنشورة ضمن مجموعة بوابات محددة، يمكن كتابتها كما يلي:

{
  "statement": [
    {
      "resources": [
        "arn:api7:gateway:gatewaygroup/{gateway group id}"
      ],
      "actions": [
        "<.*>Get<.*>" // السماح بتنفيذ جميع العمليات التي تبدأ بـ 'Get'، والتي تمثل إذن 'قراءة' لمجموعة البوابة المحددة
      ],
      "effect": "allow" // السماح بتنفيذ العمليات المحددة أعلاه
      // ملاحظة: تسمح هذه العبارة السياسية بتنفيذ جميع عمليات 'Get' على مجموعة البوابة المحددة، مثل استرداد معلومات مجموعة البوابة، وسرد الخدمات ضمن مجموعة البوابة، إلخ.
    },
    {
      "resources": [
        "arn:api7:gateway:gatewaygroup/{gateway group id}/publishedservice/<.*>",
      ],
      "actions": [
        "<.*>" // السماح بتنفيذ جميع العمليات
      ],
      "effect": "allow" // السماح بتنفيذ العمليات المحددة أعلاه
      // تسمح هذه العبارة السياسية بتنفيذ جميع العمليات (إنشاء، قراءة، تحديث، حذف، إلخ) على الخدمات المنشورة ضمن مجموعة البوابة المحددة.
    }
  ]
}

في هذا المثال، قمنا بتعريف مجموعتين من الموارد (مجموعة البوابة والخدمات المنشورة ضمن مجموعة البوابة) وتعيين الإجراءات المسموح بها لكل منهما. يمكن العثور على بعض أمثلة تكوين السياسات الشائعة في الوثيقة Permission Policy Examples. للقيم المتاحة للموارد والإجراءات والواجهات البرمجية المقابلة، راجع الوثيقة Permission Policy Actions and Resources.

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

2. إنشاء الأدوار وإرفاق السياسات

بعد تسجيل الدخول إلى API7 Enterprise، انقر على زر "Organization" في أعلى اليمين، واختر عنصر القائمة "Roles" من القائمة المنسدلة.

Roles

في قسم Roles، يمكنك إدارة جميع الأدوار. بشكل افتراضي، هناك دور Super Admin كدور المسؤول المدمج.

دور المسؤول الأعلى المدمج

انقر على زر "Add Custom Role" في أعلى اليمين للدخول إلى نموذج إنشاء الدور. هنا، تحتاج إلى ملء المعلومات الأساسية للدور. بعد الإنشاء، سندخل صفحة تفاصيل الدور.

إضافة دور مخصص

في صفحة تفاصيل الدور، انقر على زر "Attach Policy" لتعيين سياسات الأذونات التي تم إنشاؤها مسبقًا للدور.

إرفاق السياسات بالأدوار

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

3. تعيين الأدوار للمستخدمين

بعد تسجيل الدخول إلى API7 Enterprise، انقر على زر "Organization" في أعلى اليمين، واختر عنصر القائمة "Users" من القائمة المنسدلة.

المستخدمين

في قسم Users، يمكنك إدارة جميع المستخدمين. بشكل افتراضي، هناك دور admin كدور المسؤول المدمج.

قائمة المستخدمين

في العمود الأيمن لقائمة الأدوار، انقر على "Update Roles" لفتح درج النموذج لتحديث دور مستخدم محدد.

تحديث الأدوار للمستخدمين

يمكن أن يكون للمستخدم عدة أدوار. عندما يتم منح المستخدم عدة أدوار، يتم دمج الأذونات. أي أن المستخدم لديه مجموع أذونات جميع الأدوار.

تعيين الأدوار المبسط

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

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

الخلاصة

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

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

Tags: