こんにちは。
OpenID Connect(IdPとしてAzure / Entra ID)を使用してDiscourse(2026.2.0-latest (f7cec86997))を実行しています。
時折、DiscourseのiOSアプリ経由でサインインしようとした場合にのみ発生するログイン失敗に気づきました。
サーバーログから、フローは次のようになります。
POST /auth/oidc
GET /auth/oidc/callback?...state=...
(oidc) Authentication failure! csrf_detected
コールバックはDiscourseに到達しますが、CSRF/stateの検証が失敗するため、ユーザーアカウントは作成されません。
周辺のログは、これがアプリのハンドオフフローで発生していることを示唆しています。
• application_name=Discourse - iPhone
• auth_redirect=discourse://auth_redirect
ユーザーの観点からは、目立ったエラーは表示されず、単にログイン画面に戻されるだけで、エラーを見たことを覚えていないことさえよくあります。
これは、Safariやデスクトップブラウザ経由でログインする場合には発生しないようです。
私の推測では、これはiOSのCookieパーティショニング、またはアプリ内ブラウザとアプリのコールバック間のコンテキストスイッチに関連していると思われます。
単に確認したいのですが。
• OIDC + iOSアプリでこれは予期される動作かどうか
• 厳密な正規のHTTPSオリジンを保証すること以外に推奨される軽減策があるかどうか
ありがとうございます。必要であれば、匿名化されたログスニペットを提供できます。