バックアップからの復元後、OTPによる2FAが破損しました

Discourse を個人の PC から常時稼働のサーバーへ、同じネットワーク内で移行しました。Discourse の新しい Docker コンテナを作成し、その後、こちらで示されている手順に従ってバックアップを復元しました:Restore a backup from the command line

基本的には問題ないのですが、2 段階認証(OTP)を有効化しているユーザーのログインができません。Android で AndOTP を使用していますが、OTP が無効になっています。また、新しい 2FA トークンの作成も不可能です。アプリが生成したトークンが Discourse で受け入れられないためです。つまり、QR コードをスキャンしたばかりにもかかわらず、生成されたトークンが正しく機能しなくなっています。

何か間違ったことをしてしまったのでしょうか?

「いいね!」 1

問題の範囲を特定するために:YubiKey を使ってアカウントの保護を試みましたが、それは問題なく機能しました。

問題があるのは OTP のみです。

「いいね!」 1

OTPレコードを削除してから、新しいものを作成しましたか?この投稿をご覧ください:Disable 2FA via console - howto / sysadmin - Discourse Meta

「いいね!」 3

いいえ、私は行いませんでしたので、その点はありがとうございます。私は新しい管理者ユーザーを作成し、そのユーザーとしてログインして、Web インターフェースを使用して影響を受けたユーザーの 2 段階認証を無効化することで、自分で対応しました。

その後、あなたが提供したリンク(これもありがとうございます)に従って実行したところ、YubiKey を使った 2 段階認証は無効化されました。

しかし、OTP を使った 2 段階認証を再度利用することはできません。認証アプリを追加しようとしても、QR コードをスキャンした後、生成されたトークンが無効になってしまいます。これは、元のインスタンスでは問題になりませんでした。

ああ、最近これは見ていませんでした。現在、どのバージョンの Discourse を使用されていますか?

サーバーとクライアントの間に時刻のズレがあるかもしれませんね?

「いいね!」 5

両方のバージョン(バックアップのソースと、バックアップが復元されたシステム)は 2.8.0.beta1 です。

明日確認します。今日はシステムにアクセスできません。それが問題の原因かもしれません。しかし、ntp が有効でサーバーの内部時計を修正するはずなので、その可能性は低いと確信しています。

「いいね!」 2

おっしゃる通りでした。それにより私の問題は解決しました。ntp はインストールされていましたが、時刻のズレが非常に大きかったため、ntp がそれを修正できなくなっていました。現在は強制的に同期を実行したところ、OTP が再び動作するようになりました。

「いいね!」 5

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.