Auth0向けOAuthプラグインをよりシームレスに利用

Auth0認証をDiscourseアプリに導入しようとしています。基本的に、こちらのワークフローに従って設定し、動作させることができました。

しかし、いくつかの理由で、まだ完全に満足していません。

  1. サインイン/サインアップをクリックすると、「Auth0で」というボタンしか表示されません。Discourseページのトップにあるサインイン/サインアップをクリックした後に表示される、Auth0ログイン/サインアップパネルのみを表示させたいです。
  2. Auth0で認証した後、ユーザーは新しいユーザーを作成する必要はなく、Auth0のおかげで全てがうまくいくはずです。
  3. メール認証は、DiscourseではなくAuth0経由で処理されるべきです。
  4. そのブラウザで、おそらくAuth0の同じアプリを使って、プラットフォームの別のモジュールで既にログインしている場合、自動的にログインされるべきです。
  5. ポイント1を実装した後、これがより困難になる可能性があるため、管理者ユーザーとしてログインする可能性は依然として残しておくべきです。

これらの設定、または少なくともその一部の設定について、お手伝いいただけますでしょうか?

この設定はDiscourseの auth_overrides_email で確認できると思います。

そして、この設定 auth_skip_create_confirm を使用できます。

外部認証経由でサインアップする場合、アカウント作成ポップアップをスキップします。 auth_overrides_emailauth_overrides_usernameauth_overrides_name と併用するのが最適です。

また、お探しの機能を提供する可能性のある auth_immediately 設定もあります。

ユーザーの操作なしに、外部ログインシステムに自動的にリダイレクトします。これは login_required が true で、外部認証方法が1つしかない場合にのみ有効です。

OAuthをバイパスするには /u/admin-login にアクセスできます。

「いいね!」 3

@blake さん、ご意見ありがとうございます :slight_smile:

ポイント1と4についても、何かご意見はありますか?それとも、これらのポイントはより難しいでしょうか?

これらの設定 auth_immediatleyauth_skip_create_confirm が、1点目と4点目に対応できると思います。有効にして、改善されるか確認していただけますか?

@blake 入力ありがとうございます。

セットアップページに記載されていることと、あなたの提案をすべて試しました。しかし、ログインしようとすると、次のような表示が出ます。

一方、https://community.auth0.com/ では、ログインしようとすると次のような表示になります(私のサイトでも同様にしたいと考えています)。

さらに、テスト用のメールアドレスでログインしようとしましたが、Auth0で認証済みであるにもかかわらず、メール認証が要求されました。

これを適切に変更する方法をご存知でしたら教えていただけますでしょうか?

enable local logins 設定を無効にしてみてください。これにより、ログイン機能が削除され、ユーザーは OAuth2 でのみログインできるようになります。

ただし、これは別のブラウザーセッションで行うことをお勧めします。そうすれば、設定の問題が発生した場合でも、ログイン機能を失うことなく変更を元に戻すことができます。

こんにちは @blake さん
洞察をありがとうございます。いくつか進展がありましたが、残念ながらログインにまだ小さな問題があります。ログインボタンを押すと、Auth0から正しいユーザー情報が取得されますが、Discourseはまだアカウントを作成しようとします。

「ようこそ、アカウントを作成しましょう」という画面にリダイレクトされ、「プライマリメールアドレスは既に使用されています」というエラーが表示されます。

以下は、すべてのオーバーライドの現在の設定です。

どうか、よろしくお願いいたします。

こんにちは、ロバートさん!

この設定を有効にすることで、修正できます:「oauth2 連携変更を許可する」

こんにちは、@leonardo さん。その設定を有効にしても、問題は依然として発生しています。

なぜか今はうまく動作しています。oauth2 email verified ルールを追加したところ、動作するようになりました。興味深いですね。

このプラグインは素晴らしいです。サインアウトすると、Discourseからもサインアウトされることに気づきました。しかし、サインインをクリックすると…(Auth0にアクセスせずに)すぐにサインインされます。Auth0アプリでログアウトリダイレクトURIを許可しましたが、このプラグインからhttps://AUTH0_DOMAIN/v2/logoutが呼び出されていないようです。これは誰がメンテナンスしていますか?追加できますか?