Dovrebbe DiscourseConnect consumer salvare i dati utente nel database locale?

Per un esempio reale, sto lavorando a un’estensione di autenticazione per MediaWiki che integra DiscourseConnect. Sarà l’unico metodo di accesso per la mia istanza di MediaWiki.

So che ho due opzioni:

  1. Implementare un SessionProvider che ottiene i dati dell’utente dalla callback di DiscourseConnect e li imposta direttamente nella sessione di MediaWiki.

  2. Implementare un PrimaryAuthenticationProvider che, anch’esso, ottiene i dati dell’utente dalla callback di DiscourseConnect, ma crea un proprio utente nel sistema di MediaWiki.

Penso che l’opzione 1 assomigli molto a un’implementazione SSO, mentre l’opzione 2 sia simile a “Accedi con Google”.

L’unico svantaggio dell’opzione 1 che conosco è che sarà difficile uscirne: non riesco a immaginare come migrare e abilitare l’accesso locale senza salvare alcuna credenziale in MediaWiki. Forse potrei salvare le credenziali dell’utente da qualche altra parte.

Quale opzione dovrei scegliere?

Grazie