Estamos utilizando Discourse con SSO y funciona genial.
Sin embargo, me he encontrado con una situación extraña.
Estamos aprovechando los enlaces de mensajes privados de Discourse en nuestro sitio externo (paddling.com) para generar un nuevo mensaje privado en Discourse (forums.paddling.com).
Si el usuario ha iniciado sesión en los foros, funciona exactamente como se espera.
Si el usuario inicia sesión en paddling.com (pero no ha visitado los foros antes), al hacer clic en el enlace para generar un nuevo mensaje, simplemente se abren los foros (sin generar el nuevo mensaje).
Si el usuario hace clic en el enlace del mensaje por segunda vez, entonces el mensaje funciona.
Parece que el problema es que, aunque el usuario ha iniciado sesión en paddling.com, no ha iniciado sesión en los foros hasta que visualiza una página en forums.paddling.com.
Es posible que puedas utilizar el enfoque descrito aquí: Creating pre-filled personal message links. No lo he probado configurando return_path para redactar un MP prellenado, pero creo que podría hacerse funcionar.
El mensaje personal prellenado funciona correctamente (siempre que el usuario haya iniciado sesión). Haré que nuestro desarrollador revise el uso de return_path.
Acabo de releer mi respuesta anterior. Lo que quería decir era que el enfoque descrito en este tema debería funcionar: Crear un enlace de inicio de sesión SSO. Así es como nuestro plugin de WordPress genera enlaces que inician sesión automáticamente en Discourse. Lo que no he probado es utilizar este enfoque con una URL de mensaje predefinido configurada para return_path.