ローカルサインアップを無効にするサイト設定

こんにちは、

ローカルサインアップを無効にしつつ、OpenID Connect による新規アカウント登録を維持するサイト設定をお探しのようです。

1 月のユーザーレポートを振り返ると、大半は以下のサイトテキストを指しており、それによって Allow_new_registrations を有効にする必要があったと考えられます。

これはエラーメッセージです:現在、新規アカウント登録は許可されていません。

利用可能な設定をすべて確認しましたが、OIDC 経由での登録は許可しつつ、local サイト経由での登録は明示的に禁止する設定は見当たりませんでした。

ただし、Data Explorer クエリを使用して、利用規約に違反する行為(もちろん)として、DevTools を使ってサインアップボタンを再表示させたり、JS リダイレクト を部分的に無効化したりして登録を試みたユーザーの有無を確認しました。

SELECT
  u.id,
  u.username,
  u.name,
  ue.email,
  u.active,
  u.approved,
  u.created_at,
  u.last_seen_at
FROM users u
LEFT JOIN user_associated_accounts uaa
  ON uaa.user_id = u.id
LEFT JOIN user_emails ue
  ON ue.user_id = u.id
 AND ue.primary = true
WHERE uaa.user_id IS NULL
  AND u.staged = false
ORDER BY u.last_seen_at DESC NULLS LAST, u.created_at DESC

ポリシーに違反するユーザーであっても、メールアドレスの検証は必要になることは理解しています。ただ、OIDC 連携を提供している機関にアカウントを持っていない可能性のあるユーザーが登録してくることを避けたいと考えています。

must_approve_usersmust_approve_local_users にスコープを限定する代替案もありますが、これにより、このセキュリティ脆弱性の解決に伴う副作用として、ログインへリダイレクトする初期ページを無効化する 可能性が失われてしまいます。

「ローカルログインを有効にする」のチェックを外してください。これにより、OpenID プロバイダーなどの外部方法によるサインアップ/ログインは引き続き可能になります。

そのチェックを外す主な問題は、フォーラムが直接 Entra へリダイレクトされてしまうことです。それにより、フォーラムが機関によって管理されているように見えてしまいます(実際はそうではありません)。

あなたのサイトは「ログインが必要」に設定されていますか?もしそうであれば、この設定を確認してください:

はい、それは有効になっています。私がプルリクエストを送った設定です。設定の説明から「external」という言葉を削除するものです。

したがって、サイト上でスプラッシュスクリーンを表示しつつ、ログイン方法として OIDC のみを有効にしたい場合は、以下の手順を実行する必要があります。

  • 「ローカルログインを有効化」のチェックを外す
  • 「すぐに認証」のチェックを外す
  • 外部ログイン方法を 1 つ有効にする

これらの条件が満たされると、以下のような「ログインが必要です」という画面が表示されます。

ここにある両方のボタン(サインアップ / ログイン)は、設定済みの外部ログイン方法に遷移します。

はい、https://physicswithethan.discourse.diy に対してまさにその手順を踏みました。

さらに、カスタムコンポーネントの「サインアップオーバーライド」も無効にしました。

「いいね!」 1

これで準備完了です。サインアップボタンが見つからない場合は、現在「新規登録を許可」できます。これにより、OIDC経由でのサインアップのみが有効になります。

auth immediatelyを無効化すると、OIDCログインフローを通じて新しいアカウントを作成することがユーザーにできなくなりますか?

いいえ、スプラッシュ画面の表示を制御するか、ユーザーを即座にログインゲートウェイにリダイレクトするかのどちらかを制御するだけです。

はい、login_required.welcome_messagesite_description の両方を調整しました。その結果、スプラッシュ画面がよりパーソナライズされた印象になりました。

また、Auto_skip_create_confirm を無効にしたため、login_required.welcome_message におけるユーザー名の選択に関する記述が正確になりました。

「いいね!」 2