Seguí el hilo SSO oficial, pero no logro que aparezca la página de inicio de sesión universal.
Cuando solo habilité OAuth, funcionó. Inicié sesión con el botón “Con Auth0” sin ningún problema. Al habilitar SSO, me redirigió a la página de Auth0, pero solo muestra una página de error con el mensaje " invalid_request : Parámetro no válido: client_id debe ser una cadena". Lo primero que pensé es que estaba poniendo la “sso_url” incorrecta. La verdad es que no tengo ni idea de qué debería ir ahí, así que puse “https://.auth0.com/authorize”.
¿Alguien ha tenido un problema como este? ¿O tiene alguna idea?
La sso url debe configurarse con la URL que has configurado en el sitio de tu proveedor de SSO para manejar la solicitud de SSO de Discourse.
La implementación de SSO de Discourse no utiliza OAuth. Es posible que eso sea lo que esté causando confusión.
¿Qué lenguaje o framework está utilizando el sitio de tu proveedor de SSO? Es posible que ya exista una implementación de SSO para él que puedas utilizar.
Eso tiene sentido. Auth0 y el SSO de Discourse son sistemas completamente separados. No puedes activar ambos en tu sitio. Parece que todo lo que necesitas hacer es asegurarte de que Auth0 esté configurado correctamente en tu sitio.
Como usuario nuevo en la configuración de Discourse, comparto tu confusión al no entender bien la función de SSO. Existe un tema sobre ello, pero aún no explica claramente su diferencia, especialmente porque algunas de las configuraciones de SSO están pensadas para usar Discourse como proveedor de SSO (algo así como cómo quieres usar Auth0).
Para usar un proveedor de identidad externo con la función de SSO, necesitas un servicio intermediario, como discourse-sso-oidc-bridge. Hoy lo logré funcionar con Keycloak en lugar de Auth0; debería ser más o menos lo mismo.
Si solo quieres usar Auth0 como los inicios de sesión sociales (Google/Facebook/GitHub), lo que probablemente necesitas es el plugin discourse-openid-connect. Deberás instalarlo y usar la configuración que ofrece. Lo probé con Keycloak antes de que existiera la función de SSO separada. No requiere el puente intermedio y podría darte lo que buscas (siempre que no necesites que los detalles de Discourse se actualicen o sincronicen cuando un usuario inicie sesión nuevamente, que es el único momento en que Discourse sincroniza los datos de la cuenta).
Los usuarios serán solicitados a crear una cuenta, pero todos los campos del formulario se rellenarán automáticamente desde tu proveedor de autenticación. Una futura actualización del plugin tiene previsto omitir este paso y crear la cuenta directamente (siempre que sea la única opción de inicio de sesión), tal como lo hace actualmente la función de SSO.