Para un ejemplo real, estoy trabajando en una extensión de autenticación para MediaWiki que integra DiscourseConnect. Será el único método de inicio de sesión en mi instancia de MediaWiki.
Conozco dos opciones:
-
Implementar un SessionProvider que obtenga los datos del usuario desde la devolución de llamada de DiscourseConnect y luego los establezca directamente en la sesión de MediaWiki.
-
Implementar un PrimaryAuthenticationProvider que también obtenga los datos del usuario desde la devolución de llamada de DiscourseConnect, pero cree su propio usuario en el sistema de MediaWiki.
Creo que la opción 1 se parece más a una implementación de SSO, mientras que la opción 2 es similar a “Iniciar sesión con Google”.
La única desventaja de la opción 1 que conozco es que sería difícil salir de ella; no puedo imaginar cómo migrar fuera y habilitar el inicio de sesión local si no se guardan credenciales en MediaWiki. Tal vez podría guardar las credenciales del usuario en algún otro lugar.
¿Qué opción debería elegir?
Gracias.