การเข้าสู่ระบบและบัญชี
กำหนดว่าใครสามารถสร้างบัญชีได้ และผู้คนจะเข้าสู่ระบบอย่างไร ทุกวิธีการเข้าสู่ระบบของ Antimatter ทำงานได้โดยไม่ต้องใช้ใบอนุญาต รวมถึงการเข้าสู่ระบบแบบเดียว (single sign-on) และไดเรกทอรี
ใครสามารถสร้างบัญชีได้
ทันทีหลังจากติดตั้ง ให้ตรวจสอบ คอนโซลระบบ › การยืนยันตัวตน › การสมัครสมาชิก ด้วยค่าเริ่มต้น ทุกคนที่มีลิงก์เชิญไปยังชุมชนสามารถสร้างบัญชีได้ แต่ไม่มีใครสามารถสมัครได้หากไม่มีลิงก์เชิญ
| การตั้งค่า | คีย์ | ค่าเริ่มต้น | สิ่งที่ทำ |
|---|---|---|---|
| เปิดใช้งานการสร้างบัญชี | 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 | เปิด: ปิดเมื่อทุกคนเข้าสู่ระบบผ่าน single sign-on |
| กำหนดให้ต้องยืนยันอีเมล | 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>, หรื้อรีเซตจากหน้าของเขาใน คอนโซลระบบ › การจัดการผู้ใช้งาน › ผู้ใช้งาน.
การเข้าสู่ระบบแบบ single sign-on
Antimatter สามารถให้ผู้ใช้เข้าสู่ระบบผ่านผู้ให้บริการตัวตนของคุณได้ เมื่อเข้าสู่ระบบเป็นครั้งแรก ระบบจะสร้างบัญชี (หากอนุญาตให้สร้างบัญชี) จากชื่อ อีเมล และชื่อผู้ใช้ที่ผู้ให้บริการส่งมา
OpenID Connect, GitLab, Google และ Entra ID
ไปที่ คอนโซลระบบ › การยื้่นยันตวั้ตวั้ › OpenID Connect, และเลืือกภายใต้ เลืือกผู้ให้บริการ: GitLab, Google Apps, Entra ID (Office 365) หรื้อ OpenID Connect (อื่่นๆ) ให้ผู้ให้บริการอื่่น (Keycloak, Authentik, Zitadel, Okta, Auth0…).
- ในผู้ให้บริการของคุณ สร้างแอปพลิเคชัน ("client") ประเภท web โดยใช้ redirect URI นี้ สำหรับ URL ของเว็บไซต์คุณ:
ผู้ให้บริการ Redirect 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 (URL ของผู้ให้บริการ
/.well-known/openid-configuration; อย่่า GitLab, ใส้ URL ของไซต์ GitLab แทน), Client ID และ Client Secret. ให้ผู้ให้บริการอื่่น, ใส้ ชื่่อปุ่่ม และ สีของปุ่่ม ของปุ่่มเข้้าใช้งาน. - ใช้ Preferred Username (GitLab และผู้ให้บริการอื่น) จะนำชื่อผู้ใช้ของ Antimatter มาจาก claim
preferred_usernameของผู้ให้บริการ - บันทึก ออกจากระบบ แล้วลองใช้ปุ่มใหม่บนหน้าเข้าสู่ระบบ
การตั้งค่าถูกจัดเก็บใน 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) และใส้สิ่่งท่ีผู้ให้บริการการยื้่นยันตวั้ตวั้ให้: URL ข้อมูลเมตา (Metadata) ของ Identity Provider, หรื้อ URL SAML SSO, URL ผู้ส่่ง (Issuer) ของ Identity Provider และ ใบรบัรองสาธารณะของ Identity Provider. อย่่าด้านของ Identity Provider:
- Service Provider Login URL (assertion consumer service):
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), base DN และบัญชีสำหรับ bind (BaseDN, BindUsername, BindPassword), ตัวกรองสำหรับผู้ใช้, แขก, ผู้ดูแลระบบ และกลุ่ม และแอตทริบิวต์สำหรับอีเมล, ชื่อผู้ใช้, ID, ชื่อ และรูปภาพ จากนั้นผู้ใช้จะเข้าสู่ระบบด้วยชื่อผู้ใช้ในไดเรกทอรี
งานซิงโครไนซ์จะทำงานทุก 60 นาที (LdapSettings.SyncIntervalMinutes) เพื่ออัปเดตชื่อและปิดใช้งานผู้ที่ถูกนำออกจากไดเรกทอรี; รันงานนี้ทันทีด้วย amctl ldap sync กลุ่ม LDAP สามารถเชื่อมโยงกับชุมชนและช่องใน คอนโซลระบบ › การจัดการผ้้ใช้ › กลุ่่ม บัญชี SAML สามารถซิงค์กับ AD/LDAP ได้เช่นกัน (เปิดใช้การซิงค์บัญชี SAML กัับ AD/LDAP)
การย้ายบัญชีที่มีอยู่
เพื่อเปลี่ยนบัญชีอีเมลที่มีอยู่เป็น single sign-on, amctl user migrate-auth email saml users.json (หรือ ldap) จะย้ายบัญชีเหล่านั้นเป็นชุด ผู้ใช้ยังสามารถเปลี่ยนวิธีการเข้าสู่ระบบของตัวเองในการตั้งค่าความปลอดภัยได้เมื่อ อนุญาตการโอนย้ายการยืนยันตัวตน (ServiceSettings.ExperimentalEnableAuthenticationTransfer, ใน คอนโซลระบบ › ทดลอง › ฟีเจอร์) เปิดใช้งานอยู่
บัญชีแขก
แขกคือบุคคลจากภายนอกองค์กรที่เห็นเฉพาะช่องที่ถูกเชิญเท่านั้น เปิดใช้งานได้ใน คอนโซลระบบ › การยืนยันตัวตน › การเข้้าถึงสำหรบัแขก:
| การตั้งค่า | คีย์ | ค่าเริ่มต้น |
|---|---|---|
| เปิ ดการเข้ าถึงของแขก | GuestAccountsSettings.Enable | ปิด |
| โดเมนแขกที่ไดร้การอนุญาติ | GuestAccountsSettings.RestrictCreationToDomains | ว่าง: แขกสามารถใช้โดเมนอีเมลใดก็ได้ |
| บังคับใช้การยืนยันตัวตนหลายปัจจัย (MFA) | GuestAccountsSettings.EnforceMultifactorAuthentication | ปิด; ใช้ได้เฉพาะเมื่อเปิดใช้งานและบังคับใช้ MFA สำหรับทุกคน |
| ซ่อนป้ายแขก | GuestAccountsSettings.HideTags | ปิด: จะแสดงป้าย "guest" ข้างชื่อของพวกเขา |
เมื่อเปิดใช้งานแล้ว ผู้ดูแลชุมชนจะเชิญแขกเข้าร่วมช่องเฉพาะเจาะจง ผู้ดูแลระบบสามารถเปลี่ยนสมาชิกลงเป็นแขกด้วย amctl user demote และเปลี่ยนแขกขึ้นเป็นสมาชิกด้วย amctl user promote
เซสชัน
ระยะเวลาที่ผู้ใช้จะยังคงเข้าสู่ระบบได้ตั้งค่าใน คอนโซลระบบ › สภาพแวดล้อง › ความยาวของเซสชั่่น:
| การตั้งค่า | คีย์ | ค่าเริ่มต้นบนเซิร์ฟเวอร์ใหม่ |
|---|---|---|
| ขยายความยาวเซสชันเมื่อมีการใช้งาน | ServiceSettings.ExtendSessionLengthWithActivity | เปิด: เซสชันจะได้รับการต่ออายุเมื่อผู้ใช้กำลังใช้งาน Antimatter |
| ความยาวเซสชัน AD/LDAP และอีเมล (ชั่วโมง) | ServiceSettings.SessionLengthWebInHours | 720 ชั่วโมง (30 วัน) |
| ความยาว Session บนโมบาย (ชั่วโมง) | ServiceSettings.SessionLengthMobileInHours | 720 ชั่วโมง |
| ระยะเวลาเซสชัน SSO (ชั่วโมง) | ServiceSettings.SessionLengthSSOInHours | 720 ชั่วโมง |
| Session Idle Timeout (นาที) | ServiceSettings.SessionIdleTimeoutInMinutes | 43200 นาที (30 วัน); แสดงเฉพาะเมื่อไม่ได้ต่ออายุเซสชันด้วยกิจกรรม |
| ปิดเซสชันเมื่อเปลี่ยนรหัสผ่าน | ServiceSettings.TerminateSessionsOnPasswordChange | เปิด |
เพิกถอนเซสชันของทุกคนพร้อมกันโดยใช้ เพิกถอนเซสชันทั้่งหมด ใน คอนโซลระบบ › การจัดการผ้้ใช้ › ผู้ใช้งาน เพิกถอนเซสชันของบุคคลใดบุคคลหนึ่ง ให้เปิดหน้าของผู้ใช้คนนั้นที่นั่น