انتقل إلى المحتوى الرئيسي

خدمة العملاء

انتحال الهوية للدعم وحل المشكلات

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

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

انظر أيضًا: RBAC لتكوين الأذونات، العملاء لإدارة العملاء، بوابة الرعاية الذاتية لميزات بوابة العملاء.

الغرض

يوفر انتحال الهوية:

  1. حل المشكلات --- رؤية بالضبط ما يراه العميل لت��خيص المشكلات
  2. التحقق --- تأكيد أن تكوينات الخدمة والأذونات تعمل بشكل صحيح
  3. التدريب --- عرض الميزات من منظور العميل
  4. الدعم --- مساعدة العملاء في التنقل في النظام دون الحاجة إلى مشاركة الشاشة
  5. سجل التدقيق --- يتم تسجيل جميع جلسات الانتحال لأغراض الأمان والامتثال

الأذونات المطلوبة

للانتحال، يجب أن يكون لديك واحدة من الأذونات التالية:

  • can_impersonate --- إذن انتحال مخصص لموظفي الدعم
  • admin --- وصول إداري كامل (يشمل حقوق الانتحال)

لا يمكن للمستخدمين الذين لا يمتلكون هذه الأذونات الوصول إلى ميزة الانتحال.

كيفية انتحال هوية مستخدم

عبر واجهة الويب:

  1. انتقل إلى العميل --- ابحث عن العميل في نظام إدارة علاقات العملاء
  2. حدد جهات الاتصال --- عرض قائمة جهات الاتصال الخاصة بالعميل
  3. انقر على "تسجيل الدخول كعميل" --- يظهر الزر بجوار ��ل جهة اتصال لديها حساب مستخدم
  4. تأكيد الانتحال --- قد يطلب النظام تأكيدًا
  5. تبدأ الجلسة --- أنت الآن مسجل الدخول كذاك المستخدم

تسجيل الدخول كعميل في OmniCRM

عبر API:

بدء جلسة انتحال:

نقطة النهاية: POST /auth/impersonate

الإذن المطلوب: can_impersonate أو admin

الطلب:

{
"user_id": 42
}

الاستجابة:

{
"success": true,
"impersonating_user_id": 1,
"target_user_id": 42,
"impersonation_start": "2025-01-04T15:30:00Z",
"access_token": "new_token_for_impersonated_user",
"refresh_token": "new_refresh_token"
}

تكون الرموز المميزة المعادة لجلسة المستخدم المنتحل.

ماذا يحدث أثناء الانتحال

عند انتحال هوية مستخدم:

  • السياق الكامل --- ترى النظام تمامًا كما يراه المستخدم المستهدف:
    • لوحة التحكم والتنقل الخاصة بهم
    • بيانات العميل الخاصة بهم (إذا كان مستخدمًا للعميل)
    • أذوناتهم ووسائل التحكم في الوصول
    • خدماتهم، وفواتيرهم، واستخدامهم
  • تتبع الجلسة --- يتتبع النظام كلا الهوية:
    • impersonating_user_id --- معرف المستخدم الحقيقي الخاص بك
    • target_user_id --- المستخدم الذي تقوم بانتحاله
    • impersonation_start --- متى بدأ الانتحال
  • مؤشر --- تعرض واجهة المستخدم لافتة تظهر أنك تقوم بانتحال شخص ما:
    • "أنت مسجل الدخول حاليًا كـ [اسم المستخدم]"
    • "انقر هنا لإيقاف الانتحال"
  • تسجيل التدقيق --- يتم تسجيل جميع الإجراءات مع كلا معرفي المستخدم:
    • تظهر الإجراءات كما لو كانت قد تمت من قبل المستخدم المستهدف
    • تسجل سجلات التدقيق من كان يقوم بتنفيذها فعليًا (المستخدم المنتحل)
    • يتم الحفاظ على سجل تدقيق كامل في جدول ImpersonationLog

إيقاف الانتحال

عبر واجهة الويب:

  1. انقر على اللافتة --- انقر على لافتة الانتحال في أعلى الصفحة
  2. أو انتقل --- انتقل إلى قائمة المستخدم وحدد "إيقاف الانتحال"
  3. تأكيد --- تنتهي الجلسة وتعود إلى حسابك الخاص

عبر API:

نقطة النهاية: POST /auth/stop_impersonation

الطلب: لا حاجة لجسم (طلب مصادق عليه)

الاستجابة:

