Discourse SSO with Wordpress は /core/wp-admin URL の場合のみ動作します

Discourse の SSO に依存する新しい WordPress プラグインをデプロイしましたが、サイトの実稼働環境でのみ発生する奇妙なバグに遭遇しました。

ローカル環境では、redirect_url パラメータを使用してページに戻ることができます。しかし、実稼働サイトでは、redirect_urlwp-admin の URL である場合のみ SSO が機能します。例えば:

SSO は正常に動作します…
https://www.example.com/core/wp-login.php?redirect_to=https%3A%2F%2Fwww.example.com%2Fcore%2Fwp-admin%2F&reauth=1

SSO は正常に認証されず、ログイン/投稿ページに戻ってしまいます
https://www.example.com/core/wp-login.php

以前このような事例に遭遇したことはありますか?どこを確認すべきかアイデアはありますか?この問題が解消しない場合、wp-admin を捕捉するための独自のリダイレクト機構を構築せざるを得ません。

設定が間違っているリバースプロキシか、同様の不審な挙動が起きていると確信しています。もしかしてCloudflareをお使いですか?

はい、Cloudflare です。Cloudflare でテストできる設定はありますか。

オレンジのクラウドをオフにしてください。

ハハ、それは私の判断ではありません。このサイトはプライマリキャッシュとして Cloudflare を使用しています。リバースプロキシについて調べて、CF の設定を調整できるか確認する必要があります。

Cloudflareの最適化によって引き起こされる問題に関するトピックは数十件あります。CloudflareをCDNとして使用し、Cloudflare経由でキャッシュ可能なものだけをDiscourseがリダイレクトするように設定することも可能です。

また、一時的にそれを無効にして、問題が解決するかどうかを確認することもできます。

Discourse での Cloudflare の「パフォーマンス」および「Rocket Loader」をページルールで無効にするだけで、おそらく解決します。

はい、これは奇妙な問題の複合で、一部は WP のインストールディレクトリにも起因しているようです。当面の回避策として、常に /core/wp-admin へリダイレクトし、その後、?final_redirect_url というパラメータを自前のフックが検知して、必要なアクションを実行し、目的地へ戻すようにしています。

SSOクライアントオプションを有効にして、WP Discourse – WordPress plugin | WordPress.org を使用しているようですが、合っていますでしょうか?(DiscourseがSSOプロバイダーです。)