PCまたはAndroidブラウザからログインできませんが、「アプリ」からはできました

PCからのみ特定のDiscourseコミュニティフォーラムにログインできない、SSO関連のSNAFU(状況悪化)が発生しているようです。それ以外の場合は、Androidのウェブブラウザやモバイルアプリなどからフォーラムに自由にアクセスできます。

数日間、双方でトラブルシューティングを行った結果、hubitat → portal.hubitat → discourse/session/sso_login?___ → hubitatに戻るという一連のリダイレクトが原因であると結論付けました。これは、ホリデー期間中の2ヶ月間の不在中にSSO IDが期限切れになった可能性を示唆しています。

ユーザーである私がSSO認証情報をリセットする方法はありますか?
それとも、フォーラムモデレーターにアカウントをリセットしてもらうために、彼に渡せる手順はありますか?

(ブラウザの変更、キャッシュのクリア、Cookieの削除、サードパーティのブロック、シークレットモードなど)他のすべてを試しましたが、効果はありませんでした。

ありがとうございます! - Tim

こんにちは、@TimGNO さん :slight_smile:

お客様の問題はこのバグとは関係ないようです。お客様の投稿を別のトピックに移動しましょうか?

はい、ありがとうございます。古いスレッドに投稿して n00b のように見えてしまったらすみません、笑。これは「IT で 50 年以上の経験があるにもかかわらず、途方に暮れている」という状況の 1 つです。

:smiley:

「いいね!」 2

この扱いにくいクッキーが原因ではないかと考えてしまいます。セッションが開始される前に期限切れになっているのではないでしょうか?
SCREENSHOT
(まだ画像を投稿できないため、一時的にプレースホルダーとして画像リンクを使用しています)

注:Chrome > Inspect > Network > Cookies から取得

わかりません。しかし、サーバー(またはPC、あるいはすべてのPC、すべてのユーザー)の時刻を確認してみてはどうでしょうか?もし時刻がずれていれば、それが原因である可能性があります(ただし、確信はありません)。

その他、すべてがhttpsであり、証明書が有効であることを確認することも検討するかもしれません。

現時点では単一の(Windows 10)PCでのみ試しましたが、今後は他のPCでも試してみます。過去には他のフォーラムメンバーも一時的に影響を受けましたが、現在は私だけが不満を訴えています。(私はサイトの所有者でも管理者でもありません。)

すでに調査済みの項目の中にあった、確かな提案をありがとうございます。

  • Cookie
  • キャッシュ
  • ブラウザの変更
  • User Agent スプーフィング
  • Same-site / CORS 設定
  • HTTPSのみ有効化
  • 証明書
  • サードパーティCookieのブロック
  • NTP/時刻/DST

残念ながら、Hubitatの(Discourse Community)サイト管理者はCES '23で4日以上不在ですが、その後で彼の側のSSO設定を確認すると約束しています。報告します。

UPDATE: デスクトップとモバイルプラットフォームの動作の違いをさらに明確にしようと試みた際、Androidデバイスで「Hubitatアプリ」(実質的にはブックマークとブラウザのフロントエンドに過ぎない)をアンインストールし、Chromeブラウザを使用してサイトにアクセスしようとしました。同じエラー状態が発生しました。まだログインできません。ログインページをリフレッシュすると、以下のメッセージが表示されます。

「ログインエラー
アカウントのログインがタイムアウトしました。再度ログインしてください。」

「アプリ」が、私の休止期間より前の何らかの認証キーを保持していたと推測し、その変数を排除したかったのです。

これはデバイス、プラットフォーム、またはブラウザレベルのクライアントサイドの問題ではなく、サーバーサイドのユーザーアカウントレベルの問題であると確信しました。おそらく、既知の解決策があるDiscourseフレームワークのよくある不具合かもしれませんので、ヘルプが来るまでGoogleで検索してみます。

「いいね!」 1

サイトの他の誰かも同じ問題に遭遇しているか知っていますか?

サイト管理者がまだ行っていない場合は、verbose_discourse_connect_loggingを有効にすることができます。その設定でDiscourseConnectの問題をデバッグする方法についての詳細はここにあります:Debug and fixing common DiscourseConnect issues。ただし、このトピックがあなたが遭遇している問題に対応しているかどうかはわかりません。

ログに表示されるこのエラーの完全なメッセージは、「Nonce is incorrect, was generated in a different browser session, or has expired」のようになります。これの考えられる原因は次のとおりです。

  • アプリケーションからDiscourseへのログイン試行時に渡されるノンスが、Discourseからアプリケーションに最初に送信されたノンスと一致しない。
  • ノンスが、ログインしているセッションとは異なるセッションで生成された。これは、アプリケーションがブラウザのリダイレクトによって生成されるのではなく、Discourseからノンスを取得するためにバックグラウンドリクエストを行っている場合に発生します。
  • ユーザーがログインを完了するために10分(ノンスの有効期限)以上待機する。

このリストの最初の問題に遭遇していると推測します。

「いいね!」 3

「解決済み」

皮肉なことに、昨日GoogleはOneサブスクリプションと連携してVPNサービスの提供を発表しました。私はちょうどそれを利用していました。

WindowsにVPNをインストールして有効にしたところ、上記で言及したログインを突然進めることができるようになりました。問題なく完了しました。

正確な仕組みは決してわからないかもしれませんが、将来同様の状況にある誰かの役に立つことを願って「解決済み」とマークします。