Configure sign up and log in with Auth0 using the OAuth2 Basic Plugin の指示に従って oauth2 プラグインを設定しました。
フローは次のようになります。
「ログイン」をクリックしてから「dbt コミュニティアカウントを使用する」をクリックすると、アカウントが正常に作成され、ユーザー名などを設定できるアカウント作成ダイアログが表示されます。
この動作を示す Loom 動画:
oauth2 debug auth を有効にしたところ、ログに (oauth2_basic) Authentication failure! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected と表示されました。
質問:
- これは Discourse の問題ですか、それとも Auth0 の問題ですか?Slack 用のほぼ同様のログインフローが問題なく機能するため、Discourse の問題だと推測しています。
- なぜログインページでは機能するのに、Auth0 側からトリガーされると機能しないのですか?
- デフォルトの CSRF エラーメッセージは、ブラウザが変更された場合やログインフローに時間がかかりすぎた場合に発生することを示唆しています。どちらも当てはまりませんが、他に原因は何でしょうか?
david
(David Taylor)
4
@joellabes 様 - 「アプリケーションログインURI」のAuth0設定に入力したURLを確認していただけますでしょうか?
{your forum}/auth/oauth2_basic になっているはずです。末尾に /callback が付いている場合、それが説明されている問題の原因となっている可能性があります。
「いいね!」 2
@davidさん、ありがとうございます。現在、「Application Login URI」ボックスには何も入力していませんが、「Allowed callback URLs」には入力しています。
https://discourse.getdbt.com/auth/oauth2_basic を「Application Login URI」フィールドに入力し、「Allowed Callback URLs」フィールドに https://discourse.getdbt.com/auth/oauth2_basic/callback を入力したままにしておくべきでしょうか?
「いいね!」 1
david
(David Taylor)
6
はい、試すことができます。
「コミュニティフォーラムでヘルプを入手する」リンクがどのように実装されているか、もう少し詳しく教えていただけますか?リンクはどこに移動しますか?現在、ボタンはAuth0によって処理されており、その新しいURL構成を追加すると、ボタンがログインフローを開始するために正しく /auth/oauth2_basic にリンクされると想定しています。
「いいね!」 1
返信が遅くなり申し訳ありません。クリスマス休暇から戻ったばかりです。
以下のように行いました。
しかし、結果は同じです。
そのリンクは https://dev-zb38hsho.us.auth0.com/samlp/5GpVvVgryMnBaNJFuLt5DW3bs89jO0hr を指しています。ここで dev-zb38hsho は私たちの Auth0 インスタンス ID であり、5GpVvVgryMnBaNJFuLt5DW3bs89jO0hr は Auth0 の Discourse アプリケーションのクライアント ID です。
そのリンクにアクセスすると https://dev-zb38hsho.us.auth0.com/u/login?state=SESSION_SPECIFIC_TOKEN にリダイレクトされます。
david
(David Taylor)
8
キーは、Discourse が /auth/oauth2_basic で認証フローを開始し、Auth0 にリダイレクトしてから /auth/oauth2_basic/callback に戻ることです。
Auth0 に最初の URL からログインを開始してもらうことを期待していましたが、Discourse がコールバック URL に直接ジャンプしているようです。
フォーラムのボタンを /auth/oauth2_basic にポイントするように更新していただけますか?これにより認証フローが開始され、すぐに Auth0 にリダイレクトされるため、全体的なユーザーエクスペリエンスは同じになるはずです。
「いいね!」 4
はい、うまくいきました!Continueボタンが表示されるインタースティシャルページで一時停止しますが、OAuthフローを安全にトリガーするためにユーザー操作が必要なのですか?
もしそれを可能にする方法があれば
それはボーナスですが、これは素晴らしいです!ありがとうございます🙏
david
(David Taylor)
10
そのページは、サイトに複数のログイン方法がある場合に表示されます。「ローカルログイン」(ユーザー名/パスワード)を無効にすると、ログインプロセスに直接進むはずです。
「いいね!」 3
system
(system)
クローズされました:
11
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.