ログインをスタッフのみに限定しますか?

こんにちは、皆さん。

フォーラムへのログインを、モデレーターや管理者などの特定のロールに限定する方法はありますか?

背景:大きなフォーラムの移行を行っています。このフォーラムの URL は一般に公開されていないため、移行後のテストや最終的な引き渡し準備が整うまで、ログインをモデレーターと管理者のみに制限したいと考えています。

以前は何かオプションがあったような気がしていたのですが、どうやらそれを見つけることができないようです。

準備が整うまで、フォーラムを招待制のみに設定することもできます。準備ができたら、公開登録を受け付けるように変更しましょう。ダッシュボードのログインセクションに移動し、希望する設定に合わせてチェックボックスを選択してください。準備ができたら、再度アクセスして必要な変更を行ってください。

ユーザーのインポートとアカウントのアクティベーション後、これは機能しなくなります。

一時的なリバースプロキシは認証と併用可能ですが、複雑さを増します。

DNS 名の変更は可能でしょうか?ダウンタイムの管理はどのように計画されていますか?

おそらく、すべてのユーザーを一時停止して、メールが送信されないようにする必要があります。これにより、たとえ偶然サイトを見つけられたとしても、ログインできなくなります。

それでも不十分な場合は、コンテナ内の nginx を変更して、サイトへのアクセスに基本認証を要求するように設定できます。

Discourse にロールベースの機能がないとは、全く知りませんでした。これまでこの点が問題とならないプロジェクトでのみ使用していたためです。ログインを制限できるものだと思っていました。

@JimPas @Stephen が正しく指摘している通り、インポートされたユーザーにはそれは機能しません。

旧フォーラムがその期間中も引き続き稼働するため、DNS 名の切り替えはその期間中に実施されます。しかし、最初に述べた通り、追加の保護を設けたいと考えていました。

http ベースの認証が、追加の保護をかけ、ユーザーのログインを防ぐ唯一の方法のようです。その仕組みを確認する必要があります。

皆さん、ありがとう。

正確には、パブリック DNS レコードを公開停止し、その期間中は hosts エントリを使用するという、昔ながらのフォールバック手段が常にあります。パブリック DNS が存在しない状態で再構築すると Let’s Encrypt が機能しなくなりますが、それ以外では問題なく動作します。ユーザーはアクセスするために新しい DNS 名と IP アドレスの両方を知る必要があります。

アカウントを無効化するという選択肢もありますが、/admin からすべてのメールを無効にするという選択肢もあり、おそらくそれが賢明でしょう。

一つのアイデアとして、独自の IdM/SSO を実装することで、さらに一層アクセス制御を行うことも可能です。作業量は増えますが、将来的に他の分野で大きなメリットが得られる可能性があります。すべて、あなたがどれくらい対応できるかにかかっています。

@Stephen、代替案を挙げていただきありがとうございます。

ベース認証が最もシンプルで直接的な方法だと考えます。ローカルホストファイルの使用は、技術に詳しくないスタッフやモデレーターにとってやや手間がかかりますし、IdM/SSO は、最終的な移行に向けた基盤整備に必要な比較的短期間にとっては、明らかに手間がかかりすぎます。また、現状のセキュリティ体制が十分ではないため、結局はセキュリティ対策を全く行わない可能性もあります。

これを更新しておきます。スタッフ限定読み取りモードができたと思います。ただし、有効にする方法が100%確信が持てません。:slight_smile: UIには、通常の「全員読み取り専用」以外のボタンが見当たりません。:thinking:

調べてみます。


ガイドに手順が記載されています。