OAuth SSOによる自動セッション管理

こんにちは、

特定のクローズドコミュニティ向けに一連のサービスを提供しており、ソーシャルプラットフォームとして Discourse の導入を検討しています。技術的に最も優れており、Discourse インスタンスを当社のサービススイートにシームレスに統合する最適な方法についてご教示いただけますでしょうか。

例を挙げますと、当社のスイートには社内で開発したサービス A とサービス B、および OAuth2 SSO サービスが含まれています。

サービス A または B でサインインボタンをクリックすると、ユーザーは SSO サービスにリダイレクトされ、ログイン後に通常通り元のサービスへ戻されます。ただし、クッキーとセッション制御により、サービス A にログインしたユーザーがその後サービス B を訪れた場合、再度ログインする必要はありません(既にセッションが確立されているため)。

同様に、SSO サービスでログインした後、サービス A または B から Discourse サービスへもシームレスに移動できる仕組みを構築したいと考えています。すべてのサービスにユーザーのエントリが存在すると仮定します。現在、OAuth2 Discourse プラグインの評価を行い、当社の SSO サービスとの連携は確認できましたが、Discourse にアクセスする際にユーザーが再度「SSO でサインイン」をクリックする必要があります。サービス A または B から共通の SSO を経由してログインした際に、Discourse 側でもセッションを自動的に開始する方法(例えば API 呼び出しなど)は存在しますでしょうか。

さらに、上記の課題は埋め込みコンポーネントを通じたコメント統合にも同样に適用されます。「公開」Discourse サービスを運用する場合はコメントセクションに問題なく、コメントも適切に埋め込まれます。しかし、「非公開」Discourse サービスを運用する場合、ユーザーが事前に Discourse にもログインしていないと、埋め込まれたコメントウィンドウが正しくコメントを表示しないという問題が発生し、シームレスな統合の観点から課題となります。

これらの課題を回避する方法はありますでしょうか。トークンやクッキーをデコードし、実際の呼び出しを行う前に適切なユーザーを即座に認証・ログインさせるミドルウェアプラグインの構築を検討しています。そのような既存のプラグインは存在しますでしょうか。

ご支援よろしくお願いいたします。

「いいね!」 2

これには「ログイン必須」のサイト設定を有効にするだけで大丈夫です。

「ログイン必須」のサイト設定を有効にすることで、この問題も解決します。

「いいね!」 2

迅速な返信をありがとうございます。ただし、この方法では問題が解決していません。埋め込まれた Discourse コメントウィンドウでも、Discourse サイトに直接アクセスしても、すでに「サービスA」にSSO経由でログイン済みのユーザーは、再度ログインする必要があります。

どちらの場合でも、「ようこそ。アカウントが必要です。既存のメンバーに招待を依頼するか、ログインして続行してください。」というウェルカムメッセージとログインボタンが表示されます。ログインボタンをクリックするとログインポップアップが表示され、ユーザー名とパスワードによるログイン、またはOAuth SSOによるログインが求められます。SSOセッションが有効なため、SSOのユーザー名とパスワードを再度入力する必要はありませんが、ユーザーにそのような体験をしてほしくありません。「サービスA」にログインしたユーザーは、Discourse側でも「ログイン」ボタンを押すことなく自動的にログインされている必要があります。

それを実現するには何が必要でしょうか?
参考までに、Discourseのバージョンは2.5.2を使用しています。

最新の Discourse では、「ログイン必須」と「認証即時」の両方が有効になっている場合、ID プロバイダーに有効な Cookie があれば、ユーザーは自動的に Discourse にログインされます。

最新バージョンより前のバージョンでは、この「魔法のような」ログインフローは、Discourse 独自の SSO プロトコルを使用するサイトに限定されていました。このプロトコルについては、Discourse 向けの公式シングルサインオン (SSO) をご覧ください。

最新バージョンへの更新をお勧めします。

「いいね!」 3

ええと、Bitnami イメージを使っていますが、最新版はまだ 2.5.2 のようなので、それについては少し待つ必要があるかもしれません(あるいは手動で更新する方法を探すか、他のイメージを使うか)。

とにかく、正しい方向へ導いていただきありがとうございます。とても助かりました!

Bitnami イメージは Discourse 開発者によってサポートされていないこと、および長年にわたりソフトウェアの通常の使用法と多くの互換性の問題があったことを覚えておいてください。Discourse 公式の標準インストール を使用することを強くお勧めします。

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.