إضافة المستخدمين برمجيًا عند استخدام SSO

لقد قمنا بتكوين نسخة Discourse الداخلية لدينا بحيث يُستلزم استخدام SSO، وهي متصلة بخادم LDAP الخاص بنا. وهذا يعني أن أي موظف يمكنه تسجيل الدخول بسهولة باستخدام اسم المستخدم وكلمة المرور الموحدين لديه… لكن حسابه يُنشأ فقط عند تسجيل دخوله لأول مرة.

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

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

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

  2. أود أيضًا أن يتمكن الجميع من استقبال رسائل ملخصات من Discourse ليكونوا على علم بالخيوط (المواضيع) الجديدة التي تُنشأ (حتى لو لم يزوروا Discourse أبدًا)… لكن هذا يتطلب أيضًا وجود الحساب مسبقًا.

هل لديك أي اقتراحات حول ما يمكنني فعله؟ هل توجد طريقة لإنشاء حسابات في Discourse برمجياً بحيث ترتبط بـ SSO عند تسجيل دخول الأشخاص؟

شكرًا لك.

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

You can do it via the API. Here’s an example: GitHub - pfaffman/discourse-user-creator: Create an activated user, optionally assigning to group

3 إعجابات

Thanks … one issue I can think of is that I have to supply a password when creating the user. Presumably, if SSO is being enforced, Discourse actually ignores the password I’ve provided? (Testing would prove that, I guess!)

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

Yeah. Since you’re using SSO the password won’t matter, or can be omitted. Testing would be the way to prove it! If you’d like help and have a budget, my contact info is in my profile.

You can create users with the sync_sso route. There is some PHP code in this post that gives an example of how to do it: If someone changes their email in WordPress, change it in Discourse - sso_sync. In that code, it’s being used to update a user’s email, but the same idea will work to create a new user.

5 إعجابات