{
"success": true,
"impersonation_end": "2025-01-04T15:45:00Z",
"duration_seconds": 900,
"access_token": "your_original_token",
"refresh_token": "your_original_refresh_token"
}

يتم استعادة جلستك الأصلية.

تسجيل تدقيق الانتحال

يتم تسجيل جميع جلسات الانتحال في جدول ImpersonationLog مع:

  • impersonating_user_id --- عضو الفريق الذي قام بالانتحال
  • target_user_id --- العميل أو المستخدم الذي تم انتحاله
  • impersonation_start --- طابع زمني للبداية
  • impersonation_end --- طابع زمني للنهاية (عندما تم إيقاف الجلسة)
  • impersonation_duration --- المدة بالثواني

يوفر هذا المساءلة الكاملة لجميع جلسات الانتحال ويسمح بـ:

  • تدقيق الأمان --- مراجعة من انتحل من ومتى
  • تقرير الامتثال --- إثبات الاستخدام الصحيح للوصول المرتفع
  • التحقيق --- تتبع الإجراءات خلال جلسات الانتحال
  • المراقبة --- تحديد أنماط الانتحال غير المعتادة

عرض سجلات الانتحال:

يمكن للمسؤولين استعلام سجلات الانتحال عبر API:

GET /auth/impersonation_logs?user_id={user_id}&start_date={date}&end_date={date}

تصفية حسب:

  • المستخدم المنتحل (من قام بالانتحال)
  • المستخدم المستهدف (من تم انتحاله)
  • نطاق التاريخ
  • المدة

أفضل الممارسات

  1. تقليل المدة --- انتحل فقط طالما كان ذلك ضروريًا لحل المشكلة
  2. توثيق الغرض --- لاحظ لماذا كانت الحاجة للانتحال في سجل نشاط العميل
  3. إبلاغ العملاء --- دع العملاء يعرفون أنك قد تحتاج إلى عرض حسابهم (سياسة الخصوصية)
  4. التحقق من الهوية --- تأكيد هوية المستخدم قبل الانتحال عبر حسابهم
  5. مراجعة السجلات --- تدقيق سجلات الانت��ال بانتظام للبحث عن أنماط غير عادية
  6. تحديد الأذونات --- منح can_impersonate فقط لموظفي الدعم الذين يحتاجون إليها
  7. التدريب --- التأكد من فهم الموظفين للمسؤولية وآثار التدقيق

اعتبارات الأمان

  • الوصول الكامل --- يمنح الانتحال وصولاً كاملاً إلى حساب المستخدم المستهدف
  • لا حاجة لكلمة مرور --- يتجاوز الانتحال المصادقة (استنادًا إلى الأذونات فقط)
  • الإجراءات المسجلة --- يتم نسب جميع الإجراءات أثناء الانتحال إلى المستخدم المستهدف في سجلات التطبيق (لكن سجلات التدقيق تظهر الفاعل الحقيقي)
  • عزل الجلسة --- ينشئ الانتحال جلسة جديدة؛ لا يؤثر على الجلسات النشطة للمستخدم المستهدف
  • حدود زمنية --- يجب أن تكون جلسات الانتحال محدودة زمنياً (قابلة للتكوين)
  • تجاوز MFA --- يتجاوز الانتحال متطلبات المصادقة الثنائية (يستخدم مصادقة المنتحل)

القيود

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

حل المشكلات الشائعة

المشكلة: لا يظهر زر "تسجيل الدخول كعميل"

  • الحل: تحقق من أن لديك إذن can_impersonate أو admin
  • الحل: تأكد من أن جهة الاتصال لديها حساب مستخدم مرتبط

المشكلة: فشل الانتحال مع خطأ في الإذن

  • الحل: تحقق مما إذا كان المستخدم المستهدف مسؤولاً (قد يكون مقيدًا)
  • الحل: تحقق من أن إذن الانتحال الخاص بك نشط

المشكلة: لا يمكن إيقاف الانتحال

  • الحل: استخدم نقطة النهاية API لإيقاف الانتحال: POST /auth/stop_impersonation
  • الحل: امسح ملفات تعريف الارتباط في المتصفح وسجل الدخول مرة أخرى باستخدام بيانات اعتمادك

المشكلة: الإجراءات لا تُسجل بشكل صحيح

  • الحل: تحقق من أن جلسة الانتحال نشطة (تحقق من اللافتة)
  • الحل: مراجعة سجلات التدقيق - يتم تسجيل الإجراءات مع كلا معرفي المستخدم