さらに詳しく調べてみたところ、@simon がこの投稿で説明しているアプローチを少し修正した、よりハック的な手法ではない解決策があるのではないかと思いました:Automatically login via SSO - #4 by simon
- 「SSO がすべての戻りパスを許可する」設定を有効にする
- 自分のページに隠し iframe を追加し、
https://discourse.example.com/session/sso?return_path=path_to_mypage.htmlを読み込む - ユーザーがログインしている場合(親ページで既に SSO 経由でアプリにログインしているため、ユーザーの操作は不要)、iframe が
mypage.htmlにリダイレクトされた時点で、postMessage() を使用して親ページに「ユーザーが Discourse にログインした」ことを伝え、フォーラムトピックを埋め込むスクリプトをトリガーする
それでもまだ理想的な解決策には思えません。なぜなら、追加の往復通信が発生するからです(上記のプロセスは、ユーザーがまだ Discourse にログインしていない場合にのみ必要です)。
私には、埋め込みページの参照元 URL を SSO 経由でリダイレクトされる際に保持できるようにすることが、理想的な解決策のように思えます。
編集:上記で説明した改良版の「ハック」を実装しました。少なくとも、OP で説明した元のハックよりもはるかにうまく機能していると言えます。