Ограничить вход только для сотрудников?

Всем привет,

есть ли способ ограничить вход на форум только для определённой роли, например, модераторов или администраторов?

Контекст: я мигрирую крупный форум. Хотя URL этого форума неизвестен широкой публике, я хочу ограничить вход только модераторам и администраторам, пока мы тестируем всё после миграции и готовимся к окончательному переносу.

Казалось, я видел такую опцию раньше, но теперь не могу её найти.

Вы можете настроить форум так, чтобы он был доступен только по приглашениям, пока он не будет полностью готов к работе. Затем, когда будете готовы, вы сможете изменить настройки для приема публичных регистраций. В панели управления перейдите в раздел Вход и установите флажки для настройки параметров в соответствии с вашими пожеланиями. Когда будете готовы, вернитесь и внесите необходимые изменения.

Это не сработает, как только пользователи будут импортированы и их аккаунты активируются.

Временный обратный прокси-сервер сработает с аутентификацией, но добавит сложности.

Возможен ли смена DNS-имени? Как вы планируете управлять временем простоя?

Вам, вероятно, следует приостановить все учётные записи пользователей, чтобы они не получали письма. Это не даст им возможности войти, даже если они случайно наткнутся на сайт.

Если этого по какой-то причине недостаточно, вы можете изменить конфигурацию nginx в контейнере, чтобы требовать базовую аутентификацию (basic auth) для доступа к сайту.

Я совершенно не знал, что у Discourse нет возможностей, основанных на ролях. До сих пор я использовал его только в проектах, где это не было проблемой. Мне казалось, что будет возможно ограничить вход через это.

@JimPas, как правильно заметил @Stephen, это не сработает для импортированных пользователей.

Изменение DNS-имени будет применено на этот период, так как старый форум продолжит работать в это время, но, как я уже сказал изначально, я хотел обеспечить дополнительную защиту.

Похоже, что HTTP-аутентификация будет единственным способом добавить дополнительную защиту и предотвратить вход пользователей. Мне нужно проверить, как это работает.

Спасибо, ребята.

Не совсем так: у вас всегда есть надежный старый вариант — отключить публичную DNS-запись и использовать запись в файле hosts на определённый период. Это нарушит работу Let’s Encrypt, если вы выполните пересборку при отсутствии публичной DNS-записи, но в остальном всё будет работать. Пользователям нужно будет знать новое DNS-имя и IP-адрес для доступа.

Отключение учётных записей — это один из вариантов, но также можно отключить всю рассылку электронной почты в разделе /admin, что, вероятно, будет разумным шагом.

Как ещё одна идея: вы можете контролировать доступ, добавив ещё один уровень защиты, реализовав собственную систему управления идентификацией (IdM) или единого входа (SSO). Это потребует больше работы, но может принести огромные выгоды в других областях в будущем. Всё зависит от того, что вам удобнее.

Спасибо за перечисление альтернатив, @Stephen.

Я считаю, что базовая аутентификация — самый простой способ. Использование локальных файлов хостов немного громоздко для менее технически подкованных сотрудников/модераторов, а IdM/SSO — это явно слишком много хлопот на тот, надеюсь, короткий период времени, который потребуется для подготовки основы для окончательной миграции. Кроме того, у нас там не очень безопасно, поэтому мы, возможно, вообще не будем его защищать.

Хочу обновить эту тему: я считаю, что у нас теперь есть режим «только для чтения для персонала». Хотя я не на 100% уверен, как его активировать. :slight_smile: В интерфейсе я не могу найти кнопку, кроме обычной «только для чтения для всех». :thinking:

Я попробую разобраться.


У нас теперь есть инструкции в руководстве: