تسجيل الدخول والحسابات
قرر من يمكنه إنشاء حساب وكيفية تسجيل الدخول. تعمل جميع طرق تسجيل الدخول في Antimatter دون ترخيص، بما في ذلك تسجيل الدخول الموحّد والمجلدات.
من يمكنه إنشاء حساب
فور التثبيت، تحقق من وحدة التحكم بالنظام › المصادقة › التسجيل. مع الإعدادات الافتراضية، يمكن لأي شخص لديه رابط دعوة إلى مجتمع إنشاء حساب، لكن لا يمكن لأحد التسجيل بدونه.
| الإعداد | المفتاح | الافتراضي | وظيفته |
|---|---|---|---|
| تفعيل إنشاء الحسابات | TeamSettings.EnableUserCreation | مفعّل | عند إيقافه، لا يمكن لأحد إنشاء حساب بأي طريقة؛ يمكن للمديرين فقط (وحدة التحكم بالنظام أو amctl user create). |
| تفعيل الخادم المفتوح | TeamSettings.EnableOpenServer | معطّل | عند تفعيله، يمكن لأي شخص يصل إلى الخادم التسجيل بعنوان بريد إلكتروني، دون دعوة. استخدمه فقط للمجتمعات العامة. |
| تقييد الأعضاء الجدد في النظام والفريق على نطاقات بريد إلكتروني محددة | TeamSettings.RestrictCreationToDomains | فارغ | نطاقات مفصولة بفواصل، على سبيل المثال example.com, example.org: يمكن لعناوين هذه النطاقات فقط إنشاء حساب. |
| تفعيل دعوات البريد الإلكتروني | ServiceSettings.EnableEmailInvitations | معطّل على خادم جديد | يسمح للأعضاء بدعوة أشخاص عبر البريد الإلكتروني (يتطلب SMTP). إبطال دعوات البريد الإلكتروني المعلقة يلغي الدعوات التي لم تُقبل بعد؛ من الواضح أنها تنتهي صلاحيتها بعد 48 ساعة على أي حال. |
يتحكم أيضًا مسؤولو المجتمع في من ينضم إلى مجتمعهم، باستخدام روابط الدعوة والنطاقات المسموح بها لديهم: راجد دليل تشغيل مجتمع.
من سطر الأوامر: amctl user create (أضف --system-admin أو --guest)، amctl user invite، amctl user deactivate، amctl roles system-admin <user> لجعل شخصًا ما مسؤول نظام، وamctl roles member <user> للتراجع عن ذلك.
البريد الإلكتروني وكلمة المرور
في وحدة التحكم بالنظام › المصادقة › البريد الإلكتروني:
| الإعداد | المفتاح | الافتراضي |
|---|---|---|
| تفعيل إنشاء الحساب بالبريد الإلكتروني | EmailSettings.EnableSignUpWithEmail | مفعّل. عطّله عندما يسجّل الجميع الدخول عبر تسجيل الدخول الموحّد. |
| إلزامية التحقق من البريد الإلكتروني | EmailSettings.RequireEmailVerification | معطّل. فعّله بمجرد عمل البريد الإلكتروني: سيتأكد الأشخاص من عنوانهم قبل أن يتمكنوا من تسجيل الدخول. |
| تفعيل تسجيل الدخول بالبريد الإلكتروني | EmailSettings.EnableSignInWithEmail | مفعّل |
| تفعيل تسجيل الدخول باسم المستخدم | EmailSettings.EnableSignInWithUsername | مفعّل |
في وحدة التحكم بالنظام › المصادقة › كلمة المرور:
| الإعداد | المفتاح | الافتراضي |
|---|---|---|
| الحد الأدنى لطول كلمة المرور | PasswordSettings.MinimumLength | 8 (من 5 إلى 72) |
| متطلبات كلمة المرور: أحرف صغيرة، أحرف كبيرة، رقم، رمز | PasswordSettings.Lowercase, .Uppercase, .Number, .Symbol | إيقاف الكل |
| الحد الأقصى لعدد محاولات تسجيل الدخول | ServiceSettings.MaximumLoginAttempts | 10: بعد هذا العدد من المحاولات الفاشلة، يُقفل الحساب حتى إعادة تعيين كلمة المرور عبر البريد الإلكتروني |
| تفعيل رابط نسيت كلمة المرور | PasswordSettings.EnableForgotLink | مفعّل |
طول 12 حرفًا أو أكثر يُسهم في تعزيز الأمان أكثر من قواعد الأحرف. لإعادة تعيين كلمة مرور شخص ما: وحدة التحكم بالنظام › إدارة المستخدمين › المستخدمون، أو amctl user change-password <user> --password <new>.
المصادقة متعددة العوامل
تضيف المصادقة متعددة العوامل (MFA) رمزًا من تطبيق المصادقة إلى كلمة المرور. وهي تنطبق على الحسابات التي تسجّل الدخول عبر البريد الإلكتروني أو AD/LDAP؛ أما مع تسجيل الدخول الموحّد، فاستخدم مصادقة MFA المزوّد بهوية المستخدم. في وحدة التحكم بالنظام › المصادقة › MFA:
- تفعيل المصادقة متعددة العوامل (
ServiceSettings.EnableMultifactorAuthentication، إيقاف): يمكن للأشخاص تفعيل MFA في إعدادات الأمان الخاصة بهم. - فرض المصادقة متعددة العوامل (
ServiceSettings.EnforceMultifactorAuthentication، إيقاف): يجب على الجميع ضبطها، سواء عند التسجيل أو عند تسجيل الدخول التالي.
إذا فقد شخص ما جهازه: amctl user resetmfa <user>، أو أعد تعيينها من صفحته في وحدة التحكم بالنظام › إدارة المستخدمين › المستخدمون.
تسجيل الدخول الموحّد
يمكن لـ Antimatter تسجيل دخول المستخدمين عبر مزوّد هوية المستخدم. عند تسجيل الدخول الأول، يُنشئ حسابهم (إذا كان إنشاء الحساب مسموحًا به) من الاسم والبريد الإلكتروني واسم المستخدم الذي يرسله المزوّد.
OpenID Connect، GitLab، Google و Entra ID
انتقل إلى وحدة التحكم بالنظام › المصادقة › OpenID Connect، واختر ضمن اختر مزوّد الخدمة: GitLab، أو Google Apps، أو Entra ID (Office 365)، أو OpenID Connect (أخرى) لأي مزوّد خدمة آخر (Keycloak، Authentik، Zitadel، Okta، Auth0…).
- في مزوّدك، أنشئ تطبيقًا ("عميلًا") من النوع الويب، مع عنوان إعادة التوجيه التالي، لموقعك الإلكتروني:
المزوّد عنوان إعادة التوجيه OpenID Connect (أخرى) https://chat.example.com/signup/openid/completeGitLab https://chat.example.com/signup/gitlab/completeGoogle https://chat.example.com/signup/google/completeEntra ID https://chat.example.com/signup/office365/complete - في Antimatter، أدخل نقطة نهاية الاكتشاف (عنوان URL الخاص بـ
/.well-known/openid-configurationلمزوّد الخدمة؛ ولـ GitLab، أدخل رابط موقع GitLab بدلاً من ذلك)، ومعرّف العميل، وسر العميل. بالنسبة لمزوّدي الخدمات الآخرين، أدخل أيضاً اسم الزر ولون الزر لزر تسجيل الدخول. - استخدام اسم المستخدم المفضّل (GitLab والمزوّدات الأخرى) يأخذ اسم مستخدم Antimatter من ادعاء
preferred_usernameالخاص بالمزوّد. - احفظ التغييرات، وسجّل الخروج، ثم جرّب الزر الجديد في صفحة تسجيل الدخول.
تُخزَّن الإعدادات في OpenIdSettings، أو GitLabSettings، أو GoogleSettings، أو Office365Settings (على سبيل المثال AM_OPENIDSETTINGS_ENABLE، AM_OPENIDSETTINGS_DISCOVERYENDPOINT، AM_OPENIDSETTINGS_ID، AM_OPENIDSETTINGS_SECRET). يطلب خيار Additional Scopes (AM_OPENIDSETTINGS_ADDITIONALSCOPES) من مزوّد الخدمة نطاقات OAuth إضافية، مفصولة بمسافات، بالإضافة إلى النطاقات الافتراضية. لا تظهر صفحة OAuth 2.0 القديمة إلا للخوادم التي لا تزال تحتوي على تكوين OAuth 2.0 لـ GitLab أو Google أو Entra ID.
بالنسبة لـ OpenID Connect العادي (وليس GitLab أو Google أو Entra ID)، فإن تسجيل الدخول يقوم أيضاً بمزامنة سمات المستخدم التي ربطتها بمطالبة (Claim): يقرأ Antimatter رمز المعرّف (ID token) واستجابة userinfo (تستجيب userinfo للمطالبة عند وجودها في كليهما)، ويحاول أولاً مطابقة اسم المطالبة كمفتاح رئيسي واحد، ثم كمفاتيح متداخلة مفصولة بنقاط (على سبيل المثال address.country) إذا لم تتم أي مطابقة. المطالبة غير الموجودة في الاستجابة تُمسح السمة المرتبطة بها، حيث يُعامل مزوّد الخدمة كمصدر للحقيقة لما يقوم بمزامنته. هذا الخيار مُفعّل افتراضياً؛ يمكنك تعطيله باستخدام AM_FEATUREFLAGS_OPENIDATTRIBUTESYNC=false.
SAML 2.0
في وحدة التحكم بالنظام › المصادقة › SAML 2.0، فعّل تفعيل تسجيل الدخول باستخدام SAML 2.0 (SamlSettings.Enable) وأدخل البيانات التي يوفرها لك مزوّد الهوية: عنوان URL بيانات مزوّد الهوية الوصفية، أو عنوان URL تسجيل الدخول الموحد SSO، وعنوان URL المُصدِر لمزوّد الهوية، وشهادة مزوّد الهوية العامة. من جانب مزوّد الهوية:
- رابط تسجيل الدخول لمزوّد الخدمة (خدمة مستهلك المصادقة):
https://chat.example.com/login/sso/saml؛ - بيانات Antimatter، للمزوّدات التي تستوردها:
https://chat.example.com/api/v4/saml/metadata.
اربط السمات التي يرسلها مزود الخدمة: على الأقل سمة البريد الإلكتروني وخاصية اسم المستخدم، واختياريًا سمات المعرّف، والاسم الأول، واسم العائلة، واللقب، والمنصب، واللغة، وسمات الضيف والمدير. خيارا التحقق من التوقيع وتفعيل التشفير مُفعّلان افتراضيًا (يتطلب التشفير مفتاحًا وشهادة لمزود الخدمة؛ حيث لا يتم دعم سوى مفاتيح RSA)؛ بينما خيار توقيع الطلب معطّل. تكون خوارزمية التوقيع افتراضيًا RSAwithSHA256.
AD/LDAP
في وحدة التحكم بالنظام › المصادقة › AD/LDAP، تربط صفحة خطوة بخطوة Antimatter بـ Active Directory أو خادم LDAP آخر: الخادم والمنفذ (LdapSettings.LdapServer، LdapSettings.LdapPort، 389 افتراضيًا)، وأمان الاتصال (لا شيء، TLS أو STARTTLS)، وDN الأساسي وحساب الربط (BaseDN، BindUsername، BindPassword)، وفلاتر المستخدمين والضيوف والمديرين والمجموعات، والسمات للبريد الإلكتروني واسم المستخدم والمعرّف والأسماء والصورة. ثم يسجّل الأشخاص دخولهم باستخدام بيانات تسجيل الدخول الخاصة بهم في الدليل.
تُنفَّذ مهمة مزامنة كل 60 دقيقة (LdapSettings.SyncIntervalMinutes) لتحديث الأسماء وإلغاء تفعيل الأشخاص المُحذوفين من الدليل؛ نفّذها الآن باستخدام amctl ldap sync. يمكن ربط مجموعات LDAP بالمجتمعات والقنوات في وحدة التحكم بالنظام › إدارة المستخدمين › المجموعات. كما يمكن الحفاظ على مزامنة حسابات SAML مع AD/LDAP (تفعيل مزامنة حسابات SAML مع AD/LDAP).
تتم مزامنة سمات الملف الشخصي المخصصة المرتبطة بخاصية AD/LDAP أو SAML في وحدة التحكم بالنظام › خصائص النظام بالطريقة نفسها من كليهما: تُنسخ قيمة السمة النصية كما يرسلها الدليل أو تأكيد الهوية، بحد أقصى 64 حرفًا (تؤدي القيمة الأطول إلى مسح السمة بدلاً من اقتطاعها)؛ أما قيمة سمة الاختيار أو الاختيار المتعدد فتُطابق مع خيار موجود بغض النظر عن حالة الأحرف، مع الحفاظ على تهجئة الخيار نفسه، ويُنشأ خيار جديد عند عدم وجود تطابق. تُحذف الخيارات التي لا يحملها أحد بعد الآن، ولا يمكن تغيير قائمة خيارات السمة المتزامنة إلا بواسطة المزامنة التي تمتلكها، وليس يدويًا في وحدة التحكم بالنظام.
نقل الحسابات الموجودة
لتحويل الحسابات البريدية الموجودة إلى الدخول الموحّد، يُستخدم الأمر amctl user migrate-auth email saml users.json (أو ldap) لنقلها دفعةً واحدة. كما يمكن للمستخدم تغيير طريقة تسجيل الدخول الخاصة به من إعدادات الأمان لديه إذا كان الخيار السماح بنقل المصادقة (ServiceSettings.ExperimentalEnableAuthenticationTransfer، الموجود في وحدة التحكم بالنظام › تجريبية › الميزات) مفعّلًا.
حسابات الضيوف
الضيوف هم أشخاص من خارج مؤسستك لا يمكنهم رؤية سوى القنوات التي تمت دعوتهم إليها. فعّلهم من وحدة التحكم بالنظام › المصادقة › وصول الضيوف:
| الإعداد | المفتاح | الافتراضي |
|---|---|---|
| تفعيل وصول الضيوف | GuestAccountsSettings.Enable | معطّل |
| نطاقات الضيوف المسموح بها | GuestAccountsSettings.RestrictCreationToDomains | فارغ: يمكن أن يكون لدى الضيوف أي نطاق بريد إلكتروني |
| فرض المصادقة متعددة العوامل | GuestAccountsSettings.EnforceMultifactorAuthentication | معطّل؛ متاح فقط عند تفعيل المصادقة متعددة العوامل وفرضها على الجميع |
| إخفاء وسم الضيف | GuestAccountsSettings.HideTags | معطّل: يظهر وسم "ضيف" بجانب اسمهم |
بمجرد تفعيله، يدعوا مسؤولو المجتمع الضيوف إلى قنوات محددة. يمكن للمديرين تحويل العضو إلى ضيف باستخدام amctl user demote، وتحويل الضيف إلى عضو باستخدام amctl user promote.
الجلسات
تُضبط مدة بقاء المستخدمين مسجّلين الدخول في وحدة التحكم بالنظام › البيئة › مدة الجلسة:
| الإعداد | المفتاح | الافتراضي على خادم جديد |
|---|---|---|
| تمديد مدة الجلسة مع النشاط | ServiceSettings.ExtendSessionLengthWithActivity | مفعّل: تُجدَّد الجلسات أثناء استخدام الأشخاص لـ Antimatter |
| مدة الجلسة لـ AD/LDAP والبريد الإلكتروني (بالساعات) | ServiceSettings.SessionLengthWebInHours | 720 ساعة (30 يومًا) |
| مدة الجلسة للجوال (ساعات) | ServiceSettings.SessionLengthMobileInHours | 720 ساعة |
| مدة الجلسة SSO (بالساعات) | ServiceSettings.SessionLengthSSOInHours | 720 ساعة |
| مهلة الخمول للجلسة (دقائق) | ServiceSettings.SessionIdleTimeoutInMinutes | 43200 دقيقة (30 يومًا)؛ يظهر فقط عندما لا يتم تمديد الجلسات بالنشاط |
| إنهاء الجلسات عند تغيير كلمة المرور | ServiceSettings.TerminateSessionsOnPasswordChange | مفعّل |
لإلغاء تسجيل الجميع في وقت واحد، استخدم إلغاء جميع الجلسات في وحدة التحكم بالنظام › إدارة المستخدمين › المستخدمون. لإلغاء تسجيل شخص واحد، افتح صفحته هناك.