Impostazione sito per disabilitare le iscrizioni locali

Ciao,

Sto cercando un’impostazione del sito che disabiliti le iscrizioni locali, ma mantenga attive le registrazioni di nuovi account tramite OpenID Connect.

Rivedendo i report degli utenti di gennaio, la maggior parte indicava un messaggio di testo del sito: “Questo era il messaggio di errore: Le registrazioni di nuovi account non sono consentite in questo momento”, e ciò mi avrebbe portato ad abilitare Allow_new_registrations.

Esaminando tutte le impostazioni disponibili, non riesco a trovare un’opzione esplicita che consenta le registrazioni tramite OIDC ma non quelle locali.

Tuttavia, ho utilizzato una query di Data Explorer per verificare la presenza di utenti (agendo ovviamente contro i Termini di Servizio) che hanno utilizzato gli Strumenti per Sviluppatori per mostrare il pulsante di iscrizione o disabilitare selettivamente un reindirizzamento 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

Sono consapevole che l’utente che agisce contro la mia politica dovrebbe comunque verificare il proprio indirizzo email; il punto è che non desidero registrazioni di utenti che potrebbero non avere un account presso l’istituzione che mi fornisce le funzionalità OIDC.

Si potrebbe invece delimitare must_approve_users con must_approve_local_users

ma questo eliminerebbe la possibilità di disabilitare la pagina iniziale che reindirizza a /login come effetto collaterale della risoluzione di questa vulnerabilità di sicurezza.

Deseleziona enable local logins. Questo consentirà comunque le iscrizioni/accesso tramite metodi esterni, come un provider OpenID.

Il problema principale nel deselezionare quella opzione è che il mio forum viene reindirizzato direttamente a Entra, il che fa sembrare che il mio forum sia gestito da un’istituzione (mentre non lo è).

Il tuo sito richiede login? In tal caso, consulta questa impostazione:

Sì, è abilitato. È l’impostazione per cui ho inviato una pull request: rimuovere la parola “esterno” dalla descrizione dell’impostazione.

Quindi, se desideri mostrare una schermata di benvenuto sul sito ma con OIDC abilitato come unico metodo di accesso, devi:

  • deselezionare abilita accessi locali
  • deselezionare autenticazione immediata
  • avere abilitato un metodo di accesso esterno

Una volta soddisfatte queste condizioni, gli utenti vedranno una schermata che richiede l’accesso come questa:

Entrambi i pulsanti qui (registrati / accedi) porteranno al tuo unico metodo di accesso esterno.

sì, è esattamente quello che ho fatto su https://physicswithethan.discourse.diy

Ho anche disabilitato il mio componente personalizzato “override registrazione”

1 Mi Piace

Quindi sei tutto a posto, o ti manca il pulsante Iscriviti? Puoi ora consentire nuove registrazioni; abilita solo la registrazione tramite OIDC.

Disabilitare auth immediately impedisce agli utenti di creare un nuovo account tramite il flusso di accesso OIDC?

No, controlla solo se viene visualizzato lo splash screen o se gli utenti vengono reindirizzati immediatamente al gateway di accesso.

Okay, ho modificato sia login_required.welcome_message che site_description, e questo ha reso la schermata di benvenuto molto più personalizzata.

Ho anche disabilitato Auto_skip_create_confirm in modo che il mio login_required.welcome_message sia preciso riguardo alla scelta del nome utente.

2 Mi Piace

È possibile disabilitare il pulsante Registrati nella schermata di avvio senza utilizzare CSS? (Abilita accessi locali su ON invece che OFF)

Di conseguenza, gli utenti dovranno registrarsi tramite Link di invito per l’accesso locale. Tuttavia, temo che abilitare l’impostazione Solo su invito possa causare problemi dopo la creazione della conferma OIDC.

ask.discourse.com mi dice

Questa combinazione potrebbe essere una soluzione al problema descritto nel mio post precedente, se funziona.

Penso che abbia trovato queste informazioni su Invite Only and Auth skip create confirm settings show signup popup when using together

Tuttavia, noto che il rapporto sul bug riguarda Oauth2, non il plugin OpenID Connect.