OIDCバックチャネルログアウトのサポート

コアのOIDCプラグインでサポートしてほしい機能の一つが、OpenID Connect Back-Channel Logoutです。バックチャネルログアウトを導入することで、アイデンティティプロバイダー(IdP)がリモートでセッションを無効化できるようになり、Single-Sign-Outが正しく動作するようになります(ユーザーは他のサービスからログアウトできます。そのサービスがIdP自体であっても、RP-initiated logout経由でIdPに接続された別のサービスであっても同様です。そうすると、Discourseからも自動的にサインアウトされます)。これにより、IdPにおける「すべてのセッションからログアウト」も正しく機能するようになります。

私自身で実装を検討しても構いませんが、IdPから提供されるSession IDを保存し、後でIdPからのログアウト要求をDiscourse内の正しいセッションに関連付ける必要があるため、初回コントリビューターである私としては、いくつかの点で助けが必要になるかもしれません(笑)。もう少し時間が取れたら挑戦してみますので、問題に遭遇したらまた報告します。

「いいね!」 1

これは確かにプロダクトのギャップです。

より経験のある人にこれを見てもらいたい場合、予算を確保できるなら Marketplace を検討してください。

残念ながら予算があまりないので、自分でパッチを書いてみることにします。ソフトウェア開発にはかなり慣れています(私が管理しているフォーラムは、実際には私が作っているソフトウェア用のものです笑)、Discourseのコードベースを触ったのは初めてで、少し威圧的に感じます笑。ただ、何をすべきかはおおむね把握できていると思います。あとはDiscourseプラグインの構造を学ぶ必要があるだけです(これについてはかなり良いドキュメントがあるようで、難しいとは思えませんが、まだ調べられる時間がありませんでした)。