فهم تخزين PII في Discourse

:bookmark: يشرح هذا الدليل المعلومات الشخصية القابلة للتحديد (PII) التي يخزنها Discourse افتراضيًا، وأماكن تخزينها، ومن يمكنه الوصول إليها، وكيفية تقليل جمع المعلومات الشخصية باستخدام DiscourseConnect.

:person_raising_hand: مستوى المستخدم المطلوب: مدير النظام

يخزن Discourse معلومات شخصية قابلة للتحديد (PII) معينة لدعم الوظائف الأساسية مثل الإشراف، وإدارة الحسابات، ومصادقة المستخدمين. يساعد فهم البيانات التي يتم جمعها وكيفية تخزينها في اتخاذ قرارات مستنيرة بشأن الخصوصية والامتثال.

ملخص

يخزن Discourse عدة أنواع من المعلومات الشخصية القابلة للتحديد بما في ذلك عناوين IP، وعناوين البريد الإلكتروني، وبيانات اعتماد تسجيل الدخول عبر الشبكات الاجتماعية. تُستخدم هذه المعلومات بشكل أساسي للإشراف، وكشف الحسابات المكررة، ومصادقة المستخدمين. يمكن لمديري الموقع تقليل تخزين المعلومات الشخصية القابلة للتحديد من خلال تنفيذ DiscourseConnect (SSO)، مما يسمح لك بالتحكم في المعلومات المنقولة إلى Discourse.

ما هي المعلومات الشخصية القابلة للتحديد التي يخزنها Discourse؟

عناوين IP

يخزن Discourse عناوين IP التالية لكل مستخدم لمساعدة فريق الإشراف في كشف الحسابات المكررة:

  • عنوان IP للتسجيل - عنوان IP المستخدم عند إنشاء الحساب
  • آخر عنوان IP مستخدم - أحدث عنوان IP من خلاله قام المستخدم بالوصول إلى الموقع

على سبيل المثال، إذا قمت بزيارة موقعك على جهازك المحمول في الساعة 11:00 صباحًا ثم على جهازك اللوحي في الساعة 12:00 ظهرًا، فسيتم تخزين عنوان IP الخاص بالجهاز اللوحي فقط باعتباره عنوان IP “آخر استخدام”.

من يمكنه الوصول إلى عناوين IP

  • مديرو النظام - وصول كامل إلى جميع معلومات عناوين IP
  • المشرفون - يمكنهم عرض عناوين IP افتراضيًا (يمكن تعطيلها باستخدام إعداد الموقع moderators_view_ips)
  • النظام - يستخدم عناوين IP داخليًا لكشف الرسائل المزعجة وتحديد الحسابات المكررة

عناوين البريد الإلكتروني

يتم تخزين عناوين البريد الإلكتروني كنص عادي في قاعدة البيانات، وهي مرئية لأي شخص لديه وصول إلى قاعدة البيانات. يشمل ذلك:

من يمكنه الوصول إلى عناوين البريد الإلكتروني

  • مديرو النظام - وصول كامل إلى جميع عناوين البريد الإلكتروني
  • المشرفون - لا يمكنهم عرض عناوين البريد الإلكتروني افتراضيًا (يمكن تمكين ذلك باستخدام إعداد الموقع moderators_view_emails)
  • مديرو قواعد البيانات - أي شخص لديه وصول مباشر إلى قاعدة البيانات

الأسماء الكاملة (الأسماء الحقيقية)

يمكن لـ Discourse جمع وتخزين الأسماء الكاملة للمستخدمين (المشار إليها أيضًا باسم “الأسماء الحقيقية”)، والتي تكون منفصلة عن أسماء المستخدمين. يتم تخزين الأسماء الكاملة كنص عادي في قاعدة البيانات جنبًا إلى جنب مع معلومات المستخدم الأخرى.

كيفية جمع الأسماء الكاملة

يمكن توفير الأسماء الكاملة بعدة طرق:

  • أثناء التسجيل - قد يدخل المستخدمون اسمهم الكامل أثناء عملية التسجيل (اعتمادًا على التكوين)
  • عبر SSO/DiscourseConnect - يمكن لمزود المصادقة الخارجي تمرير الاسم الكامل (حقل name) عند إنشاء أو تحديث مستخدم، ويمكنه تجاوز الاسم المحلي إذا تم تكوينه.
  • عبر تعديل الملف الشخصي - يمكن للمستخدمين إضافة أو تحديث اسمهم الكامل من تفضيلات ملفهم الشخصي
  • من تسجيلات الدخول عبر الشبكات الاجتماعية - عند مصادقة المستخدمين عبر مزودي الشبكات الاجتماعية، غالبًا ما يُستخدم اسم العرض كاسم كامل

