No tenemos ningún problema para acceder a external_id del registro SSO del usuario actualmente conectado utilizando el siguiente enfoque:
api.getCurrentUser().external_id
Sin embargo, tenemos algunos botones/enlaces cuando el usuario actualmente conectado está viendo el resumen del perfil de otra persona (por ejemplo, Persona X). Este external_id es el identificador principal utilizado en nuestro sitio web, que utilizaremos para algunas redirecciones y acciones desde nuestro sitio web. El uso de la API de usuario administrador funciona, pero obviamente no para cuentas de usuario no administradoras.
# en el bloque after_initialize del plugin
after_initialize do
# Editar: probablemente también verificar que `SiteSetting.enable_discourse_connect` devuelva `true`
add_to_serializer(:user, :external_id) {object&.single_sign_on_record&.external_id}
end
El external_id es una propiedad de single_sign_on_record y no del user. Lo recuerdo porque tuve algo que ver con:
Gracias a todos por sus aportaciones, terminamos haciendo esto a través de campos de usuario personalizados que se sincronizan desde nuestra aplicación durante el inicio de sesión.