サインアップフォームなしのOAuth2 +メールログイン

コミュニティポータルを構築しており、OAuth2 を使用してプロバイダーと Discourse を連携させようとしています。メールアドレスでのログインは、コミュニティに招待されたユーザーにのみ許可したい(つまり、登録ボタンは表示しない)一方、すべての OAuth2 ログインは許可したいと考えています。

OAuth2 / ログイン設定でこれを解決できずにいます。これは可能でしょうか?要するに、OAuth2 に対して登録設定を上書きしたいのです。

「招待のみ」を有効にするだけで大丈夫だと思います。それを設定しても期待通りに動かないのでしょうか?

それなら、単に有効にするだけでよいはずです。

何を設定して、何が期待通りに動かないのか、具体的に教えてください。

「いいね!」 2

良い質問ですね。それが私が最初に試したことです。以下に発生する現象を示します(これは OAuth フロー後の状態です):

次に、「新規登録を有効にする」のチェックを外しました:

画像を貼ることができません(新用户なので)が、「現在、新規アカウントの登録は許可されていません」と表示されます。

この問題を解決する他のオプションがあるかどうかわかりません。無数の組み合わせを試しましたが(すべてここに列挙することはできません)、まだ有効な結果は見つかりませんでした。

私の意図が正しく伝わらなかったと思います。OAuth2 ログインフローは正常に動作していますが、それを有効にしたまま、新規登録を無効にしたいのです。OAuth2 とメール登録の設定は連動しているように見えるため、メール登録を無効にしたまま「単に」OAuth2 を有効にする方法がありません。

招待されていない人がログインを試みた場合、どのような動作を望みますか?

あ、もしかして、招待リンクにアクセスしようとした人がこの画面を見る、という意味ですか?

招待された人だけが参加できるようにしたいのですね。そして、その人たちは必ず Clove でログインする必要がある、と。あなたの例では、まさにそのようになっているようですが、合っていますか?

「招待者のみ」を有効にし、Clove 以外のすべてのログイン方法を無効にすれば、お望みの動作になると思います。Discourse のアカウントを持っていない人は、表示されている「招待者のみ」のダイアログを見ることになります。招待された人は、Clove OAuth を経由してログインできるはずです。

「いいね!」 1

より明確に目的を伝えるために、追加の説明をさせていただきます。

私は半非公開のコミュニティを構築しており、そこには3種類のユーザーが存在します。スタッフ(メールログイン)、アプリケーションユーザー(OAuth2 を介した SSO 提供)、特別ゲスト(メール利用、アプリユーザーではない)です。特別ゲストには招待が必要(メールでのログインを許可)としたい一方、OAuth2 ユーザーは「信頼された」ものとして扱い、招待を不要にしたいと考えています。その理由は、OAuth2 の認証を成功させるために必要なアカウントを持っていることが、信頼の証となるからです。

メールベースのログインと招待機能は正しく設定できましたが、これにより OAuth2 ログインにも招待が必要となり、問題が発生しています。OAuth2 ユーザーには招待を必要とさせず、表示もしたくありません。SSO アカウントを持っていること自体が信頼の証だからです。

これで問題がより明確に伝わったでしょうか?

その部分が抜けていました!

確信はありませんが、「external auth skip create confirm」がお探しの設定かもしれません。説明には SSO のみと記載されていますが、OAuth にも機能するのではないかと考えています。以前、OAuth2 設定で作成ダイアログをスキップするサイトの設定を手伝った際、これが鍵だったと思います。

他の様々なオプションでも試してみます。結果は以下の通りです:

招待のみの場合+外部スキップ:

招待のみ、外部スキップ、メールログイン無効化:

これらのオプションは動作しないようです。

ああ、なるほど。困ったね。次の推測としては、oauth2 プラグインをフォークして、招待制限の設定を上書きする必要があるだろう。

@pfaffman さん、ありがとうございます。私が受け入れている内容のようです。ホスト型 Discourse ではそれは不可能ですよね?もしそうなら、別の方法を考える必要があるかもしれません。

「いいね!」 1

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