من يمكنه الوصول إلى الأسماء الكاملة

يتم تخزين الأسماء الكاملة كنص عادي في عمود name من جدول users في قاعدة البيانات ويمكن الوصول إليها بواسطة:

  • مديرو النظام - وصول كامل إلى جميع الأسماء الكاملة
  • المشرفون - يمكنهم عرض الأسماء الكاملة افتراضيًا (يتم التحكم فيها بنفس أذونات الوصول إلى البريد الإلكتروني)
  • مديرو قواعد البيانات - أي شخص لديه وصول مباشر إلى قاعدة البيانات.
  • المستخدمون العامون - قد يرون الأسماء الكاملة اعتمادًا على إعدادات enable_names وإعدادات العرض ذات الصلة

خيارات التكوين

يمكن لمديري النظام التحكم في كيفية جمع الأسماء الكاملة وعرضها باستخدام إعدادات الموقع التالية:

  • full_name_requirement - يتحكم في ما إذا كان حقل الاسم الكامل يظهر أثناء التسجيل وما إذا كان مطلوبًا

  • auth_overrides_name - عند التمكين، لا يمكن للمستخدمين تغيير الاسم من مزود المصادقة الخارجي الخاص بك (بما في ذلك SSO/DiscourseConnect وتسجيلات الدخول عبر الشبكات الاجتماعية)

    • مفيد للحفاظ على هوية متسقة عبر أنظمتك
  • use_name_for_username_suggestions - عند التمكين، سيقوم Discourse باستخدام الاسم الكامل عند اقتراح أسماء المستخدمين أثناء التسجيل

  • enable_names - مفتاح رئيسي يعرض الاسم الكامل للمستخدم في ملفه الشخصي، وبطاقة المستخدم، والرسائل الإلكترونية. قم بالتعطيل لإخفاء الاسم الكامل في كل مكان

    • الافتراضي: مفعّل

:information_source: إعدادات العرض التالية تكون سارية المفعول فقط عند تمكين enable_names:

  • display_name_on_posts - يعرض الاسم الكامل للمستخدم في منشوراته بالإضافة إلى @username الخاص به
  • prioritize_username_in_ux - يتحكم في ما إذا كان اسم المستخدم أو الاسم الكامل يظهر بشكل أكثر بروزًا في الواجهة
    • الافتراضي: مفعّل (أولوية لاسم المستخدم)
  • display_name_on_email_from - يستخدم الاسم الكامل في حقول “من” في إشعارات البريد الإلكتروني، إذا تم تمكينه.

:information_source: يتمتع Discourse بتكرار ذكي، إذا كان الاسم الكامل واسم المستخدم للمستخدم متشابهين جدًا (تجاهل المسافات، والشرطات السفلية، وحالة الأحرف)، فسيتم عرض واحد فقط لتجنب التكرار. يمكنك تعطيل هذا السلوك باستخدام مكون السمة إزالة قمع الاسم في المنشورات، والذي يجبر الاسم الكامل واسم المستخدم على العرض دائمًا في المنشورات.

معلومات تسجيل الدخول الاجتماعي المُوَحَّدَة

عندما يقوم المستخدمون بالمصادقة من خلال مزودي تسجيل الدخول عبر الشبكات الاجتماعية (Google، Facebook، GitHub، إلخ)، يخزن Discourse قطعًا مختلفة من المعلومات:

  • البريد الإلكتروني
  • معرف حساب المزود
  • الاسم
  • الصورة الرمزية
  • [قد تتغير هذه القائمة اعتمادًا على المزود أو بمرور الوقت]

تعتمد البيانات المحددة المخزنة على المزود وعلى المعلومات التي يشاركونها.

مثال: Google OAuth2

عندما يقوم المستخدم بتسجيل الدخول باستخدام Google، يحتفظ Discourse بالمعلومات التالية في قاعدة البيانات:

