تعيين الحقوق على نطاق واسع لمستخدمي المجال من مجموعة تفرعات مختلفة

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

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

وبعد فترة أخذت المواصفات الفنية الشكل التالي:

  • 2 غابة: غابة PSI، غابة TG.

    تعيين الحقوق على نطاق واسع لمستخدمي المجال من مجموعة تفرعات مختلفة

  • تحتوي كل غابة على 3 مجالات: PSI (ZG، PSI، FB)؛ TG (TG، HU، KC).
  • هناك علاقة ثقة بين الغابات؛ يرى Synology كافة مجموعات الأمان في كافة الغابات.
  • يجب أن تحتوي المشاركات والمجلدات/المجلدات الفرعية على حسابات مسؤول مجال FB مع حقوق FullControl
  • يجب تنظيم أسماء المجلدات. قامت الإدارة بتنسيق معرفات المشروع؛ وقررت ربط اسم مجموعات الأمان بمعرفات المشروع.
  • يجب أن تحتوي مجلدات المشروع في مشاركات النظام على بنية معدة مسبقًا في ملف .xlsx، مع امتيازات الوصول المناسبة (R/RW/NA، حيث NA - لا يوجد وصول)

    تعيين الحقوق على نطاق واسع لمستخدمي المجال من مجموعة تفرعات مختلفة

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

ملاحظات على المواصفات الفنية

  • لا يتم تضمين إنشاء علاقات الثقة في نطاق المواصفات الفنية
  • يحتوي معرف المشروع على أرقام وأحرف لاتينية
  • أدوار مستخدم المشروع لجميع المجالات لها أسماء قياسية
  • يتم إعداد ملف .xlsx بالمجلدات وحقوق الوصول (مصفوفة الوصول) قبل بدء المشروع بأكمله
  • عند تنفيذ المشاريع، من الممكن إنشاء مجموعات مستخدمين في المجالات المقابلة
  • يتم تحقيق الأتمتة باستخدام أدوات إدارة MS Windows القياسية

تنفيذ المواصفات الفنية

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

  • نقوم بتسجيل المجموعات باسم مشتق من معرف المشروع (على سبيل المثال KC40587) والأدوار المقابلة المحددة في مصفوفة الوصول: KC40587-EN- للمهندس؛ KC40587-PM – لمدير المنتج، وما إلى ذلك.
  • نحصل على معرفات الأمان للمجموعات التي تم إنشاؤها
  • تسجيل مجلد المشروع ومجموعة الدلائل المقابلة (تعتمد قائمة المجلدات الفرعية على المشاركة التي تم إنشاؤها وتحديدها في مصفوفة الوصول)
  • تعيين الحقوق للمجموعات للأدلة الفرعية الجديدة للمشروع وفقًا لمصفوفة الوصول.

الصعوبات التي تمت مواجهتها في المرحلة الأولى:

  • سوء فهم طريقة تحديد مصفوفة الوصول في البرنامج النصي (يتم الآن تنفيذ مصفوفة متعددة الأبعاد، ولكن يتم البحث عن المسار لملئها بناءً على محتويات مصفوفة ملف/وصول .xlsx)

    تعيين الحقوق على نطاق واسع لمستخدمي المجال من مجموعة تفرعات مختلفة

  • استحالة تعيين حقوق الوصول في مشاركات الشركات الصغيرة والمتوسطة على محركات الأقراص Synology باستخدام PoSH (https://social.technet.microsoft.com/Forums/en-US/3f1a949f-0919-46f1-9e10-89256cf07e65/error-using-setacl-on- nas -share?forum=winserverpowershell)، مما أدى إلى ضياع الكثير من الوقت وكان لا بد من تكييف كل شيء مع البرامج النصية باستخدام الأداة المساعدة لتحرير حقوق الوصول icacls، الأمر الذي يتطلب إنشاء مستودع وسيط للملفات النصية وملفات cmd.

في الوضع الحالي، يتم التحكم في تنفيذ ملفات cmd يدويًا، اعتمادًا على الحاجة إلى تسجيل مجلد للمشروع.

تعيين الحقوق على نطاق واسع لمستخدمي المجال من مجموعة تفرعات مختلفة

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

تعيين الحقوق على نطاق واسع لمستخدمي المجال من مجموعة تفرعات مختلفة

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

تعيين الحقوق على نطاق واسع لمستخدمي المجال من مجموعة تفرعات مختلفة

وبالتالي، عند تسجيل المشروع 80XXX في مجال TG، يتم تنفيذ البرنامج النصي:

1. إنشاء الوحدة التنظيمية المقابلة (الأشكال البيضاوية الأفقية الحمراء) في هذا المجال والمجالات المشتركة، أي تلك المجالات التي يجب أن يتمتع موظفوها بإمكانية الوصول إلى هذا المورد.

2. ملء الوحدة التنظيمية بمجموعات بأسماء مثل -، أين:

  • مجال SRC_ - مجال مشترك سيتمكن موظفوه من الوصول إلى موارد مجال DST
  • DST_domain – المجال الذي يجب توفير الوصول إلى موارده، أي أنه بدأ كل شيء من أجله
  • - رقم المشروع
  • ROLES – أسماء الأدوار المدرجة في مصفوفة الوصول.

3. قراءة مجموعة معرفات SID لجميع المجموعات من جميع المجالات المعنية وحفظها لنقل البيانات لاحقًا إلى ملف يحدد الحقوق لمجلد فرعي محدد للمشروع

4. إنشاء ملفات المصدر (المعلمة / الاستعادة) مع مجموعة من الحقوق للاستخدام بواسطة الأداة المساعدة icacKC في وضع الملف القابل للتنفيذ "icacKC "as-nasNNKCProjects" /restore C:TempKCKC40XXKC40XX.txt"

5. إنشاء ملف CMD يجمع كل icacls التي تم إطلاقها لجميع مجلدات المشروع

تعيين الحقوق على نطاق واسع لمستخدمي المجال من مجموعة تفرعات مختلفة

كما ذكرنا سابقًا، يتم تشغيل الملف القابل للتنفيذ يدويًا ويتم تقييم نتائج التنفيذ يدويًا أيضًا.

الصعوبات التي كان علينا مواجهتها في النهاية:

  • إذا كان مجلد المشروع ممتلئًا بالفعل بعدد كبير من الملفات، فإن تشغيل أمر icacls على وحدات التخزين الموجودة يمكن أن يستغرق وقتًا طويلاً، وفي بعض الحالات يؤدي إلى الفشل (على سبيل المثال، عندما تكون هناك مسارات ملفات طويلة)؛
  • بالإضافة إلى المعلمة /restore، كان علينا إضافة أسطر مع المعلمة /reset في حالة عدم إنشاء المجلدات، ولكن تم نقلها من المجلدات الموجودة مسبقًا، مع تعطيل حقوق الميراث من الجذر؛
  • كان لا بد من تنفيذ جزء من البرنامج النصي لإنشاء المجموعات على وحدة تحكم عشوائية لكل مجموعة تفرعات، وتتعلق المشكلة بالحسابات الإدارية لكل شجرة.

الاستنتاج العام: من الغريب جدًا عدم وجود أدوات مساعدة ذات وظائف مماثلة في السوق حتى الآن. يبدو من الممكن تنفيذ وظائف مماثلة بناءً على بوابة Sharepoint.
ومن غير المفهوم أيضًا أنه لا يمكن استخدام أدوات PoSH المساعدة لتعيين حقوق المجلدات على أجهزة علم اللغات.

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

المصدر: www.habr.com

إضافة تعليق