الرئيسية
» مسؤول الشبكة
»
كيفية حذف حسابات المستخدمين غير النشطة في Matrix Synapse عبر واجهة برمجة تطبيقات الإدارة
كيفية حذف حسابات المستخدمين غير النشطة في Matrix Synapse عبر واجهة برمجة تطبيقات الإدارة
في Matrix Synapse، ثمة فرق جوهري بين حذف حساب غير نشط وتعطيله . لا توفر واجهة برمجة تطبيقات الإدارة الموثقة في Synapse نقطة نهاية عامة للحذف النهائي تُزيل جميع سجلات قاعدة البيانات المرتبطة بالمستخدم. تتمثل آلية العمل الإدارية المعتمدة في تحديد الحساب، ومراجعته، ثم استدعاء نقطة نهاية التعطيل. يمكنك اختياريًا ضبط الإعدادات "erase": trueلإزالة معلومات الملف الشخصي ووضع علامة "محذوف" على المستخدم.
لذا، فإن النتيجة الجيدة لا تعني "اختفاء مُعرّف المستخدم من جميع جداول Synapse". بل تعني أن المستخدم لم يعد قادرًا على المصادقة، وتُزال الرموز والأجهزة النشطة، ويُحذف الحساب من الغرف، وتُزال مُعرّفات الجهات الخارجية، وإذا اقتضت سياستك ذلك، يُحذف الملف الشخصي. أما الوسائط المُحمّلة والرسائل السابقة فهي أمور منفصلة، ولا تُحذف تلقائيًا عند تعطيل الحساب.
قبل إجراء أي تغييرات، حدد سياسة التنظيف. "غير نشط" ليس حالة حساب Synapse؛ بل هو قاعدة تقوم بإنشائها من حقول مثل last_seen_tsنوع الحساب، والحالة الإدارية، وسياق العمل.
هدف
الإجراء الموصى به
كيفية التحقق من ذلك
تعطيل الحسابات القديمة مع الحفاظ على الهوية/الملف الشخصي
استخدم واجهة برمجة تطبيقات حذف الوسائط الخاصة بالمستخدم المنفصلة
تقارير استجابة حذف الوسائط تتضمن المعرفات المحذوفة/العدد
إيقاف النشاط مؤقتًا مع الحفاظ على مسار تعافٍ أسهل
يُفضّل تعليق التفعيل بدلاً من إلغاء التفعيل
تم تعليق حساب المستخدم ولكن لم يتم إلغاء تفعيله
إذا كنت غير متأكد من كون الحساب مهجورًا، فلا تجعله last_seen_tsمعيارك الوحيد. قد يكون لحسابات الخدمة، ومستخدمي تطبيقات الخدمة، ومسؤولي الطوارئ، والروبوتات، وحسابات الدعم، والمستخدمين المرتبطين بتسجيل الدخول الموحد أنماط تسجيل دخول غير معتادة. تتضمن عملية التنظيف الموثوقة قائمة استبعاد واضحة وخطوة مراجعة.
الخطوة 1: سرد المستخدمين المحليين وجمع بيانات النشاط
تتطلب طلبات واجهة برمجة تطبيقات الإدارة رمز وصول خاصًا بمسؤول الخادم ، وهو يختلف عن رمز الوصول الخاص بمسؤول الغرفة. يُرجى إرسال الرمز في Authorization: Bearerترويسة HTTP بدلًا من وضعه في عنوان URL أو سجل الأوامر، كلما أمكن ذلك.
يوثق برنامج Synapse نقطة نهاية قائمة المستخدمين V3 على النحو التالي:
تدعم واجهة برمجة تطبيقات قائمة المستخدمين الترقيم. عندما تحتوي الاستجابة على قيمة معينة next_token، اطلب الصفحة التالية باستخدام تلك القيمة from. لا تفترض أن الصفحة الأولى تمثل الخادم بالكامل.
تُتيح واجهة برمجة التطبيقات (API) حقولًا مفيدة لاتخاذ قرارات التنظيف، بما في ذلك ما إذا كان الحساب مسؤولًا، ونوع المستخدم، وما إذا كان مُعطّلًا بالفعل، وتاريخ إنشائه، وتاريخ آخر ظهور له. ويُعرّف التوثيق last_seen_tsتاريخ آخر نشاط للمستخدم بالمللي ثانية منذ بداية حقبة يونكس.
ابدأ بإدراج المستخدمين المحليين من خلال واجهة برمجة تطبيقات إدارة V3، واستمر في المتابعة next_tokenحتى تتم مراجعة كل صفحة.
ما الذي يُعتبر "غير نشط"؟
تتمثل إحدى السياسات الشائعة في "عدم النشاط لمدة 180 يومًا"، لكن المدة المناسبة تعتمد على طبيعة العمل. قد يحتاج خادم خاص صغير إلى 90 يومًا بشكل معقول. أما الجامعة أو المنظمة الموسمية أو خدمة الخريجين فقد تحتاج إلى 365 يومًا أو أكثر.
استخدم طابعًا زمنيًا مطلقًا بدلاً من مقارنة التواريخ المنسقة. على سبيل المثال، يمكن لبرنامج بايثون حساب الحد الأدنى بالمللي ثانية:
ثم اعتبر المستخدم غير نشط فقط عندما يكون الحساب نشطًا، وغير إداري، وغير محمي بسياسة، ويكون last_seen_tsأقدم من الحد الأدنى.
تعامل بحذر مع قيمة "آخر ظهور" المفقودة أو الفارغة. قد يعني ذلك أن الحساب لم يُنتج بيانات النشاط المتوقعة، وليس بالضرورة أنه من الآمن حذفه. تحقق من وقت الإنشاء ونوع الحساب وربط تسجيل الدخول الموحد (SSO) وملكية النشاط التجاري قبل إضافته.
الخطوة الثانية: أنشئ قائمة مرشحين لعدم النشاط، وليس قائمة حذف تلقائي
إن جودة هذه الخطوة أهم من سرعة استدعاءات واجهة برمجة التطبيقات. يجب أن يكون هدفك هو الحصول على قائمة مرشحين تمت مراجعتها، تحتوي فقط على الحسابات التي يمكن تعطيلها بأمان.
على الأقل، استبعد ما يلي:
مسؤولو الخوادم المنزلية؛
حسابات التطبيقات والخدمات والتكامل المعروفة؛
الحسابات الآلية وحسابات الدعم التي تبقى خاملة عمداً؛
حسابات كسر الزجاج أو حسابات الطوارئ؛
الحسابات المدرجة في قائمة الاستثناءات المتعلقة بالحجز القانوني أو الاحتفاظ بالحسابات؛
المستخدمون الذين قاموا مؤخراً بتغيير موفر الهوية أو ربط الحساب؛
المستخدمون الذين تم تعطيل حساباتهم بالفعل، إلا إذا كنت تقوم بمراجعة أعمال التنظيف السابقة.
يجب أن يتضمن سجل المرشح البسيط معرّف مستخدم المصفوفة، last_seen_tsوتاريخ ووقت الإنشاء، وعلامة المسؤول، ونوع الحساب، وسبب اجتيازه قاعدة عدم النشاط. إن الاحتفاظ بهذه المعلومات يُسهّل عملية المراجعة واتخاذ قرارات التراجع لاحقًا.
يقوم فحص الخمول المفيد بفصل المستخدمين غير النشطين عن المسؤولين المحميين وحسابات الخدمة بدلاً من إلغاء تنشيط كل طابع زمني قديم تلقائيًا.
كيف تعرف أن اختيار المرشحين جيد بما فيه الكفاية؟
ابحث عن ثلاث علامات:
الاكتمال: قام البرنامج النصي الخاص بك بتصفح قائمة المستخدمين المحليين بالكامل.
إمكانية التفسير: لكل مرشح سبب واضح، مثل "آخر ظهور قبل 242 يومًا، حساب غير إداري، حساب غير خدمي".
انخفاض خطر النتائج الإيجابية الخاطئة: تم تصفية الحسابات الخاصة والاستثناءات التجارية قبل أي مكالمة تخريبية.
إذا لم تتمكن من استيفاء هذه الشروط، فغيّر العملية قبل المتابعة. على سبيل المثال، أضف مرحلة موافقة بشرية، أو أرسل تحذيراً بشأن عدم النشاط، أو ابدأ بتعليق الحساب بدلاً من إلغاء تفعيله.
الخطوة 3: فحص كل حساب قبل إلغاء تنشيطه
بالنسبة لمستخدم محلي محدد، يقوم برنامج Synapse بالوثائق التالية:
قد تتضمن الاستجابة الحالة الإدارية للحساب، وعلامات التعطيل والحذف، وتواريخ الإنشاء وآخر ظهور، والهويات الخارجية، ومعرفات الجهات الخارجية. هذه هي النقطة التي يجب التحقق فيها من أن الحساب هو الحساب الذي تنوي التأثير عليه.
قم بفحص الحساب الفردي قبل إلغاء تنشيطه حتى لا يتمكن الطابع الزمني القديم من تجاوز السياق المهم مثل حالة المسؤول أو تعيين الهوية الخارجية.
هل يجب عليك استخدام erase true أم erase false؟
يُستخدم هذا الخيار "erase": falseعندما يكون الهدف التشغيلي هو تعطيل الوصول مع الاحتفاظ بمعلومات الملف الشخصي. وفقًا لوثائق Synapse الحالية، يؤدي التعطيل العادي إلى إزالة رموز الوصول النشطة، وتجزئة كلمة المرور، والأجهزة، ومفاتيح التشفير من طرف إلى طرف، وبرامج الدفع، ومعرفات الجهات الخارجية، وعضويات الغرف، وبيانات الحساب، والدعوات المعلقة، ومعلومات صلاحية الحساب ذات الصلة.
استخدم هذه "erase": trueالخاصية عندما تتطلب سياستك أيضًا إزالة اسم العرض، ورابط الصورة الرمزية، وحقول الملف الشخصي المخصصة، ووضع علامة "محذوف" على المستخدم. لا يعني الحذف تدمير جميع البيانات السابقة. توضح Synapse صراحةً أن الرسائل المرسلة سابقًا لا تُحذف بواسطة واجهة برمجة التطبيقات هذه، كما أن الوسائط التي تم تحميلها لا تُحذف تلقائيًا أيضًا.
هذا التمييز بالغ الأهمية. إذا كانت سياستك تتطلب حذف المحتوى بما يتجاوز مسح الملف الشخصي، فإن تعطيل الحساب وحده لا يكفي.
الخطوة الرابعة: التشغيل التجريبي، وإلغاء التنشيط، والتحقق
قبل تنفيذ التغييرات، اكتب معرّفات المستخدمين النهائية في ملف نصي عادي أو ملف JSON وراجعها. يجب أن تكون النسخة التجريبية غير قابلة للتغيير طوال فترة نافذة التغيير: إذا تغير نص إنشاء المرشحين أثناء إلغاء تنشيط المستخدمين، فتوقف وأعد إنشاء القائمة المعتمدة.
استخدم قائمة تجريبية تمت مراجعتها كمدخل لنافذة التغيير بحيث تكون الحسابات التي يتم تعطيلها واضحة وقابلة للتدقيق.
لكل مستخدم محلي معتمد، قم باستدعاء نقطة نهاية إلغاء التنشيط الموثقة:
يجب أن تظهر نتيجة تشغيل ناجحة "deactivated": true. إذا طلبتَ حذف البيانات، فتحقق من ذلك أيضًا "erased": true. لا تعتمد على عبارة "أعاد واجهة برمجة التطبيقات رمز HTTP 2xx" كمعيار نجاح وحيد؛ بل اقرأ سجل المستخدم بعد التغيير.
ما الذي يزيله التعطيل فعلياً؟
تُفصّل وثائق Synapse الحالية عدة آثار لتعطيل الحساب، من بينها إزالة رموز الوصول النشطة، ومعرّفات الجهات الخارجية، والأجهزة، ومفاتيح التشفير التام، وبرامج الدفع، وتجزئات كلمات المرور، وعضويات الغرف، والدعوات المعلقة، وبيانات الحساب. كما يؤدي ذلك إلى إزالة المستخدم من دليل المستخدمين.
بالإضافة إلى ذلك erase: true، يقوم برنامج Synapse بإزالة اسم العرض وعنوان URL للصورة الرمزية وحقول الملف الشخصي المخصصة، ويضع علامة على الحساب بأنه محذوف.
يوثّق برنامج Synapse أيضًا العناصر المهمة التي لا تُحذف بهذه العملية. وتشمل هذه العناصر الرسائل المرسلة والمستلمة، والوسائط المرفوعة، وتعيينات تسجيل الدخول الموحد، والطوابع الزمنية للإنشاء، وتجاوزات حدود المعدل، وسجلات المستخدمين النشطين شهريًا، وبعض معلومات الموافقة. القائمة الموثقة ليست بالضرورة شاملة، لذا يُرجى التعامل مع إلغاء التنشيط على أنه إغلاق للحساب، وليس حذفًا شاملًا للبيانات.
هل تحتاج أيضًا إلى حذف الوسائط التي قام المستخدم بتحميلها؟
إذا كانت سياسة الاحتفاظ الخاصة بك تتطلب حذف الوسائط المخزنة محليًا والتي قام المستخدم بتحميلها، فإن Synapse يوفر نقطة نهاية منفصلة:
تقوم واجهة برمجة تطبيقات وسائط المستخدم بحذف الوسائط المحلية والصور المصغرة المخزنة في مستودع وسائط Synapse. تشير الوثائق إلى حدين مهمين من الناحية التشغيلية. أولاً، لا تتأثر الوسائط المخزنة في مستودع وسائط خارجي بهذه الواجهة. ثانياً، إذا لم تحدد حداً أقصى، فإن نقطة النهاية تحذف 100 ملف لكل طلب، لذا قد يحتاج المستخدمون الذين لديهم سجلات وسائط كبيرة إلى إجراء استدعاءات متكررة.
لا تقم بتفعيل حذف الوسائط تلقائيًا إلا إذا نصت سياسة الاحتفاظ بالبيانات الخاصة بك على ذلك. فهو أكثر ضررًا من تعطيل الحساب، وقد يؤثر على الوسائط التي لا تزال موجودة في غرف البيانات القديمة.
متى يجب عليك استخدام نظام التعليق بدلاً من ذلك؟
كما توثق Synapse واجهة برمجة تطبيقات لتعليق الحساب. ويؤدي التعليق إلى حظر أنشطة مثل إرسال الرسائل، والانضمام إلى الغرف، وإرسال الدعوات، وتغيير معلومات الملف الشخصي، ومعظم عمليات التنقيح، مع الحفاظ على مسار استرداد مختلف عن مسار التعطيل.
يُعدّ تعليق الحساب خيارًا أفضل عندما تحتاج إلى تجميد إداري قابل للإلغاء، أو عندما يكون سبب عدم النشاط غير مؤكد، أو عندما لا تزال مراجعة إنهاء الخدمة جارية. أما إلغاء التنشيط فهو الخيار الأقوى عندما يجب إنهاء الوصول وإزالة الرموز المميزة والأجهزة وعضويات الغرف وبيانات الحساب.
بالنسبة للتنظيف الآلي، غالباً ما تكون السياسة المرحلية أكثر أماناً:
وضع علامة على الحساب بعد تجاوز حد عدم النشاط؛
إخطارها أو مراجعتها؛
قم بتعليقها إذا كانت الملكية غير مؤكدة؛
لا تقم بإلغاء التنشيط إلا بعد انقضاء فترة الاحتفاظ أو الموافقة.
كيف يمكنك أتمتة عملية التنظيف بأمان؟
يجب فصل عمليتي الاكتشاف والتعطيل. ينبغي أن تكون عملية الاكتشاف للقراءة فقط، وأن تُنتج ملفًا للمرشحين. أما عملية التنفيذ، فينبغي أن تستهلك ملفًا مُعتمدًا فقط، وأن تُسجل حالة كل طلب واستجابة.
يجب أن تتضمن آلية العمل ذات الجودة الإنتاجية ما يلي:
اتبع جميع رموز الترقيم؛
تحديد معدل الطلبات المجمعة بدلاً من إرسال الآلاف في وقت واحد؛
استبعاد مسؤولي الخادم وحسابات الخدمة المسماة افتراضياً؛
تخزين الطوابع الزمنية بتوقيت UTC؛
سجل إصدار سياسة التنظيف التي تم تحديد كل حساب من خلالها؛
التوقف عند المصادقة أو التفويض أو أخطاء الخادم المتكررة؛
إعادة الاستعلام عن كل مستخدم بعد إلغاء تنشيط حسابه؛
احرص على إبقاء رموز الوصول الإدارية بعيدة عن شفرة المصدر والسجلات.
إذا لم تتطابق عملية التحقق بعد التغيير مع الحالة المطلوبة، فلا تتابع معالجة باقي الدفعة دون تدقيق. تحقق من حالات الفشل الأولى وحدد ما إذا كانت المشكلة تتعلق بالأذونات، أو توافق إصدار واجهة برمجة التطبيقات، أو مشكلة في إعدادات الخادم الوكيل، أو تكامل خدمة مصادقة المصفوفة، أو حالة خاصة بالحساب.
قائمة التحقق النهائية
استخدم رمز حامل مسؤول الخادم.
قم بحصر جميع صفحات المستخدمين المحليين، وليس فقط أول 100 مستخدم.
حدد عدم النشاط من خلال عتبة موثقة واستثناءات.
قم بفحص الحسابات عالية المخاطر بشكل فردي قبل اتخاذ أي إجراء.
قم بإنشاء قائمة تجريبية واعتمادها.
استخدم نقطة نهاية إلغاء التنشيط بدلاً من افتراض أن Synapse يدعم الحذف الكامل للحساب.
اختر erase: trueفقط عندما يكون حذف الملف الشخصي جزءًا من السياسة.
قم بمعالجة الوسائط التي تم تحميلها بشكل منفصل عند الحاجة.
تحقق deactivatedمن ذلك، وعند الاقتضاء، erasedبعد كل تغيير.
إنّ عملية التنظيف الأكثر موثوقية هي تلك التي يمكنك شرحها لاحقًا: ما هي قاعدة عدم النشاط التي حددت حسابًا معينًا، وما هي الاستثناءات التي تم التحقق منها، وما هو إجراء واجهة برمجة التطبيقات الذي تم تنفيذه، وما هو حقل ما بعد التغيير الذي أثبت الحالة المطلوبة. هذا المعيار أكثر فائدة من مجرد زيادة عدد الحسابات التي تتم معالجتها في عملية واحدة.