Le consommateur DiscourseConnect doit-il enregistrer les données utilisateur dans une base de données locale ?

Pour un exemple concret, je travaille sur une extension d’authentification MediaWiki qui intègre DiscourseConnect. Ce sera la seule méthode de connexion sur mon instance MediaWiki.

J’ai deux options (à ma connaissance) :

  1. Implémenter un SessionProvider qui récupère les données utilisateur à partir du rappel DiscourseConnect, puis les définit directement dans la session MediaWiki.

  2. Implémenter un PrimaryAuthenticationProvider qui récupère également les données utilisateur à partir du rappel DiscourseConnect, mais crée son propre utilisateur dans le système MediaWiki.

Je pense que l’option 1 ressemble davantage à une implémentation SSO, tandis que l’option 2 ressemble à une connexion via « Login With Google ».

Le seul inconvénient de l’option 1 que je connaisse est qu’il sera difficile d’en sortir ; je ne vois pas comment migrer et réactiver la connexion locale sans sauvegarder d’informations d’identification dans MediaWiki. Peut-être pourrais-je sauvegarder les identifiants de l’utilisateur quelque part.

Quelle option devrais-je choisir ?

Merci.