Anmeldung und Konten

Entscheiden Sie, wer ein Konto erstellen kann und wie sich Personen anmelden. Jede Anmelde-Methode von Antimatter funktioniert ohne Lizenz, einschließlich Single Sign-On und Verzeichnisdienste.

Wer kann ein Konto erstellen

Prüfen Sie direkt nach der Installation Systemkonsole › Authentifizierung › Registrierung. Mit den Standardwerten kann jeder, der einen Einladungslink zu einer Community hat, ein Konto erstellen, aber niemand kann sich ohne einen registrieren.

EinstellungSchlüsselStandardFunktion
Aktiviere KontoerstellungTeamSettings.EnableUserCreationanAus, niemand kann auf irgendeine Weise ein Konto erstellen; nur Administratoren können dies (Systemkonsole oder amctl user create).
Aktiviere offenen ServerTeamSettings.EnableOpenServerausEin, jeder, der den Server erreicht, kann sich mit einer E-Mail-Adresse registrieren, ohne Einladung. Verwenden Sie dies nur für öffentliche Communities.
Neue System- und Teammitglieder auf bestimmte E-Mail-Domains beschränkenTeamSettings.RestrictCreationToDomainsleerDurch Kommas getrennte Domains, zum Beispiel example.com, example.org: Nur Adressen dieser Domains können ein Konto erstellen.
Aktiviere E-Mail-EinladungenServiceSettings.EnableEmailInvitationsauf einem neuen Server ausErlaubt Mitgliedern, Personen per E-Mail einzuladen (erfordert SMTP). Ausstehende E-Mail-Einladungen ungültig machen storniert die noch nicht akzeptierten Einladungen; sie laufen ohnehin nach 48 Stunden ab.

Community-Administratoren steuern ebenfalls, wer ihrer Community beitritt, mit Einladungslinks und ihren eigenen erlaubten Domains: siehe den Leitfaden Eine Community betreiben.

Von der Kommandozeile: amctl user create (fügen Sie --system-admin oder --guest hinzu), amctl user invite, amctl user deactivate, amctl roles system-admin <user>, um jemanden zum Systemadministrator zu machen, und amctl roles member <user>, um dies rückgängig zu machen.

E-Mail und Passwort

In Systemkonsole › Authentifizierung › E-Mail:

EinstellungSchlüsselStandard
Erlaube Kontoerstellung mit E-MailEmailSettings.EnableSignUpWithEmailein. Schalten Sie es aus, wenn sich alle über Single Sign-On anmelden.
Erzwinge E-Mail-BestätigungEmailSettings.RequireEmailVerificationaus. Schalten Sie es ein, sobald E-Mail funktioniert: Personen bestätigen dann ihre Adresse, bevor sie sich anmelden können.
Erlaube Login mit E-MailEmailSettings.EnableSignInWithEmailan
Erlaube Login mit BenutzernamenEmailSettings.EnableSignInWithUsernamean

In Systemkonsole › Authentifizierung › Passwort:

EinstellungSchlüsselStandard
Minimale PasswortlängePasswordSettings.MinimumLength8 (5 bis 72)
Passwortanforderungen: Kleinbuchstaben, Großbuchstaben, Zahl, SonderzeichenPasswordSettings.Lowercase, .Uppercase, .Number, .Symbolalle aus
Max. AnmeldeversucheServiceSettings.MaximumLoginAttempts10: Nach dieser Anzahl an Fehlversuchen wird das Konto gesperrt, bis das Passwort per E-Mail zurückgesetzt wird
Aktiviere den Link Passwort vergessenPasswordSettings.EnableForgotLinkan

Eine Länge von 12 oder mehr Zeichen trägt mehr zur Sicherheit bei als Zeichenregeln. Um das Passwort für jemanden zurückzusetzen: Systemkonsole › Benutzerverwaltung › Benutzer oder amctl user change-password <user> --password <new>.

Multifaktor-Authentifizierung

Die Multifaktor-Authentifizierung (MFA) ergänzt das Passwort um einen Code aus einer Authenticator-App. Sie gilt für Konten, die sich per E-Mail oder AD/LDAP anmelden. Bei Single Sign-On verwenden Sie die MFA Ihres Identitätsanbieters. In Systemkonsole › Authentifizierung › MFA:

  • Multi-Faktor-Authentifizierung einschalten (ServiceSettings.EnableMultifactorAuthentication, aus): Personen können die MFA in ihren Sicherheitseinstellungen aktivieren.
  • Multi-Faktor-Authentifizierung erzwingen (ServiceSettings.EnforceMultifactorAuthentication, aus): Alle müssen sie einrichten, entweder bei der Registrierung oder beim nächsten Login.

Wenn jemand sein Gerät verliert: amctl user resetmfa <user> oder von der Seite in Systemkonsole › Benutzerverwaltung › Benutzer zurücksetzen.

Single Sign-On

