コミュニティポータルを構築しており、OAuth2 を使用してプロバイダーと Discourse を連携させようとしています。メールアドレスでのログインは、コミュニティに招待されたユーザーにのみ許可したい(つまり、登録ボタンは表示しない)一方、すべての OAuth2 ログインは許可したいと考えています。
OAuth2 / ログイン設定でこれを解決できずにいます。これは可能でしょうか?要するに、OAuth2 に対して登録設定を上書きしたいのです。
コミュニティポータルを構築しており、OAuth2 を使用してプロバイダーと Discourse を連携させようとしています。メールアドレスでのログインは、コミュニティに招待されたユーザーにのみ許可したい(つまり、登録ボタンは表示しない)一方、すべての OAuth2 ログインは許可したいと考えています。
OAuth2 / ログイン設定でこれを解決できずにいます。これは可能でしょうか?要するに、OAuth2 に対して登録設定を上書きしたいのです。
「招待のみ」を有効にするだけで大丈夫だと思います。それを設定しても期待通りに動かないのでしょうか?
それなら、単に有効にするだけでよいはずです。
何を設定して、何が期待通りに動かないのか、具体的に教えてください。
良い質問ですね。それが私が最初に試したことです。以下に発生する現象を示します(これは OAuth フロー後の状態です):
次に、「新規登録を有効にする」のチェックを外しました:
画像を貼ることができません(新用户なので)が、「現在、新規アカウントの登録は許可されていません」と表示されます。
この問題を解決する他のオプションがあるかどうかわかりません。無数の組み合わせを試しましたが(すべてここに列挙することはできません)、まだ有効な結果は見つかりませんでした。
私の意図が正しく伝わらなかったと思います。OAuth2 ログインフローは正常に動作していますが、それを有効にしたまま、新規登録を無効にしたいのです。OAuth2 とメール登録の設定は連動しているように見えるため、メール登録を無効にしたまま「単に」OAuth2 を有効にする方法がありません。
招待されていない人がログインを試みた場合、どのような動作を望みますか?
あ、もしかして、招待リンクにアクセスしようとした人がこの画面を見る、という意味ですか?
招待された人だけが参加できるようにしたいのですね。そして、その人たちは必ず Clove でログインする必要がある、と。あなたの例では、まさにそのようになっているようですが、合っていますか?
「招待者のみ」を有効にし、Clove 以外のすべてのログイン方法を無効にすれば、お望みの動作になると思います。Discourse のアカウントを持っていない人は、表示されている「招待者のみ」のダイアログを見ることになります。招待された人は、Clove OAuth を経由してログインできるはずです。
より明確に目的を伝えるために、追加の説明をさせていただきます。
私は半非公開のコミュニティを構築しており、そこには3種類のユーザーが存在します。スタッフ(メールログイン)、アプリケーションユーザー(OAuth2 を介した SSO 提供)、特別ゲスト(メール利用、アプリユーザーではない)です。特別ゲストには招待が必要(メールでのログインを許可)としたい一方、OAuth2 ユーザーは「信頼された」ものとして扱い、招待を不要にしたいと考えています。その理由は、OAuth2 の認証を成功させるために必要なアカウントを持っていることが、信頼の証となるからです。
メールベースのログインと招待機能は正しく設定できましたが、これにより OAuth2 ログインにも招待が必要となり、問題が発生しています。OAuth2 ユーザーには招待を必要とさせず、表示もしたくありません。SSO アカウントを持っていること自体が信頼の証だからです。
これで問題がより明確に伝わったでしょうか?
その部分が抜けていました!
確信はありませんが、「external auth skip create confirm」がお探しの設定かもしれません。説明には SSO のみと記載されていますが、OAuth にも機能するのではないかと考えています。以前、OAuth2 設定で作成ダイアログをスキップするサイトの設定を手伝った際、これが鍵だったと思います。
ああ、なるほど。困ったね。次の推測としては、oauth2 プラグインをフォークして、招待制限の設定を上書きする必要があるだろう。
@pfaffman さん、ありがとうございます。私が受け入れている内容のようです。ホスト型 Discourse ではそれは不可能ですよね?もしそうなら、別の方法を考える必要があるかもしれません。
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.