登入與帳號

決定誰可以建立帳號,以及人們如何登入。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.MinimumLength8(5 至 72)
密碼要求:小寫、大寫、數字、符號PasswordSettings.Lowercase, .Uppercase, .Number, .Symbol全部關閉
最大登入嘗試次數ServiceSettings.MaximumLoginAttempts10:超過此數量的失敗次數後,帳戶將被鎖定,直到透過電子郵件重設密碼為止
啟用忘記密碼連結PasswordSettings.EnableForgotLink開啟

長度達 12 個字元以上,比字元規則更能提升安全性。若要為某人重設密碼:系統控制台 › 使用者管理 › 使用者,或執行 amctl user change-password <user> --password <new>。

多因子驗證

多因子驗證(MFA)會在密碼之外,加入來自驗證應用程式的代碼。它適用於使用電子郵件或 AD/LDAP 登入的帳戶;若使用單一登入,請使用您的身分提供者之 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…)。

  1. 在您的提供者中,建立一個 Web 類型的應用程式(「客戶端」),並使用您站點網址對應的此重定向 URI:
    提供者重定向 URI
    OpenID Connect(其它)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 中,填寫 探索端點(提供者的 /.well-known/openid-configuration URL;對於 GitLab,則填寫 GitLab 站點網址)、客戶端 ID 與 客戶端金鑰。對於其他提供者,也需填寫登入按鈕的 按鈕名稱 與 按鈕顏色。
  3. 使用偏好使用者名稱(GitLab 及其他提供者)會從提供者的 preferred_username 聲明中取得 Antimatter 使用者名稱。
  4. 儲存後登出,並嘗試登入頁面上的新按鈕。

這些設定儲存在 OpenIdSettings、GitLabSettings、GoogleSettings 或 Office365Settings 中(例如 AM_OPENIDSETTINGS_ENABLE、AM_OPENIDSETTINGS_DISCOVERYENDPOINT、AM_OPENIDSETTINGS_ID、AM_OPENIDSETTINGS_SECRET)。舊版的 OAuth 2.0 頁面僅出現在仍保留 OAuth 2.0 GitLab、Google 或 Entra ID 設定的伺服器上。

SAML 2.0

在 系統控制台 › 驗證 › SAML 2.0 中,開啟 啟用 SAML 2.0 登入(SamlSettings.Enable),並填入身分識別提供者提供的資訊:身分識別提供者後設資料網址,或 SAML SSO網址、身分識別提供者核發者網址 以及 身分識別提供者公開憑證。在身分識別提供者端:

  • 服務提供者登入網址(斷言消費者服務):https://chat.example.com/login/sso/saml;
  • Antimatter 的後設資料,供需要匯入的提供者使用:https://chat.example.com/api/v4/saml/metadata。

對應您的提供者所傳送的屬性:至少需要 電子郵件屬性 和 使用者名稱屬性,並可選配 ID、名字、姓氏、暱稱、職位、語言、訪客和管理員屬性。核對簽章 和 啟用加密 預設為開啟(加密需要服務提供者的金鑰和憑證;僅支援 RSA 金鑰);簽署請求 預設為關閉。簽章演算法預設為 RSAwithSHA256。

AD/LDAP

在 系統控制台 › 驗證 › AD/LDAP 中,逐步引導頁面將 Antimatter 連接到 Active Directory 或其他 LDAP 伺服器:伺服器與埠號(LdapSettings.LdapServer、LdapSettings.LdapPort,預設為 389)、連線安全性(無、TLS 或 STARTTLS)、基礎 DN 和繫結帳號(BaseDN、BindUsername、BindPassword)、用於使用者、訪客、管理員和群組的過濾器,以及電子郵件、使用者名稱、ID、姓名和照片的屬性。使用者隨後可使用目錄登入憑證登入。

同步作業每 60 分鐘執行一次(LdapSettings.SyncIntervalMinutes),以更新姓名並停用從目錄中移除的使用者;您可以使用 amctl ldap sync 立即執行。LDAP 群組可在 系統控制台 › 使用者管理 › 群組 中與社群和頻道連結。SAML 帳號也可以與 AD/LDAP 保持同步(啟用與 AD/LDAP 同步 SAML 帳號)。

遷移現有帳號

若要將現有的 Email 帳號切換為單一登入,可使用 amctl user migrate-auth email saml users.json(或 ldap)進行批量遷移。當 允許轉移驗證(ServiceSettings.ExperimentalEnableAuthenticationTransfer,位於 系統控制台 › 實驗性 › 功能)開啟時,使用者也可以在自己的安全設定中變更登入方式。

訪客帳號

訪客是組織外部的人員,只能看到被邀請加入的頻道。請在 系統控制台 › 驗證 › 訪客存取 中開啟:

設定金鑰預設值
啟用訪客存取GuestAccountsSettings.Enable關閉
訪客網域白名單GuestAccountsSettings.RestrictCreationToDomains留空:訪客可使用任何 Email 網域
強制使用多因子驗證GuestAccountsSettings.EnforceMultifactorAuthentication關閉;僅在多因子驗證已啟用並對所有人強制執行時可用
隱藏訪客標籤GuestAccountsSettings.HideTags關閉:其姓名旁會顯示「訪客」標籤

開啟後,社群管理員可邀請訪客加入特定頻道。管理員可使用 amctl user demote 將成員降級為訪客,或使用 amctl user promote 將訪客升級為成員。

工作階段

使用者保持登入的時間長度可在 系統控制台 › 環境 › 工作階段長度 中設定:

設定金鑰新伺服器的預設值
使用者活動可延長其工作階段ServiceSettings.ExtendSessionLengthWithActivity開啟:當使用者使用 Antimatter 時,工作階段會自動續期
工作階段長度(AD/LDAP 及 Email 登入,小時)ServiceSettings.SessionLengthWebInHours720 小時(30 天)
工作階段長度(手機版,小時)ServiceSettings.SessionLengthMobileInHours720 小時
工作階段長度(SSO,小時)ServiceSettings.SessionLengthSSOInHours720 小時
工作階段閒置時間(分)ServiceSettings.SessionIdleTimeoutInMinutes43200 分鐘(30 天);僅在工作階段不會因活動而延長時顯示
更換密碼時終結所有的工作階段ServiceSettings.TerminateSessionsOnPasswordChange開啟

若要讓所有人都登出,請使用 系統控制台 › 使用者管理 › 使用者 中的 廢除所有工作階段。若要讓特定使用者登出,請在那裡開啟該使用者的頁面。