Antimatter kann Benutzer über Ihren Identitätsanbieter anmelden. Bei der ersten Anmeldung wird ihr Konto (wenn die Kontoerstellung erlaubt ist) aus dem Namen, der E-Mail-Adresse und dem Benutzernamen erstellt, die der Anbieter sendet.

OpenID Connect, GitLab, Google und Entra ID

Gehe zu Systemkonsole › Authentifizierung › OpenID Connect und wähle unter Dienstanbieter auswählen: GitLab, Google Apps, Entra ID (Office 365) oder OpenID Connect (Andere) für jeden anderen Anbieter (Keycloak, Authentik, Zitadel, Okta, Auth0…).

  1. Erstellen Sie in Ihrem Anbieter eine Anwendung (einen „Client“) vom Web-Typ mit dieser Weiterleitungs-URI für Ihre Site-URL:
    AnbieterWeiterleitungs-URI
    OpenID Connect (Andere)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. Fülle in Antimatter den Entdeckung Endpunkt (die /.well-known/openid-configuration-URL des Anbieters; bei GitLab stattdessen die GitLab-Site-URL), die Client-ID und das Client Secret aus. Für andere Anbieter auch den Schaltflächen Name und die Farbe des Buttons der Login-Schaltfläche.
  3. Bevorzugten Benutzernamen verwenden (GitLab und andere Anbieter) übernimmt den Antimatter-Benutzernamen aus dem preferred_username-Claim des Anbieters.
  4. Speichern, abmelden und die neue Schaltfläche auf der Anmeldeseite ausprobieren.

Die Einstellungen werden in OpenIdSettings, GitLabSettings, GoogleSettings oder Office365Settings gespeichert (zum Beispiel AM_OPENIDSETTINGS_ENABLE, AM_OPENIDSETTINGS_DISCOVERYENDPOINT, AM_OPENIDSETTINGS_ID, AM_OPENIDSETTINGS_SECRET). Zusätzliche Scopes (AM_OPENIDSETTINGS_ADDITIONALSCOPES) fordert beim Anbieter zusätzliche OAuth-Scopes an, getrennt durch Leerzeichen, zusätzlich zu den Standard-Scopes. Die ältere OAuth-2.0-Seite wird nur für Server angezeigt, die noch über eine OAuth-2.0-Konfiguration für GitLab, Google oder Entra ID verfügen.

Bei normalem OpenID Connect (nicht GitLab, Google oder Entra ID) werden beim Anmelden auch Benutzerattribute synchronisiert, die Sie einem Claim zugeordnet haben: Antimatter liest das ID-Token und die userinfo-Antwort (die userinfo-Antwort hat Vorrang, wenn beide einen Claim enthalten), versucht zuerst, den Claim-Namen als einzelnen Top-Level-Schlüssel zu finden, und dann als punktförmig verschachtelten Pfad (zum Beispiel address.country), falls nichts übereinstimmt. Ein Claim, den die Antwort nicht enthält, löscht das zugeordnete Attribut, da der Anbieter als maßgebliche Quelle für die synchronisierten Daten behandelt wird. Diese Funktion ist standardmäßig aktiviert; deaktivieren Sie sie mit AM_FEATUREFLAGS_OPENIDATTRIBUTESYNC=false.

SAML 2.0

In Systemkonsole › Authentifizierung › SAML 2.0, schalte Erlaube Login mit SAML 2.0 (SamlSettings.Enable) ein und fülle die von deinem Identitätsanbieter bereitgestellten Daten ein: die Identitätsanbieter-Metadaten-URL, oder die SAML SSO URL, die Issuer-URL des Identitätsanbieters und das Öffentliche Zertifikat des Identitätsanbieters. Auf der Seite des Identitätsanbieters:

  • Anmelde-URL des Service-Providers (Assertion Consumer Service): https://chat.example.com/login/sso/saml;
  • Metadaten von Antimatter für Anbieter, die diese importieren: https://chat.example.com/api/v4/saml/metadata.

Mappe die Attribute, die dein Anbieter sendet: mindestens das E-Mail Attribut und das Attribut Benutzername, sowie optional die ID, Vor- und Nachname, Spitzname, Position, Sprache, Gast- und Admin-Attribute. Signatur überprüfen und Verschlüsselung aktivieren sind standardmäßig aktiviert (Verschlüsselung erfordert einen Schlüssel und ein Zertifikat des Dienstanbieters; nur RSA-Schlüssel werden unterstützt); Anfrage signieren ist deaktiviert. Der Signaturalgorithmus ist standardmäßig RSAwithSHA256.

AD/LDAP

