الأمان
الأمان والصلاحيات في Frappe وERPNext 16: كيف تحمي بيانات مؤسستك؟
تحمي Frappe وERPNext 16 البيانات عبر طبقات متتالية: أدوار تحدد ما يستطيع المستخدم فعله في كل نوع مستند، وصلاحيات مستخدم تحصر السجلات التي يراها، ومستويات صلاحية للحقول الحساسة، ثم أدوات لشرح الصلاحيات وتدقيق التغييرات وتقييد الدخول. يشرح هذا الدليل كيف تضبط هذه الطبقات عملياً، وما أضافته إصدارات سبتمبر وأكتوبر 2026 من تحسينات حماية، مع قائمة من 10 إجراءات لأي مؤسسة في اليمن.
الأدوار وملفات الأدوار: من يفعل ماذا
الوحدة الأساسية للصلاحيات في Frappe هي Role. لكل نوع مستند جدول صلاحيات يحدد لكل دور: القراءة والكتابة والإنشاء والحذف والاعتماد Submit والإلغاء والتعديل بعد الإلغاء Amend والطباعة والتصدير والمشاركة.
- Role Profile: مجموعة أدوار جاهزة مثل أمين صندوق أو محاسب فرع تُسند للمستخدم دفعة واحدة، فلا تختلف صلاحيات موظفين في الوظيفة نفسها.
- User Role Profile وRole Replication في الإصدار 16: إسناد أكثر من ملف أدوار للمستخدم، ونسخ دور قائم كنقطة بداية لدور جديد بدلاً من بنائه من الصفر.
- مبدأ أقل صلاحية: لا تمنح دور System Manager إلا لعدد محدود جداً، ولا تستخدم حساب المدير في العمل اليومي.
مثال: في شركة توزيع بصنعاء، أمين المخزن يحتاج إنشاء Stock Entry واعتماده، لكنه لا يحتاج رؤية قائمة الدخل أو تعديل أسعار البيع.
صلاحيات المستخدم ومستويات الحقول
الدور يجيب عن سؤال ماذا يفعل المستخدم، أما User Permissions فتجيب عن سؤال على أي سجلات. يمكن حصر مستخدم في شركة أو فرع أو مستودع أو مشروع محدد، فتُصفّى كل القوائم والتقارير والروابط تلقائياً.
- If Owner: خيار في جدول الصلاحيات يجعل المستخدم يرى ويعدّل المستندات التي أنشأها فقط، مثل مندوب مبيعات يرى عروض أسعاره دون عروض زملائه.
- Permission Level: لكل حقل مستوى من 0 فما فوق، وتُمنح المستويات الأعلى لأدوار محددة. مثال: حقل الراتب الأساسي أو حد الائتمان للعميل يُرفع إلى مستوى 1 ولا يراه إلا المدير المالي.
- المشاركة Share: منح مستخدم وصولاً إلى مستند بعينه دون تغيير أدواره، وهي مناسبة للاستثناءات المؤقتة.
فهم الصلاحيات ومراجعتها: Permission Inspector وPermission Log
أكثر سؤال يصل إلى مدير النظام هو لماذا لا يرى فلان هذا المستند. في Frappe 16 أضيف Permission Inspector الذي يشرح لمستخدم ومستند محددين سبب السماح أو المنع: أي دور، وأي صلاحية مستخدم، وأي قاعدة. هذا يغني عن التجريب العشوائي بإضافة أدوار حتى تختفي المشكلة، وهو أسلوب يترك صلاحيات زائدة.
أما Permission Log فيسجّل التغييرات على الصلاحيات نفسها: من أضاف دوراً أو عدّل جدول صلاحيات ومتى. راجعه دورياً، خاصة بعد مغادرة موظف أو انتهاء مشروع مع جهة خارجية.
الدخول ومفاتيح API: كلمات المرور والتحقق الثنائي وتقييد IP
- سياسة كلمات المرور: في System Settings يمكن تفعيل Password Policy وتحديد حد أدنى لقوة كلمة المرور، وتحديد عدد محاولات الدخول المتتالية قبل الإيقاف المؤقت.
- التحقق الثنائي 2FA: يُفعّل من System Settings عبر تطبيق OTP أو البريد أو SMS، ويمكن فرضه على أدوار محددة مثل المحاسبين ومديري النظام.
- Restrict IP: حقل في سجل المستخدم يحصر الدخول في عناوين IP محددة، مثل عنوان مكتب الشركة. في إصدارات سبتمبر وأكتوبر 2026 صار يطبَّق أيضاً على الطلبات المصادَق عليها بمفتاح API ورمز OAuth ورؤوس المصادقة، فلا يمكن استخدام مفتاح مسرّب من خارج العناوين المسموحة.
- نظافة مفاتيح API: أنشئ مستخدماً مستقلاً لكل تكامل، مثل تكامل واتساب أو تطبيق الجوال، بأدوار محدودة لما يحتاجه فقط، ولا تولّد المفاتيح على حساب Administrator. احفظ السر في مدير أسرار لا في رسائل أو ملفات مشتركة، وأعد توليده عند الشك أو عند تغيير المورد. ويساعد API Request Log في الإصدار 16 على مراجعة الطلبات الواردة.
سجل التدقيق والنسخ الاحتياطي
الحماية لا تعني المنع فقط، بل القدرة على معرفة ما حدث والعودة عنه:
- Track Changes: عند تفعيله في نوع المستند يُحفظ سجل Version لكل تعديل يبيّن القيمة القديمة والجديدة ومن غيّرها ومتى. فعّله على العملاء والأصناف وقوائم الأسعار والحسابات.
- المستندات المعتمَدة: الفاتورة أو القيد بعد Submit لا يُعدّل، بل يُلغى ويُعدّل بنسخة جديدة مرتبطة، فيبقى الأثر المحاسبي واضحاً.
- سجلات النشاط: Activity Log لعمليات الدخول والخروج، وAccess Log لعمليات التصدير والطباعة الحساسة.
- النسخ الاحتياطي: نسخ يومية لقاعدة البيانات والملفات مع نسخة خارج السيرفر واختبار الاستعادة دورياً. انتبه إلى أن بعض تكاملات النسخ الخارجي نُقلت من النواة أو أزيلت في الإصدار 16، فتحقق من آلية النسخ بعد الترقية.
تفاصيل تأمين السيرفر نفسه، من الجدار الناري إلى شهادات SSL، في مقال أمان استضافة ERPNext، والمبادئ العامة لأنظمة الأعمال في أمان تطبيقات الأعمال.
تحسينات الحماية في إصدارات سبتمبر وأكتوبر 2026
إلى جانب الميزات، حملت الإصدارات الفرعية بين سبتمبر ومنتصف أكتوبر 2026 تحسينات أمان مباشرة:
- فحوص صلاحيات إضافية في عدد من إجراءات وتقارير ERPNext، فلا يصل المستخدم إلى بيانات عبر إجراء جانبي لا يملك صلاحيته.
- تطبيق Restrict IP على مفاتيح API وOAuth والمصادقة عبر الرؤوس.
- التحقق من روابط إعادة التوجيه، وتشديد التحقق من رفع الملفات ومساراتها.
- حصر ظهور التعليقات في من يملك صلاحية قراءة المستند.
- عدم تقديم صفحات الاختبار /_test في بيئة الإنتاج.
- إعداد never_skip_patches في 22 سبتمبر لإيقاف الترحيل عند فشل ترقيعات حرجة، وقراءة use_ssl للبريد الصادر من إعدادات الموقع في 14 أكتوبر.
الخلاصة: إبقاء النظام محدثاً جزء من الأمان، مع اختبار كل تحديث أولاً. ملخص بقية تغييرات الشهر في تحديثات أكتوبر 2026.
قائمة تحقق من 10 إجراءات لمؤسسة في اليمن
نعمل في يمن فرابي على Frappe وERPNext منذ 2022، وهذه القائمة التي نراجعها مع أي جهة قبل التشغيل:
- حصر دور System Manager في شخصين على الأكثر وإيقاف استخدام حساب Administrator يومياً.
- بناء Role Profile لكل وظيفة وإسناده بدلاً من الأدوار الفردية.
- ضبط User Permissions حسب الشركة والفرع والمستودع.
- رفع مستوى صلاحية الحقول الحساسة كالرواتب وحدود الائتمان والتكلفة.
- تفعيل Password Policy والتحقق الثنائي للأدوار المالية والإدارية.
- تفعيل Restrict IP للحسابات الإدارية ولمستخدمي التكامل ذوي مفاتيح API.
- مستخدم مستقل بأقل صلاحية لكل تكامل، وتدوير المفاتيح عند مغادرة موظف أو تغيير مورد.
- تفعيل Track Changes على البيانات الرئيسية ومراجعة Permission Log شهرياً.
- نسخ احتياطية يومية خارج السيرفر مع اختبار استعادة فعلي، وهو أمر حاسم في اليمن مع انقطاع الكهرباء وتعطل الأجهزة.
- تطبيق التحديثات الأمنية بانتظام بعد تجربتها على نسخة تجريبية.
إن لم يكن لديك فريق يتابع هذه المهام، تتولاها خدمة إدارة السيرفرات لدينا.
أسئلة شائعة
ما الفرق بين Role وUser Permission في ERPNext؟
الدور Role يحدد ما يستطيع المستخدم فعله في نوع مستند، مثل القراءة أو الإنشاء أو الاعتماد. أما User Permission فتحدد السجلات التي يصل إليها، مثل شركة أو فرع أو مستودع معين. تعمل الطبقتان معاً.
كيف أعرف لماذا لا يرى مستخدم مستنداً في ERPNext 16؟
استخدم Permission Inspector في Frappe 16، فهو يشرح لمستخدم ومستند محددين أي دور أو صلاحية مستخدم أو قاعدة سمحت بالوصول أو منعته. هذا أدق من إضافة أدوار تجريبياً.
هل يمكن تقييد استخدام مفتاح API بعنوان IP معين؟
نعم. حقل Restrict IP في سجل المستخدم صار يطبَّق في إصدارات سبتمبر وأكتوبر 2026 على الطلبات المصادَق عليها بمفتاح API ورمز OAuth، لذا أنشئ مستخدماً مستقلاً لكل تكامل وحدد له عناوين IP السيرفر الذي يتصل منه.
هل يدعم ERPNext التحقق الثنائي؟
نعم، يدعم Frappe التحقق الثنائي من System Settings عبر تطبيق OTP أو البريد أو SMS، ويمكن فرضه على أدوار محددة. ننصح بتفعيله على الأقل لمديري النظام والمحاسبين.