検索してみましたが、関連するトピックはほとんどがSSOに関するもので、私たちはそれを設定していません。
標準的なDiscourse認証とOAuth2プラグインによる認証を使用しています。
特定のユーザーグループに所属しているユーザーのみがアクセスできるカテゴリがいくつかあります。
適切なグループに所属している未認証ユーザーに保護されたカテゴリへのリンクを提供すると、通常の404/Oopsページが表示されます。その後、ユーザーは一度ログアウトしてログインし、再度その保護されたカテゴリにたどり着く必要があります。
ログインページにリダイレクト先としてその非表示カテゴリのURLを指定してリンクする方法、あるいは保護されたカテゴリでログインを促す設定を変更する方法はありませんか?
ご回答をよろしくお願いいたします。
問題は、それ以外の対応をすると、秘密のカテゴリの存在が明らかになってしまうことです。
ここで伝統的なアドバイスは、404 ページのメッセージを編集し、ユーザーはコンテンツを表示するためにログインする必要があることを示すことです。
この話題が何度か出ているので、404 ページのセキュリティを緩和するオプションのサイト設定を導入することを検討してもよいかもしれませんね @eviltrout。匿名ユーザーが
http://discourse.example/com/t/topic-in-secret-category
をクリックした場合、
申し訳ありませんが、そのトピックを表示するにはログインが必要です
というメッセージが表示されるようにするのです。
それとも、
おっと!そのページは存在しないか、非公開です。
というメッセージを表示するのでしょうか?
(ログイン済みのユーザー向けに、アクセスに必要なグループを明示する拡張も可能かもしれません。)
ロビン、どう思いますか?
eviltrout
(Robin Ward)
5
これは素晴らしいアイデアだと思います。多くの種類のフォーラムにおいて、「何かがある」ことを示すことはセキュリティ上の欠陥ではなく、アクセシビリティの大幅な向上につながります。\n\nここで真の課題は、サイト設定を適切に命名し、その機能を明確に説明することです。以下に私の提案をまとめましたが、編集には反対しません。\n\n以下はミニ仕様です:\n\n- 新しいサイト設定 detailed_404 を追加し、デフォルト値を false にします。「ユーザーに特定のトピックにアクセスできない理由の詳細を提供します。注意:これはセキュリティが低下します。なぜなら、ユーザーが URL が有効なトピックを持っているかどうかを知ることができるようになるためです。」\n\n- 有効化した場合、トピックコントローラーでガーディアンチェックが失敗したら、失敗した理由の詳細を含む JSON オブジェクトを返します。\n\n- フロントエンドアプリケーションでは、これらの詳細を使用して適切なエラーメッセージを表示します:\n\n - 匿名ユーザーの場合:「申し訳ありませんが、そのトピックを表示するにはログインしてください」\n
- ログインユーザーの場合:\n\n - トピックが 1 つのグループ(スタッフグループを除く)に制限されている場合:「このトピックは GROUP_NAME のみが閲覧可能です。」とし、アクセスをリクエストボタンを含めます。\n\n - トピックが複数のグループに制限されている場合は、一般的なメッセージを表示します:「このトピックへのアクセス権がありません。リンクを提供した人にアクセス権の申請を依頼してください。」
@dan、暗号化プラグインの作業が終わったら、それをリストに追加してもらえますか?
detailed_404 の方がより簡潔で良いかもしれませんか?
制限付きカテゴリ内のトピックリストと、制限付きカテゴリ内の単一のトピックの両方にその処理を行うべきでしょうか、それとも制限付きカテゴリ内の単一のトピックのみに限定すべきでしょうか?
現在、それらの動作が異なっているためです。
eviltrout
(Robin Ward)
10
トピックリスト自体が見られないことについて不満を述べる人はあまり見かけません。本当に簡単でない限り、気にする必要はないでしょう。