ورود به سیستم و حسابها
تصمیم بگیرید چه کسانی میتوانند حساب کاربری ایجاد کنند و افراد چگونه وارد سیستم میشوند. تمام روشهای ورود به سیستم Antimatter بدون نیاز به لایسنس کار میکنند، از جمله ورود یکپارچه (SSO) و دایرکتوریها.
چه کسانی میتوانند حساب کاربری ایجاد کنند
بلافاصله پس از نصب، کنسول سیستم › احراز هویت › ثبت نام را بررسی کنید. با تنظیمات پیشفرض، هر کسی که لینک دعوت به یک جامعه (Community) داشته باشد میتواند حساب کاربری ایجاد کند، اما هیچکس بدون دعوتنامه نمیتواند ثبت نام کند.
| تنظیم | کلید | مقدار پیشفرض | عملکرد |
|---|---|---|---|
| فعال کردن ایجاد حساب کاربری | TeamSettings.EnableUserCreation | روشن | خاموش: هیچکس نمیتواند با هیچ روشی حساب کاربری ایجاد کند؛ تنها مدیران میتوانند این کار را انجام دهند (از طریق کنسول سیستم یا amctl user create). |
| فعال کردن Open Server | TeamSettings.EnableOpenServer | خاموش | روشن: هر کسی که به سرور دسترسی داشته باشد میتواند با یک آدرس ایمیل و بدون دعوتنامه ثبت نام کند. فقط از این گزینه برای جوامع عمومی استفاده کنید. |
| محدود کردن اعضای جدید سیستم و تیم به دامنههای ایمیل مشخص | TeamSettings.RestrictCreationToDomains | خالی | دامنهها را با کاما از هم جدا کنید، به عنوان مثال example.com, example.org: تنها آدرسهایی با این دامنهها میتوانند حساب کاربری ایجاد کنند. |
| فعال کردن دعوت نامه های ایمیل | ServiceSettings.EnableEmailInvitations | در سرور جدید خاموش است | به اعضا اجازه میدهد افراد را از طریق ایمیل دعوت کنند (نیاز به SMTP). دعوت نامه های معلق را باطل کنید دعوتنامههایی که هنوز پذیرفته نشدهاند را لغو میکند؛ به هر حال پس از ۴۸ ساعت منقضی میشوند. |
مدیران جامعه (Community) نیز کنترل میکنند چه کسانی به جامعه آنها میپیوندند، از طریق لینکهای دعوت و دامنههای مجاز خودشان: راهنمای اجرای یک جامعه را ببینید.
از خط فرمان: amctl user create (گزینه --system-admin یا --guest را اضافه کنید)، amctl user invite، amctl user deactivate، amctl roles system-admin <user> برای تبدیل کسی به مدیر سیستم، و amctl roles member <user> برای لغو این وضعیت.
ایمیل و رمز عبور
در کنسول سیستم › احراز هویت › پست الکترونیک:
| تنظیم | کلید | مقدار پیشفرض |
|---|---|---|
| فعال کردن ایجاد حساب با ایمیل | EmailSettings.EnableSignUpWithEmail | روشن. اگر همه از طریق ورود یکپارچه (SSO) وارد سیستم میشوند، آن را خاموش کنید. |
| نیاز به تایید ایمیل | EmailSettings.RequireEmailVerification | خاموش. پس از اینکه ایمیل به درستی کار کرد، آن را روشن کنید: در این صورت افراد باید قبل از ورود به سیستم، آدرس ایمیل خود را تأیید کنند. |
| فعال کردن ورود به سیستم با ایمیل | EmailSettings.EnableSignInWithEmail | روشن |
| فعال کردن ورود با نام کاربری | EmailSettings.EnableSignInWithUsername | روشن |
در کنسول سیستم › احراز هویت › رمز:
| تنظیم | کلید | مقدار پیشفرض |
|---|---|---|
| حداقل طول رمز عبور | PasswordSettings.MinimumLength | ۸ (بین ۵ تا ۷۲) |
| الزامات رمز عبور: حرف کوچک، حرف بزرگ، عدد، نماد | PasswordSettings.Lowercase, .Uppercase, .Number, .Symbol | همه خاموش |
| حداکثر تلاش برای ورود به سیستم | ServiceSettings.MaximumLoginAttempts | ۱۰: پس از این تعداد خطا، حساب کاربری تا زمانی که رمز عبور آن از طریق ایمیل بازنشانی نشود، قفل میماند. |
| فعالسازی پیوند فراموشی رمز عبور | PasswordSettings.EnableForgotLink | روشن |
طول ۱۲ کاراکتر یا بیشتر، امنیت را بیشتر از قوانین مربوط به نوع کاراکترها افزایش میدهد. برای بازنشانی رمز عبور یک کاربر: کنسول سیستم › مدیریت کاربر › کاربران، یا amctl user change-password <user> --password <new>.
احراز هویت چند عاملی
احراز هویت چند عاملی (MFA) یک کد از برنامه احراز هویت را به رمز عبور اضافه میکند. این روش برای حسابهایی که با ایمیل یا AD/LDAP وارد میشوند اعمال میشود؛ در صورت استفاده از ورود یکپارچه (SSO)، از MFA ارائهدهنده هویت خود استفاده کنید. در کنسول سیستم › احراز هویت › MFA:
- احراز هویت چند عاملی را فعال کنید (
ServiceSettings.EnableMultifactorAuthentication، خاموش): کاربران میتوانند MFA را در تنظیمات امنیتی خود فعال کنند. - اجرای احراز هویت چند عاملی (
ServiceSettings.EnforceMultifactorAuthentication، خاموش): همه کاربران باید آن را تنظیم کنند، در زمان ثبتنام یا در ورود بعدی خود.
اگر کسی دستگاه خود را از دست بدهد: amctl user resetmfa <user>، یا آن را از صفحه کاربر در کنسول سیستم › مدیریت کاربر › کاربران بازنشانی کنید.
ورود یکپارچه (SSO)
Antimatter میتواند کاربران را از طریق ارائهدهنده هویت شما وارد سیستم کند. در اولین ورود، اگر ایجاد حساب مجاز باشد، از نام، ایمیل و نام کاربری ارسالشده توسط ارائهدهنده، حساب آنها را ایجاد میکند.
OpenID Connect، GitLab، Google و Entra ID
به کنسول سیستم › احراز هویت › اتصال OpenID بروید و در بخش انتخاب ارائهدهنده سرویس گزینههای GitLab، Google Apps، Entra ID (Office 365) یا OpenID Connect (Other) را برای سایر ارائهدهندگان (Keycloak، Authentik، Zitadel، Okta، Auth0…) انتخاب کنید.
- در ارائهدهنده خود، یک برنامه (یک "کلاینت") از نوع وب با این URI تغییر مسیر، برای آدرس سایت خود ایجاد کنید:
ارائهدهنده URI تغییر مسیر OpenID Connect (Other) 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، Discovery Endpoint (آدرس
/.well-known/openid-configurationارائهدهنده؛ برای GitLab، به جای آن آدرس سایت GitLab)، شناسه کلاینت و رمز کلاینت را وارد کنید. برای سایر ارائهدهندگان، نام دکمه و رنگ دکمه ورود را نیز وارد کنید. - استفاده از Preferred Username (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 توکن شناسه و پاسخ userinfo را میخواند (اگر هر دو شامل یک ادعا باشند، userinfo اولویت دارد)، ابتدا نام ادعا را به عنوان یک کلید سطح بالا به صورت تکی بررسی میکند و اگر تطابقی یافت نشد، آن را به صورت تودرتو با جداکننده نقطه (به عنوان مثال address.country) بررسی میکند. اگر پاسخی شامل ادعایی نباشد، ویژگی متصل به آن پاک میشود، زیرا ارائهدهنده به عنوان منبع حقیقت برای آنچه همگامسازی میکند در نظر گرفته میشود. این قابلیت به طور پیشفرض فعال است؛ با AM_FEATUREFLAGS_OPENIDATTRIBUTESYNC=false آن را غیرفعال کنید.
SAML 2.0
در کنسول سیستم › احراز هویت › SAML 2.0، گزینه فعال کردن ورود با SAML 2.0 (SamlSettings.Enable) را روشن کنید و مواردی که ارائهدهنده هویت شما ارائه میدهد را وارد کنید: URL فراداده ارائه دهنده هویت، یا نشانی اینترنتی SAML SSO، نشانی اینترنتی صادرکننده ارائه دهنده هویت و گواهی عمومی ارائه دهنده هویت. در سمت ارائهدهنده هویت:
- نشانی اینترنتی ورود ارائهدهنده خدمات (سرویس مصرفکننده ادعا):
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، بهطور پیشفرض ۳۸۹)، امنیت اتصال (هیچکدام، TLS یا STARTTLS)، DN پایه و یک حساب برای اتصال (BaseDN، BindUsername، BindPassword)، فیلترها برای کاربران، مهمانها، مدیران و گروهها، و ویژگیهای مربوط به ایمیل، نام کاربری، شناسه، نامها و تصویر. سپس افراد با نام کاربری و رمز عبور خود در پوشه (Directory) وارد میشوند.
یک کار همگامسازی هر ۶۰ دقیقه یکبار اجرا میشود (LdapSettings.SyncIntervalMinutes) تا نامها بهروزرسانی شوند و افرادی که از پوشه حذف شدهاند غیرفعال شوند؛ برای اجرای فوری آن از amctl ldap sync استفاده کنید. گروههای LDAP را میتوان در کنسول سیستم › مدیریت کاربر › گروه ها به جوامع و کانالها پیوند داد. همچنین میتوان حسابهای SAML را با AD/LDAP همگام نگه داشت (فعال کردن همگام سازی حساب های SAML با AD/LDAP).
ویژگیهای سفارشی پروفایل که به یک ویژگی AD/LDAP یا SAML نگاشت شدهاند، در کنسول سیستم › ویژگیهای سیستم، به همان روش از هر دو همگام میشوند: مقدار یک ویژگی متنی همانطور که توسط پوشه یا ادعا (Assertion) ارسال میشود کپی میشود، تا حداکثر ۶۴ کاراکتر (مقدار طولانیتر باعث پاک شدن ویژگی میشود و نه کوتاه شدن آن)؛ مقدار یک ویژگی انتخابی یا چندانتخابی با یک گزینه موجود تطبیق داده میشود، صرفنظر از بزرگی یا کوچکی حروف، و املای خود آن گزینه حفظ میشود، و اگر هیچ گزینهای تطبیق داده نشود، یک گزینه جدید ایجاد میشود. گزینههایی که دیگر هیچکس آنها را ندارد حذف میشوند، و لیست گزینههای یک ویژگی همگامشده تنها توسط همان همگامسازی که آن را در اختیار دارد تغییر میکند، نه بهصورت دستی در کنسول سیستم.
انتقال حسابهای موجود
برای تغییر حسابهای ایمیل موجود به ورود یکپارچه (SSO)، دستور amctl user migrate-auth email saml users.json (یا ldap) آنها را بهصورت دستهای منتقل میکند. کاربر همچنین میتواند روش ورود خود را در تنظیمات امنیتیاش تغییر دهد، زمانی که اجازه انتقال احراز هویت (ServiceSettings.ExperimentalEnableAuthenticationTransfer، در کنسول سیستم › تجربی › امکانات) روشن باشد.
حسابهای مهمان
مهمانها افرادی خارج از سازمان شما هستند که تنها کانالهایی را میبینند که به آنها دعوت شدهاند. آنها را در کنسول سیستم › احراز هویت › دسترسی مهمان فعال کنید:
| تنظیم | کلید | مقدار پیشفرض |
|---|---|---|
| فعال کردن دسترسی مهمان | GuestAccountsSettings.Enable | خاموش |
| دامنه های مهمان در لیست سفید | GuestAccountsSettings.RestrictCreationToDomains | خالی: مهمانها میتوانند هر دامنه ایمیلی داشته باشند |
| اجرای احراز هویت چند عاملی | GuestAccountsSettings.EnforceMultifactorAuthentication | خاموش؛ تنها زمانی در دسترس است که MFA برای همه فعال و اجباری شده باشد |
| پنهان کردن برچسب مهمان | 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 | روشن |
برای خروج همه کاربران بهطور همزمان، از لغو همه جلسات در کنسول سیستم › مدیریت کاربر › کاربران استفاده کنید. برای خروج یک نفر، صفحه او را در همان بخش باز کنید.