المشكلة: SAML والمستخدم المجهول والمحظور

Steps to reproduce:

  • User A, a SAML user exists
  • Admin want, that User A is no longer able to use discourse
  • Admin uses the “anonymize user” function for user A (all entries are no anonymized => thats good)
  • Admin want to block further access of user A and therefore want to block him (block user function)

Note: the user was not removed from SAML server and is still active

Expected:
Even that the user does still exist on SAML server, the user should not be able to log in because he/she is blocked.

Current behavior:
The user is able to log in.

Have you tried suspending the user account within Discourse?

sorry, Instead of “block” I mean “suspend”.
Yes, I tried this.

The issue is, that the user gets anonymized and therefore the username changes. I guess, saml doesn’t recognize this and adds a new user because saml can not find the user with its username (= because the user was anonymized before).

I guess, discourse-saml tries to find the user based on the username at https://github.com/discourse/discourse-saml/blob/230a58b2d86465ec8aa75fb755558d4fdda73773/lib/saml_authenticator.rb#L96

I think there need to be a way to match a anonymized user with the saml user data. Does someone know how and which attribute to validate?

عذرًا على إعادة فتح الموضوع، لكننا نواجه هذه المشكلة بالضبط.

  • يقوم المستخدمون بتسجيل الدخول فقط من خلال موفر تسجيل الدخول الموحد (SSO).
  • تم حظر المستخدم أ (UserA) من المنتدى، ولكن ليس من موفر تسجيل الدخول الموحد (SSO).
  • يطلب المستخدم أ (UserA) حذف بيانات المستخدم، لذلك نقوم بإخفاء هوية الحساب.
  • يمكن للمستخدم أ (UserA) إنشاء حساب جديد باستخدام تسجيل الدخول الموحد (SSO).

هل هناك طريقة لتعليق البريد الإلكتروني يدويًا بدون حساب؟

فقط أوقف الحساب الجديد مؤقتًا؟

إعجاب واحد (1)

نعم، لا تريد أن تتاح للمستخدم فرصة التفاعل مع المنتدى، ولا تريد مراقبة المستخدمين الجدد باستمرار.

يجب أن تكون هناك طريقة لتعليق رسائل البريد الإلكتروني، بنفس الطريقة التي يمكنك بها حظر عناوين IP.

يبدو أنك لا تفهم كيفية التعامل مع عمليات الحذف التي يطلبها المستخدم ومتى/أين لا ينطبق ذلك.

عندما يقوم المستخدم بالتسجيل في موقعك، يحق لك معالجة المعلومات التي قدمها (البريد الإلكتروني واسم المستخدم) لغرض التسجيل. لا تنتهي هذه المعالجة عندما يتم تعليقه ومحاولة المغادرة، وأخذ ألعابه معهم.

لست ملزمًا بإزالة البريد الإلكتروني لمستخدم محظور أو معلق. حق النسيان لا يلغي غرض المعالجة.

وكيف يتوافق ذلك مع اللائحة العامة لحماية البيانات (GDPR) وحق المستخدمين في طلب حذف بياناتهم؟

إذا احتفظت بحساباتهم، فإن ذلك لا يزال مرتبطًا ببياناتهم وتحتفظ بمعلوماتهم حتى عندما يطلبون حذف بيانات المستخدم.

أسأل بصدق، أنا لست خبيرًا قانونيًا.

يمكن للمستخدم سحب موافقته على معالجة البيانات الشخصية، ولكن الموافقة هي مجرد أساس واحد يمكن أن يجعل معالجة البيانات قانونية بموجب اللائحة العامة لحماية البيانات (GDPR).

أساس آخر يمكن أن يكون المصلحة المشروعة للمتحكم (المادة 6.1، f: تكون المعالجة ضرورية لأغراض المصالح المشروعة التي يسعى إليها المتحكم). يمكن أن تكون هذه المصلحة المشروعة هي التأكد من أن المستخدم لا يمكنه إنشاء حساب جديد. وإلا فقد يسيء المستخدم استخدام اللائحة العامة لحماية البيانات لمحو جميع السجلات، بما في ذلك حقيقة أنه أساء التصرف.

المادة 17 من اللائحة العامة لحماية البيانات، مع التركيز مني.

  1. يحق لصاحب البيانات الحصول من المتحكم على محو البيانات الشخصية المتعلقة به دون تأخير غير مبرر، ويكون على المتحكم التزام بمحو البيانات الشخصية دون تأخير غير مبرر حيث ينطبق أحد الأسباب التالية: (…)
    يسحب صاحب البيانات موافقته التي تستند إليها المعالجة (…) وحيث لا يوجد أساس قانوني آخر للمعالجة؛

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

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