Вход и аккаунты

Определите, кто может создать аккаунт и как пользователи входят в систему. Все способы входа в 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>.

Многофакторная аутентификация

Многофакторная аутентификация (МФА) добавляет код из приложения-аутентификатора к паролю. Она применяется к аккаунтам, которые входят по электронной почте или AD/LDAP; при едином входе используйте МФА вашего провайдера идентичности. В Системная консоль › Аутентификация › МФА:

  • Включить многофакторную аутентификацию (ServiceSettings.EnableMultifactorAuthentication, выкл.): пользователи могут включить МФА в своих параметрах безопасности.
  • Принудительная многофакторная аутентификация (ServiceSettings.EnforceMultifactorAuthentication, выкл.): все должны настроить её при регистрации или при следующем входе.

Если кто-то потеряет устройство: amctl user resetmfa <user> или сбросьте его со страницы пользователя в Системная консоль › Управление пользователями › Пользователи.

Единый вход

Antimatter может аутентифицировать пользователей через ваш провайдер идентичности. При первом входе он создаёт их аккаунт (если создание аккаунтов разрешено) на основе имени, электронной почты и имени пользователя, переданных провайдером.

OpenID Connect, GitLab, Google и Entra ID

Перейдите в Системная консоль › Аутентификация › OpenID Connect и выберите в разделе Выберите провайдера: GitLab, Google Apps, Entra ID (Office 365) или Подключение OpenID (Другое) для любого другого провайдера (Keycloak, Authentik, Zitadel, Okta, Auth0…).

  1. В вашем провайдере создайте приложение ("клиент") веб-типа с следующим URI перенаправления для URL вашего сайта:
    ПровайдерURI перенаправления
    Подключение OpenID (Другое)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 заполните Конечная точка обнаружения (URL /.well-known/openid-configuration провайдера; для GitLab вместо этого URL сайта GitLab), Идентификатор клиента и Секрет клиента. Для других провайдеров также Название кнопки и Цвет кнопки кнопки входа.
  3. Использовать preferred_username (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) и укажите данные, предоставленные вашим провайдером идентификации: URL метаданных провайдера идентификации или SAML SSO URL, URL-адрес издателя поставщика учетных записей и Публичный сертификат Удостоверяющего Центра. На стороне провайдера идентификации:

  • 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), базовый DN и учетная запись для подключения (BaseDN, BindUsername, BindPassword), фильтры для пользователей, гостей, администраторов и групп, а также атрибуты электронной почты, имени пользователя, ID, имени, фамилии и фотографии. После этого пользователи могут входить в систему с помощью учетных данных каталога.

Задача синхронизации выполняется каждые 60 минут (LdapSettings.SyncIntervalMinutes), чтобы обновлять имена и отключать учетные записи пользователей, удаленных из каталога; запустить ее можно сейчас с помощью команды amctl ldap sync. Группы LDAP можно связать с сообществами и каналами в разделе Системная консоль › Управление пользователями › Группы. Учетные записи SAML также можно синхронизировать с AD/LDAP (Включить синхронизацию учетных записей SAML с AD/LDAP).

Перенос существующих учётных записей

Чтобы перевести существующие учётные записи с электронной почты на единый вход, используйте amctl user migrate-auth email saml users.json (или ldap) для пакетного переноса. Пользователь также может сменить способ входа в своих параметрах безопасности, если включён параметр Разрешить передачу аутентификации (ServiceSettings.ExperimentalEnableAuthenticationTransfer в разделе Системная консоль › Экспериментальные › Функции).

Гостевые учётные записи

Гости — это люди извне вашей организации, которые видят только те каналы, в которые их пригласили. Включите их в разделе Системная консоль › Аутентификация › Гостевой доступ:

ПараметрКлючЗначение по умолчанию
Включить гостевой доступGuestAccountsSettings.Enableвыключено
Белый список гостевых доменовGuestAccountsSettings.RestrictCreationToDomainsпусто: гости могут использовать любой домен электронной почты
Принудительная многофакторная аутентификацияGuestAccountsSettings.EnforceMultifactorAuthenticationвыключено; доступно только при включённой и принудительной многофакторной аутентификации для всех
Скрыть гостевой тегGuestAccountsSettings.HideTagsвыключено: рядом с именем отображается тег «гость»

После включения администраторы сообщества приглашают гостей в конкретные каналы. Администраторы могут понизить участника до гостя с помощью amctl user demote, а гостя повысить до участника с помощью amctl user promote.

Сеансы

Продолжительность входа настраивается в разделе Системная консоль › Окружение › Продолжительность сессий:

ПараметрКлючЗначение по умолчанию на новом сервере
Продление сеанса при активностиServiceSettings.ExtendSessionLengthWithActivityвключено: сеансы обновляются, пока пользователи работают в Antimatter
Продолжительность сессии AD/LDAP и электронной почты (в часах)ServiceSettings.SessionLengthWebInHours720 часов (30 дней)
Длина сессии на мобильных устройствах (часов)ServiceSettings.SessionLengthMobileInHours720 часов
Длина сеанса SSO (часы)ServiceSettings.SessionLengthSSOInHours720 часов
Тайм-аут ожидания сеанса (минуты)ServiceSettings.SessionIdleTimeoutInMinutes43200 минут (30 дней); отображается только при отключённом продлении сеанса при активности
Завершать сеансы при смене пароляServiceSettings.TerminateSessionsOnPasswordChangeвкл

Чтобы завершить сеансы всех пользователей сразу, используйте Сбросить все сеансы в разделе Системная консоль › Управление пользователями › Пользователи. Чтобы завершить сеанс одного пользователя, откройте его страницу в этом разделе.