Este es el problema que estoy tratando de resolver:
- Tengo una aplicación web
Asp.netCore 3.1 con Identity (aún no Identity Server) ejecutándose enbeta.example.com. Los usuarios pueden registrarse, crear perfiles, iniciar sesión con Google/FB, etc. Es la autenticación y autorización estándar deASP.net, sin modificaciones reales en el código. - También tengo un foro de Discourse ejecutándose en un subdominio (
forumbeta.example.com).
Me gustaría que el almacén de usuarios se mantenga en la aplicación de dotnet core. La aplicación será el Proveedor de Identidad. Cuando un usuario intente iniciar sesión en Discourse, este debería solicitar a la aplicación web la información del usuario (nombre, correo electrónico, posiblemente otros atributos). Si el usuario existe en la aplicación web y ya ha iniciado sesión, Discourse debería iniciar sesión en el usuario en Discourse y permitirle publicar. Si el usuario no existe o no ha iniciado sesión, debería ser redirigido a la página de inicio de sesión/registro de la aplicación para crear una cuenta o registrarse, y luego ser redirigido de nuevo a Discourse.
He estado leyendo mucho sobre el tema y parece que necesito instalar y configurar Identity Server 4 en la aplicación dotnet, lo que le permitirá actuar como un Proveedor de Identidad. Luego, aparentemente, necesito:
- Utilizar la funcionalidad SSO integrada de Discourse
O - Instalar un plugin de OAuth2 en Discourse y luego configurarlo
En este punto me siento un poco perdido y me encantaría contar con la ayuda de alguien experimentado para saber cómo proceder. La información disponible en la web está un poco desactualizada y no quiero pasar horas siguiendo un camino sin salida.