リバースプロキシの背後にあるDiscourseでFIDO2を使用する方法は?

リバースプロキシの背後にあるDiscourseでFIDO2を使用する方法を誰か見つけましたか?Cloudflare Tunnelの背後にあるフォーラムで、この問題が発生しています(web.socketed.template.ymlテンプレートを使用)。

Yubikey 2FAも新しいPasskeyログインも機能しません。

これは開発環境ですか?一時的にこの部分をオーバーライドする必要があるかもしれません。

また、サーバー実行時に --forward-host フラグを使用すると役立つ可能性が高いです。たとえば、bin/ember-cli -u --forward-host のようにします。

いいえ、これは本番環境へのインストールです。

どのようなエラーメッセージが表示されていますか?

失敗したリクエストの完全なURLは /auth.json ですか?

Ah、いいえ: /session/passkey/auth.json

サーバーがブラウザが要求しているホスト名で実行されていないと認識しているようです。セキュリティキー/パスキーの生成手順では、ブラウザのホスト名がサーバーのホスト名と一致することを確認する必要があります(キーはホスト名ごとに生成されます)。

Railsコンソールにログインして、Discourse.current_hostnameの出力を確認していただけますか?サイトにアクセスするために使用するURLと一致しない場合は、それが問題です。

「いいね!」 1

これは httphttps の問題である可能性もあります。あなたのサイトでは、ロゴが http:// の下のURLを探しているようです。

「いいね!」 1

Discourse.current_hostname はサイトにアクセスするために使用する URL と一致しません。Discourse がブラウザでリクエストしているホスト名をどのように認識しているかを確認する方法はありますか?

「いいね!」 1

コンソールで Discourse.base_url を実行すると、何が得られますか?

「いいね!」 1

ああ、それは http:// URL(正しいホスト名)に設定されていますね。Cloudflare Tunnel から Discourse にアクセスできるように、ここで説明されているセットアップを使用しています。

ああ、解決したようです。Discourse の force https 設定を有効にしたら直りました。なぜオフになっていたのかは不明です。別のリバースプロキシを前に置く前は、デフォルトの設定では必要なかったと思います。ご協力ありがとうございました!

「いいね!」 3

このトピックは、最後の返信から30日後に自動的にクローズされました。新しい返信は許可されていません。