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

:information_source: يتمتع 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"
}

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

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

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

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

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

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

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

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

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

user-U123456@example.com

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

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

المصادقة متعددة العوامل والمصادقة الخارجية

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

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

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

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

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

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

موارد إضافية

5 إعجابات