يشرح هذا الدليل ما هي معلومات التعريف الشخصية (PII) التي يخزنها Discourse افتراضيًا، وأين يتم تخزينها، ومن يمكنه الوصول إليها، وكيف يمكنك تقليل جمع معلومات التعريف الشخصية باستخدام DiscourseConnect.
مستوى المستخدم المطلوب: مسؤول
يخزن 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- مفتاح رئيسي يعرض الاسم الكامل للمستخدم على ملفه الشخصي، وبطاقة المستخدم، ورسائل البريد الإلكتروني. قم بتعطيله لإخفاء الاسم الكامل في كل مكان- الافتراضي: ممكّن
تسري إعدادات العرض التالية فقط عندما يتم تمكين enable_names:
display_name_on_posts- يعرض الاسم الكامل للمستخدم على منشوراته بالإضافة إلى @اسم المستخدم الخاص بهprioritize_username_in_ux- يتحكم فيما إذا كان اسم المستخدم أو الاسم الكامل يظهر بشكل أكثر بروزًا في واجهة المستخدم- الافتراضي: ممكّن (اسم المستخدم له الأولوية)
display_name_on_email_from- يستخدم الاسم الكامل في حقول “من” في إشعارات البريد الإلكتروني، إذا تم تمكينه.
يتمتع Discourse بإلغاء تكرار ذكي، إذا كان الاسم الكامل للمستخدم واسم المستخدم متشابهين جدًا (مع تجاهل المسافات والشرطات السفلية وحالة الأحرف)، فسيتم عرض واحد فقط لتجنب التكرار. يمكنك تعطيل هذا السلوك باستخدام مكون السمة Remove Name Suppression on Posts، والذي يجبر الاسم الكامل واسم المستخدم على العرض دائمًا في المنشورات.
معلومات تسجيل الدخول الاجتماعي الموحد
عندما يقوم المستخدمون بالمصادقة عبر موفري تسجيل الدخول الاجتماعي (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"
}
قد تتغير الحقول المحددة المخزنة اعتمادًا على الموفر أو بمرور الوقت مع تطور بروتوكولات المصادقة.
من يمكنه الوصول إلى معلومات تسجيل الدخول الاجتماعي
- المسؤولون - وصول كامل إلى معلومات الحساب المرتبطة من خلال لوحة الإدارة وقاعدة البيانات
- المشرفون - قد يكون لديهم وصول محدود حسب تكوين الموقع
- المستخدمون الأفراد - يمكنهم عرض وإدارة حساباتهم المرتبطة من تفضيلات المستخدم الخاصة بهم
تقليل تخزين معلومات التعريف الشخصية باستخدام DiscourseConnect
لتجنب تخزين معلومات التعريف الشخصية في Discourse، يمكنك استخدام DiscourseConnect للتعامل مع عملية تسجيل الدخول لمستخدميك بالكامل.
كيف يقلل DiscourseConnect من التعرض لمعلومات التعريف الشخصية
باستخدام DiscourseConnect، يمكنك التحكم بالكامل في معلومات المستخدم التي يتم تمريرها مرة أخرى إلى Discourse. نظرًا لأنك تدير التنفيذ، يمكنك إنشاء بدائل تركز على الخصوصية لمعرفات التعريف الشخصية التقليدية.
نهج المثال: بدلاً من تزويد Discourse بعنوان البريد الإلكتروني الحقيقي للمستخدم، يمكنك إنشاء عنوان بريد إلكتروني فريد ولكنه خالٍ من معلومات التعريف الشخصية.
على سبيل المثال، إذا كان المعرف الفريد الداخلي للمستخدم هو U123456، فقد تقوم بتمرير عنوان بريد إلكتروني مثل:
user-U123456@example.com
فوائد الخصوصية الإضافية
يؤدي استخدام DiscourseConnect أيضًا إلى إخفاء أي اتصال بتسجيلات الدخول الاجتماعية الموحدة عن Discourse. من منظور Discourse، فإن نوع تسجيل الدخول الذي يستخدمه المستخدم (اجتماعي، محمول، إلخ) غير ذي صلة، حيث يتم التعامل مع ذلك من جانبك. يعرف Discourse فقط ما يخبره به موفر تسجيل الدخول.
المصادقة متعددة العوامل (MFA) والمصادقة الخارجية
هل يمكن فرض المصادقة متعددة العوامل (MFA) فوق المصادقة الخارجية؟
هذا المزيج غير مدعوم حاليًا بالطريقة المتوقعة.
يحتوي Discourse على إعداد الموقع enforce_second_factor_on_external_auth، والذي يمنع المستخدمين الذين لديهم المصادقة متعددة العوامل (MFA) ممكّنة من استخدام طرق المصادقة الخارجية مثل تسجيلات الدخول الاجتماعية. عند التمكين، سيؤدي هذا إلى منع المستخدمين من تسجيل الدخول باستخدام طرق المصادقة الخارجية إذا كان لديهم مصادقة ثنائية ممكّنة.
يجعل هذا الإعداد المستخدمين يختارون بشكل فعال بين:
- استخدام المصادقة الخارجية (تسجيلات الدخول الاجتماعية) بدون المصادقة ثنائية العوامل (2FA) على Discourse
- استخدام تسجيل الدخول باسم المستخدم/كلمة المرور مع المصادقة ثنائية العوامل (2FA) على Discourse
للحصول على الإعداد الأكثر أمانًا مع SSO، قم بتطبيق المصادقة متعددة العوامل (MFA) في موفر الهوية الخاص بك بدلاً من داخل Discourse.