OpenID Connect グループは、同期されていないすべてのグループからユーザーを除外できます

特定の条件下では、OpenID Connect グループ同期が、同期された OIDC グループを持たないユーザーをすべての Discourse グループから退出させるバグが発生します。

ログや全体的な状況から、この問題はユーザーが単一の(同期されていない)OIDC グループを失った際にトリガーされることが示されています。システムは、変更ノートに失われたグループの名前を使用していることから、存在しない単一のグループからユーザーを退出させようとしているようです。しかし、実際には同期されていないすべてのグループからユーザーを退出させてしまいます。

このバグがアクセス権の喪失を引き起こす可能性を考慮すると、これは非常に優先度の高いバグであると判断します。

ちなみに、グループメンバーシップの変更に関するグローバルなログはありますか?それがあれば復旧がはるかに簡単になるのですが、グループごとのログしか見当たりませんでした。

この要約が正しいかどうか教えていただけますか?

  • 以前の状態:
    • ユーザー bilbo は Discourse でグループ ABC に所属しています
    • グループ BC は、それぞれ OIDC グループ bc による自動メンバーシップ用に設定されています
    • OpenID Connect groups claim は、例えば groups に設定されています
  • 実行されたアクション:
    • ユーザー bilbo が OIDC を通じてログインしました
    • OIDC クレームにはグループ cd が含まれています
    • (グループ D は Discourse には存在しません)
    • Discourse は bilbo をグループ AB から削除しました
      :red_exclamation_mark: グループ A のメンバーシップを削除するのは誤りです

まだ同期されたグループ B はありません。それ以外ははい。

「いいね!」 1