Sto costruendo un portale community in cui utilizzerò OAuth2 per collegare il provider a Discourse. Voglio consentire l’accesso tramite email solo se l’indirizzo è stato invitato alla community (quindi non deve esserci un pulsante di registrazione), ma voglio consentire tutti i login OAuth2.
Non riesco a risolvere questo problema con le impostazioni OAuth2 / Accesso. È possibile? In sostanza, voglio sovrascrivere le impostazioni di registrazione per OAuth2.
Il passo successivo è stato deselezionare “abilita nuove registrazioni”:
Non posso pubblicare l’immagine (sono un nuovo utente), ma dice: “Al momento le registrazioni di nuovi account non sono consentite.”
Non sono sicuro di quali altre opzioni esistano per risolvere il problema. Ho provato una moltitudine di combinazioni (non posso elencarle tutte qui) e non ho ancora trovato un esito che funzioni.
Credo che il mio intento non sia stato colto. Ho il flusso di accesso OAuth2 funzionante normalmente, ma voglio mantenerlo abilitato disabilitando al contempo le nuove registrazioni. Le impostazioni per OAuth2 e per la registrazione via email sembrano essere collegate, quindi non posso semplicemente “abilitare” OAuth2 lasciando disabilitata la registrazione via email.
Cosa vuoi che accada se qualcuno che non è stato invitato tenta di accedere?
Ah! Stai dicendo che è questo ciò che vede una persona che tenta di rispondere a un link di invito?
Vuoi accettare solo le persone invitate. Vuoi che queste persone siano obbligate ad accedere tramite Clove. Giusto? Sembra che sia esattamente ciò che è accaduto nel tuo esempio.
Penso che l’impostazione solo inviti più la disattivazione di tutti i tipi di accesso tranne Clove faccia esattamente ciò che cerchi. Le persone che non hanno un account Discourse vedranno la finestra di dialogo “solo inviti” che hai configurato. Le persone invitate dovrebbero essere in grado di accedere tramite l’OAuth di Clove.
Un’ulteriore spiegazione potrebbe essere utile per chiarire l’obiettivo:
Sto configurando una comunità semi-privata con tre tipi di utenti: membri dello staff (accesso tramite email), utenti dell’applicazione (SSO fornito tramite OAuth2) e ospiti speciali (accesso tramite email, non utenti dell’app). Voglio richiedere inviti per gli ospiti speciali (consentendo loro di accedere tramite email), ma desidero considerare gli utenti OAuth2 come “fidati”, quindi non hanno bisogno di un invito. Il motivo è che possedere l’account necessario per eseguire correttamente l’autenticazione OAuth2 significa che sei considerato fidato.
Riesco a configurare correttamente gli accessi basati sull’email con inviti, ma questo compromette gli accessi OAuth2, poiché anch’essi richiedono un invito. Non voglio che abbiano bisogno di un invito o che lo vedano: hanno fiducia in virtù del fatto di possedere un account SSO.
Penso, anche se non ne sono sicuro, che external auth skip create confirm potrebbe essere ciò che stai cercando. La descrizione menziona solo SSO, ma penso che ora funzioni anche per OAuth. Ho aiutato un’altra persona a configurare un sito che salta la finestra di creazione per la sua configurazione OAuth2 e credo che questo fosse il trucco.
Grazie @pfaffman, sembra essere quello che ho finito per accettare. Non penso sia possibile con Discourse ospitato, giusto? Se non lo è, dovrò trovare un’altra soluzione.