ついに解決策を見つけました。クライアントがプロキシやロードバランサーに接続する際に使用したプロトコル(HTTP または HTTPS)を識別するために、X-Forwarded-Proto ヘッダーを設定する必要があります。
私はプロキシサーバーとして HAProxy を使用しているため、HAProxy の設定に以下の行を追加しました。
http-request set-header X-Forwarded-Proto https if { ssl_fc }
これで「HTTPS 強制」が有効な場合でも、ログインが正常に動作するようになりました。