SSOログインのたびにTL2ウェルカムメッセージが送信される

以下の現象が発生しています:

一部のユーザーが、ログインするたびに TL2 のウェルカム通知(「信頼レベルが引き上げられました」)を受け取っています。

この現象は、以下の条件が揃った場合に発生します:

  • Discourse が SSO クライアントとして設定された SSO ログインが有効になっている
  • WP-Discourse で「ユーザーデータの同期」が有効になっており、WordPress にログインするたびに sync_sso 呼び出しが行われる
  • sync_sso が、ユーザーの現在の信頼レベルよりも低い grant_trust_level を持つグループを設定している

これにより、ユーザーの信頼レベルが 根本から再計算 され、ウェルカムメッセージが毎回送信されてしまいます。

「いいね!」 6

こんにちは、

このバグを共有していただきありがとうございます!このバグを再現しようとしましたが、ローカルでは再現できませんでした。以下は私のセットアップです。


(WordPress)

  • WordPressユーザー「Steaky」をメールアドレス steaky@cat.com で設定
  • wpdc_custom_sso_params を追加して、$params['groups'] = 'cats'; でサインインするすべてのユーザーに cats グループを設定

(Discourse)

  • ユーザー「Steaky」をメールアドレス steaky@cat.com で作成
  • Steaky を正当な方法で trust_level_3 に設定(ロックされていない)
  • グループ「cats」を作成し、「cats」の「メンバーに自動的に付与される信頼レベル」を 2 に設定

WordPress と Discourse は接続済み :ok_hand: ユーザーデータの同期も :ballot_box_with_check:

(Discourse)

  • Steaky でログインすると、WordPress にリダイレクトされ、サインインすると Discourse にリダイレクトバックされる
  • (「cats」が Steaky に設定されていることを確認)
  • Steaky はウェルカムメッセージを表示しない

^ 上記を SiteSetting.discourse_connect_overrides_groups で繰り返しても、結果は同じです。


より詳細なセットアップを行っていると思われます。影響を受けているユーザーのセットアップについて、さらに詳しい情報を共有していただけると幸いです。

  • 他にオンになっている「Discourse Connect」サイト設定はありますか?
  • 影響を受けているユーザーは、特定の信頼レベルを付与するグループに別途参加していますか?
  • 影響を受けているユーザーの信頼レベルはロックされていますか?どのようなグループに属していますか?
  • その他役立つ情報があれば

ありがとうございます!

「いいね!」 4

このバグは1年以上前のものですが、その間にクライアントはDiscourseから離れてしまったため、これ以上完全に再現することはできません。しかし、私は常に詳細なメモを取っているので、当時のSSOペイロードの記録さえ持っています。ただし、他の設定を検査したり、その正確なインスタンスで再現を試みたりすることはできません。

メモに戻ります。何が起こったのかは、あなたがやっていることとは少し異なっていました。SSOは空のgroupsフィールド(単にgroups=)を渡していました。しかし、問題のユーザーは、SSOプロバイダーが知らない別のグループのメンバーであり、そのグループがメンバーにTL2を強制していました。

さらに、私の記憶が正しければ、TL2とTL3のウェルカムメッセージは異なる動作をするため、これを再現しようとする場合は、TL3の代わりにTL2を使用する必要があるかもしれません。

したがって、再現するには、次のことを行う必要があると思います。(2番目のグループを導入したことに注意してください)

(WordPress)

  • WordPressユーザー「Steaky」をメールアドレス steaky@cat.com で設定します。
  • $params['groups'] = 'dogs'; でサインインするすべてのユーザーに dogs グループを設定するように wpdc_custom_sso_params を追加します。

(Discourse)

  • メールアドレス steaky@cat.com でユーザー「Steaky」を作成します。
  • Steakyを正当に(ロックせずに)trust_level_1にします。
  • 「cats」と「dogs」というグループを作成し、「cats」の「メンバーに自動的に付与される信頼レベル」を2に設定します。
  • Steakyをグループ cats のメンバーにします。
「いいね!」 2

この問題について、さらに調査していただけましたでしょうか?

「いいね!」 1

前回の返信以降、そのバグの調査は中断していますが、お送りいただいた内容を拝見し、大変参考になりました。素晴らしいログを記録されていることに感銘を受けました。まだ対応中の案件ですので、近いうちに戻ります。ご確認いただきありがとうございます。:smiley:

「いいね!」 3