ورود به سیستم و حساب‌ها

تصمیم بگیرید چه کسانی می‌توانند حساب کاربری ایجاد کنند و افراد چگونه وارد سیستم می‌شوند. تمام روش‌های ورود به سیستم Antimatter بدون نیاز به لایسنس کار می‌کنند، از جمله ورود یکپارچه (SSO) و دایرکتوری‌ها.

چه کسانی می‌توانند حساب کاربری ایجاد کنند

بلافاصله پس از نصب، کنسول سیستم › احراز هویت › ثبت نام را بررسی کنید. با تنظیمات پیش‌فرض، هر کسی که لینک دعوت به یک جامعه (Community) داشته باشد می‌تواند حساب کاربری ایجاد کند، اما هیچ‌کس بدون دعوت‌نامه نمی‌تواند ثبت نام کند.

تنظیمکلیدمقدار پیش‌فرضعملکرد
فعال کردن ایجاد حساب کاربریTeamSettings.EnableUserCreationروشنخاموش: هیچ‌کس نمی‌تواند با هیچ روشی حساب کاربری ایجاد کند؛ تنها مدیران می‌توانند این کار را انجام دهند (از طریق کنسول سیستم یا amctl user create).
فعال کردن Open ServerTeamSettings.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…) انتخاب کنید.

  1. در ارائه‌دهنده خود، یک برنامه (یک "کلاینت") از نوع وب با این URI تغییر مسیر، برای آدرس سایت خود ایجاد کنید:
    ارائه‌دهندهURI تغییر مسیر
    OpenID Connect (Other)https://chat.example.com/signup/openid/complete
    GitLabhttps://chat.example.com/signup/gitlab/complete
    Googlehttps://chat.example.com/signup/google/complete
    Entra IDhttps://chat.example.com/signup/office365/complete
  2. در Antimatter، Discovery Endpoint (آدرس /.well-known/openid-configuration ارائه‌دهنده؛ برای GitLab، به جای آن آدرس سایت GitLab)، شناسه کلاینت و رمز کلاینت را وارد کنید. برای سایر ارائه‌دهندگان، نام دکمه و رنگ دکمه ورود را نیز وارد کنید.
  3. استفاده از Preferred Username (GitLab و سایر ارائه‌دهندگان) نام کاربری Antimatter را از ادعای preferred_username ارائه‌دهنده می‌گیرد.
  4. ذخیره کنید، از سیستم خارج شوید و دکمه جدید را در صفحه ورود امتحان کنید.

تنظیمات در 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.SessionLengthWebInHours720 ساعت (30 روز)
مدت زمان نشست موبایل (ساعت)ServiceSettings.SessionLengthMobileInHours720 ساعت
مدت نشست SSO (ساعت)ServiceSettings.SessionLengthSSOInHours720 ساعت
زمان توقف جلسه (دقیقه)ServiceSettings.SessionIdleTimeoutInMinutes43200 دقیقه (30 روز)؛ فقط زمانی نمایش داده می‌شود که جلسات با فعالیت تمدید نشوند
لغو نشست‌ها هنگام تغییر رمز عبورServiceSettings.TerminateSessionsOnPasswordChangeروشن

برای خروج همه کاربران به‌طور همزمان، از لغو همه جلسات در کنسول سیستم › مدیریت کاربر › کاربران استفاده کنید. برای خروج یک نفر، صفحه او را در همان بخش باز کنید.