การเข้าสู่ระบบและบัญชี

กำหนดว่าใครสามารถสร้างบัญชีได้ และผู้คนจะเข้าสู่ระบบอย่างไร ทุกวิธีการเข้าสู่ระบบของ 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.MinimumLength8 (5 ถึง 72)
ข้อกำหนดของรหัสผ่าน: ตัวพิมพ์เล็ก, ตัวพิมพ์ใหญ่, ตัวเลข, สัญลักษณ์PasswordSettings.Lowercase, .Uppercase, .Number, .Symbolปิดทั้งหมด
จำนวนครั้่งสูงสุดในการเข้าสู่ระบบServiceSettings.MaximumLoginAttempts10: เมื่อเกินจำนวนนี้ บัญชีจะถูกล็อกจนกว่าจะรีเซ็ตรหัสผ่านทางอีเมล
เปิดใช้งานลิงก์ลืมรหัสผ่าน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…).

  1. ในผู้ให้บริการของคุณ สร้างแอปพลิเคชัน ("client") ประเภท web โดยใช้ redirect URI นี้ สำหรับ URL ของเว็บไซต์คุณ:
    ผู้ให้บริการRedirect 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 (URL ของผู้ให้บริการ /.well-known/openid-configuration; อย่่า GitLab, ใส้ URL ของไซต์ GitLab แทน), Client ID และ Client Secret. ให้ผู้ให้บริการอื่่น, ใส้ ชื่่อปุ่่ม และ สีของปุ่่ม ของปุ่่มเข้้าใช้งาน.
  3. ใช้ Preferred Username (GitLab และผู้ให้บริการอื่น) จะนำชื่อผู้ใช้ของ Antimatter มาจาก claim preferred_username ของผู้ให้บริการ
  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) และใส้สิ่่งท่ีผู้ให้บริการการยื้่นยันตวั้ตวั้ให้: 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.SessionLengthWebInHours720 ชั่วโมง (30 วัน)
ความยาว Session บนโมบาย (ชั่วโมง)ServiceSettings.SessionLengthMobileInHours720 ชั่วโมง
ระยะเวลาเซสชัน SSO (ชั่วโมง)ServiceSettings.SessionLengthSSOInHours720 ชั่วโมง
Session Idle Timeout (นาที)ServiceSettings.SessionIdleTimeoutInMinutes43200 นาที (30 วัน); แสดงเฉพาะเมื่อไม่ได้ต่ออายุเซสชันด้วยกิจกรรม
ปิดเซสชันเมื่อเปลี่ยนรหัสผ่านServiceSettings.TerminateSessionsOnPasswordChangeเปิด

เพิกถอนเซสชันของทุกคนพร้อมกันโดยใช้ เพิกถอนเซสชันทั้่งหมด ใน คอนโซลระบบ › การจัดการผ้้ใช้ › ผู้ใช้งาน เพิกถอนเซสชันของบุคคลใดบุคคลหนึ่ง ให้เปิดหน้าของผู้ใช้คนนั้นที่นั่น