ある日、お客さんに納品したWebアプリに一部の人がアクセスできない事象が発生した。
ChromeのDevToolsのログを見ると、APIサーバへの一部のリクエストで、No 'Access-Control-Allow-Origin' header
エラーになっていた。
ただ、APIサーバ側のアクセスコントロール関連の設定には問題がなく、また、アクセスできる人のDevToolsのログには、問題のヘッダーが正しく含まれていた。
Chromeの拡張機能を全て無効にしても変わらず。他のブラウザでも同じエラーになったため、
どうもアプリケーションレイヤーの問題ではなさそうな気がしていた。
そこでchrome.exe --user-data-dir="C://Chrome dev session" --disable-web-security
で起動して再度アクセスすると、今度は403 Forbidden
エラーになった。
しかも、レスポンスボディにZscaler
という見慣れない単語が表示されていた。
調べてみると、Zscalerはクラウド向けのセキュリティ製品を扱ってる会社で、Zscaler Internet Access
というWebゲートウェイのサービスも提供していた。怪しい。
しかもこのサービスは、個人単位でのポリシー設定もできるらしく、なおさら怪しかった。
翌日、お客さんのシステム部門に問い合わせてもらい、Zscaler側の設定を見直してもらったところ、無事、アクセスできるようになった。
一部の人のアクセスポリシーが、他の人とは違っていたとのことだった。
お客さんのネットワーク環境に関することなので、あまり詳細なことは書けず、面白みに欠けると思いますが。
今回の事象は、リモートデバックだったことと、非システム部門のお客さんとのコミュニケーションが必要だったこともあり、何だかんだで解決に2週間かかりました。
この記事はそんな苦労を、読んだ人がしなくて済むようになることを願って書いたものなので、その辺は大目に見てください。