不具合

1記事

Excelからリンクするとログアウトしてしまう原因と対策

WordやExcelからのリンクを踏むと、なぜかログイン画面に飛ばされる。そんな経験はありませんか?Microsoftの公式のトラブルシューティング記事もありますが、なんだかよくわかりません。learningBOXでも、以前はこの現象が発生していたのですが、バージョン2.8.9にて解決しました。learningBOX以外のシステムでも、同様のお問い合わせに悩まれている場合があるかと思い、その原因と対策を公開させていただきます。 目次はこちら 1. 症状 2. 原因 2. 対策 3. そもそも何で発覚したの? 4. 世の中のWebアプリは対処できてるの?   症状 あるシステムにログインした状態で、WordやExcelから、システム内のURLを開くとログイン画面に遷移してしまう。 ※ログイン済であるので、システム内のURLを直接開いてもらいたい。   原因 WordやExcelにおいて、リンクをクリックした場合、WordやExcelがそのリンクアドレスに対してリクエストを送信する。WordやExcelでは、リンク先のサイトにログインしていないので、ログインページに対してリダイレクトするようなレスポンスを受け取る。このリダイレクト先のURLがウェブブラウザに渡されることで、ログインページへの遷移が発生してしまいます。   対策 WordやExcelからログイン後のページに対するリクエストを受け取った場合は、リダイレクト処理を行わない。こうすることで、指定したURLがそのままウェブブラウザに渡され、ログイン後のページを開くことができる。上の図でいうと②のところの処理を変更すればよいです。 PHPであれば以下のようなコードで対処できます。exitしてしまうと副作用がでる可能性があるので、ご利用のフレームワークの流儀に沿ったやりかたで処理を打ち切ってください。ステータスコード200で空のドキュメントを返せばだいたいOKだと思います。   そもそも何で発覚したの? 弊社のお客様に、教材のURLをExcelで配布されている方がいらっしゃいまして、その方から、リンクを踏むとなぜかログイン画面に飛ばされる。ログインしている状態なので、教材を直接開きたいとのご意見を頂きました。Excelから開いた場合だけ特別な例外処理をしているわけではないので、Webサーバのログなどを参考に原因を調査した結果、Officeの変な挙動が原因であると判明しました。   世の中のWebアプリは対処できてるの? 2020年1月14日現在、GmailとSlackは対処されていましたが誰もが知っているようなサービスでも対処されていないものは多数あります。これはWebアプリケーション側がダメというよりは、Officeの挙動がダメなのですが、上記の方法で容易に対処できますので、ぜひ対応を検討ください。
learningBOXをもっと知りたい方へ