In Systemkonsole › Authentifizierung › AD/LDAP verbindet eine schrittweise Seite Antimatter mit Active Directory oder einem anderen LDAP-Server: Server und Port (LdapSettings.LdapServer, LdapSettings.LdapPort, standardmäßig 389), die Verbindungssicherheit (keine, TLS oder STARTTLS), die Basis-DN und ein Bind-Konto (BaseDN, BindUsername, BindPassword), Filter für Benutzer, Gäste, Administratoren und Gruppen sowie die Attribute für E-Mail, Benutzername, ID, Namen und Bild. Die Benutzer melden sich anschließend mit ihrem Verzeichnis-Login an.

Ein Synchronisationsjob wird alle 60 Minuten ausgeführt (LdapSettings.SyncIntervalMinutes), um Namen zu aktualisieren und Personen zu deaktivieren, die aus dem Verzeichnis entfernt wurden; Sie können ihn jetzt mit amctl ldap sync ausführen. LDAP-Gruppen können in Systemkonsole › Benutzerverwaltung › Gruppen mit Communities und Kanälen verknüpft werden. SAML-Konten können auch mit AD/LDAP synchronisiert werden (Synchronisierung von SAML-Konten mit AD/LDAP aktivieren).

Benutzerdefinierte Profilattribute, die einem AD/LDAP- oder SAML-Attribut zugeordnet sind, werden in der Systemkonsole › System-Attribute auf dieselbe Weise synchronisiert: Der Wert eines Textattributs wird so kopiert, wie ihn das Verzeichnis oder die Assertion sendet, bis zu einer Länge von 64 Zeichen (ein längerer Wert löscht das Attribut, statt gekürzt zu werden); der Wert eines Auswahlfeld- oder Mehrfachauswahlattributs wird unabhängig von der Groß-/Kleinschreibung mit einer vorhandenen Option abgeglichen, wobei die Schreibweise dieser Option beibehalten wird, und es wird eine neue Option erstellt, wenn keine übereinstimmt. Optionen, die von niemandem mehr verwendet werden, werden entfernt, und die Optionsliste eines synchronisierten Attributs kann nur von der Synchronisation geändert werden, die es besitzt, nicht manuell in der Systemkonsole.

Verschieben vorhandener Konten

Um bestehende E-Mail-Konten auf Single Sign-On umzustellen, verschiebt amctl user migrate-auth email saml users.json (oder ldap) sie in einem Rutsch. Ein Nutzer kann zudem in den Sicherheitseinstellungen die eigene Anmeldeart ändern, wenn Authentifizierungstransfer erlauben (ServiceSettings.ExperimentalEnableAuthenticationTransfer, in Systemkonsole › Experimentell › Funktionen) aktiviert ist.

Gastkonten

Gäste sind Personen außerhalb Ihrer Organisation, die nur die Kanäle sehen, zu denen sie eingeladen wurden. Aktivieren Sie diese Funktion in Systemkonsole › Authentifizierung › Gastzugang:

EinstellungSchlüsselStandard
Gastzugang aktivierenGuestAccountsSettings.Enableaus
Gastdömanen auf der WhitelistGuestAccountsSettings.RestrictCreationToDomainsleer: Gäste dürfen jede E-Mail-Domain verwenden
Multi-Faktor-Authentifizierung erzwingenGuestAccountsSettings.EnforceMultifactorAuthenticationaus; nur verfügbar, wenn MFA für alle aktiviert und erzwungen ist
Gast-Tag ausblendenGuestAccountsSettings.HideTagsaus: ein „Gast“-Tag wird neben dem Namen angezeigt

Sobald aktiviert, laden Community-Administratoren Gäste zu bestimmten Kanälen ein. Administratoren können ein Mitglied mit amctl user demote in einen Gast umwandeln und einen Gast mit amctl user promote in ein Mitglied.

Sitzungen

Die Dauer, für die Personen angemeldet bleiben, wird in Systemkonsole › Umgebung › Session-Längen festgelegt:

EinstellungSchlüsselStandard auf einem neuen Server
Session durch Aktivität verlängernServiceSettings.ExtendSessionLengthWithActivityan: Sitzungen werden erneuert, während Personen Antimatter verwenden
Sitzungsdauer AD/LDAP und E-Mail (Stunden)ServiceSettings.SessionLengthWebInHours720 Stunden (30 Tage)
Sitzungsdauer Mobil (Stunden)ServiceSettings.SessionLengthMobileInHours720 Stunden
Sitzungsdauer SSO (Stunden)ServiceSettings.SessionLengthSSOInHours720 Stunden
Session-Leerlaufzeit (Minuten)ServiceSettings.SessionIdleTimeoutInMinutes43200 Minuten (30 Tage); wird nur angezeigt, wenn Sitzungen nicht durch Aktivität verlängert werden
Beende Sitzungen bei PasswortänderungServiceSettings.TerminateSessionsOnPasswordChangean

Um alle Personen gleichzeitig abzumelden, verwenden Sie Alle Sitzungen zurückziehen in Systemkonsole › Benutzerverwaltung › Benutzer. Um eine einzelne Person abzumelden, öffnen Sie deren Seite dort.