provider_name: "google_oauth2",
provider_uid: "11791234567812345",
info: {
  "name" => "Bilbo Baggins",
  "email" => "bilbo.baggins@gmail.com",
  "image" => "https://lh3.googleusercontent.com/a/ACg8ocJD5vR-JuZZ16mGf51uYH0KyKGoKXF36U3inbh4Bzne0CpuTlH23g=s96-c",
  "last_name" => "Baggins",
  "first_name" => "Bilbo",
  "email_verified" => true,
  "unverified_email" => "bilbo.baggins@gmail.com"
}

مثال: Facebook OAuth

يوضح المثال المحذوف لتسجيل الدخول عبر Facebook ما يلي:

provider_name: "facebook",
provider_uid: "123456789",
info: {
  "name" => "Bilbo Baggins",
  "email" => "bbaggins@shire.net",
  "image" => "https://graph.facebook.com/v5.0/123456789/picture?access_token=swordfish&width=480&height=480",
  "last_name" => "Baggins",
  "first_name" => "Bilbo"
}

:information_source: قد تتغير الحقول المحددة المخزنة اعتمادًا على المزود أو بمرور الوقت مع تطور بروتوكولات المصادقة.

من يمكنه الوصول إلى معلومات تسجيل الدخول عبر الشبكات الاجتماعية

  • مديرو النظام - وصول كامل إلى معلومات الحساب المرتبطة من خلال لوحة الإدارة وقاعدة البيانات
  • المشرفون - قد يكون لديهم وصول محدود اعتمادًا على تكوين الموقع
  • المستخدمون الأفراد - يمكنهم عرض وإدارة حساباتهم المرتبطة الخاصة بهم من تفضيلات المستخدم

تقليل تخزين المعلومات الشخصية القابلة للتحديد باستخدام DiscourseConnect

لتجنب تخزين معلومات شخصية قابلة للتحديد معينة في Discourse، يمكنك استخدام DiscourseConnect للتعامل مع عملية تسجيل الدخول لمستخدميك بالكامل.

كيف يقلل DiscourseConnect من تعرض المعلومات الشخصية القابلة للتحديد

مع DiscourseConnect، تتحكم بالكامل في معلومات المستخدم المنقولة مرة أخرى إلى Discourse. نظرًا لأنك تدير التنفيذ، فيمكنك إنشاء بدائل تركز على الخصوصية بدلاً من المعرفات التقليدية.

نهج مثال: بدلاً من إعطاء Discourse عنوان البريد الإلكتروني الحقيقي للمستخدم، يمكنك إنشاء عنوان بريد إلكتروني فريد خالٍ من المعلومات الشخصية القابلة للتحديد.

على سبيل المثال، إذا كان المعرف الفريد الداخلي لمستخدم هو U123456، فقد تمرر عنوان بريد إلكتروني مثل:

user-U123456@example.com

فوائد خصوصية إضافية

يؤدي استخدام DiscourseConnect أيضًا إلى إخفاء أي اتصال بتسجيل الدخول عبر الشبكات الاجتماعية المُوَحَّدَة عن Discourse. من منظور Discourse، فإن نوع تسجيل الدخول الذي يستخدمه المستخدم (اجتماعي، محمول، إلخ) غير ذي صلة، حيث يتم التعامل معه على جانبك. لا يعرف Discourse سوى ما يخبره به مزود تسجيل الدخول.

المصادقة الثنائية (MFA) والمصادقة الخارجية

هل يمكن فرض المصادقة الثنائية (MFA) فوق المصادقة الخارجية؟

:warning: هذا المزيج غير مدعوم حاليًا بالطريقة المتوقعة.

يحتوي Discourse على إعداد الموقع enforce_second_factor_on_external_auth، الذي يمنع المستخدمين الذين تم تمكين المصادقة الثنائية لديهم من استخدام طرق المصادقة الخارجية مثل تسجيل الدخول عبر الشبكات الاجتماعية. عند التمكين، سيمنع هذا المستخدمين الذين يسجلون الدخول باستخدام طرق المصادقة الخارجية إذا كان لديهم مصادقة ثنائية مفعلة.

يجعل هذا الإعداد المستخدمين يختارون فعليًا بين:

  • استخدام المصادقة الخارجية (تسجيل الدخول عبر الشبكات الاجتماعية) بدون 2FA على Discourse
  • استخدام تسجيل الدخول باسم المستخدم/كلمة المرور مع 2FA على Discourse

:information_source: للحصول على الإعداد الأكثر أمانًا مع SSO، قم بتنفيذ MFA في مزود الهوية الخاص بك بدلاً من داخل Discourse.

موارد إضافية

5 إعجابات