登入與帳號
決定誰可以建立帳號,以及人們如何登入。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。在 系統控制台 › 驗證 › 多因子驗證 中:
- 啟用多因子驗證(
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…)。
- 在您的提供者中,建立一個 Web 類型的應用程式(「客戶端」),並使用您站點網址對應的此重定向 URI:
提供者 重定向 URI 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 中,填寫 探索端點(提供者的
/.well-known/openid-configurationURL;對於 GitLab,則填寫 GitLab 站點網址)、客戶端 ID 與 客戶端金鑰。對於其他提供者,也需填寫登入按鈕的 按鈕名稱 與 按鈕顏色。 - 使用偏好使用者名稱(GitLab 及其他提供者)會從提供者的
preferred_username聲明中取得 Antimatter 使用者名稱。 - 儲存後登出,並嘗試登入頁面上的新按鈕。
這些設定儲存在 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.SessionLengthWebInHours | 720 小時(30 天) |
| 工作階段長度(手機版,小時) | ServiceSettings.SessionLengthMobileInHours | 720 小時 |
| 工作階段長度(SSO,小時) | ServiceSettings.SessionLengthSSOInHours | 720 小時 |
| 工作階段閒置時間(分) | ServiceSettings.SessionIdleTimeoutInMinutes | 43200 分鐘(30 天);僅在工作階段不會因活動而延長時顯示 |
| 更換密碼時終結所有的工作階段 | ServiceSettings.TerminateSessionsOnPasswordChange | 開啟 |
若要讓所有人都登出,請使用 系統控制台 › 使用者管理 › 使用者 中的 廢除所有工作階段。若要讓特定使用者登出,請在那裡開啟該使用者的頁面。