2021.11.15
WebクリップはSafariを削除していても使用できる(ようになった) -Webクリップとは何か(4)-
Webクリップは、WebサイトやWebアプリのブックマークです。
Webである以上、表示には当然ブラウザが使われるので Safari が必要になる筈ですね。では、Safariの利用を禁止した端末でWebクリップを開くとどうなると思いますか?
予想に反して実は、SafariがなくてもWebクリップは正しく動作します。
以下はWebクリップのみを残した状態の iPod touch ですがこれでもWebクリップは動作します。ブラウザアプリである Safari が使えない状態なのに…という点が重要です。他のブラウザアプリも一切不要で、Webクリップのみで指定のURLがブラウザ表示できます。
昔のWebクリップはSafari必須だった
iOS4や5など初期の頃、Webクリップの動作にはSafariが必須でした。当時は、
「Webクリップを使いたいけど Safari が必須なのか。そうすると Safari で任意ページを見れてしまうからダメだ」
という声が現場から聞かれたものです。それもあって Safari を禁止したい企業ではWebクリップが活用されず、その代わりにブックマークやホワイトリスト機能を搭載したセキュアブラウザを導入したりしていました。
ですが、今は Safari 禁止環境でもWebクリップ単体で動作します。
実は関係者の間でも(MDMベンダーでも)この情報がアップデートされておらず『WebクリップにはSafari必須』と誤った理解のままでいることもありますので注意しましょう。Safari必須という過去仕様が理由でサードベンダーのセキュアブラウザを導入している場合は再検討をお勧めします。
是非、最新のiOSでSafari禁止にした端末上でWebクリップを試してみて下さい。
WebクリップのUserAgentはどうなるのか
ところで、Safariを禁止してWebクリップからWebサイトを開いた場合と、Safariから直接開いた場合とで何か違いはあるでしょうか?
上図のように表示に違いはありますが、サーバサイドで得られる情報に差はありません。UserAgentが一緒になります。WebClipでアクセスした時も、Safariでアクセスしたかのように
Mozilla/5.0 (iPod touch; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1
というSafariのUserAgentと全く同じなのです。つまりサーバ側では、Webクリップ起動で表示されたのか SafariからURL指定で表示されたのかを識別することはできないということですね。
javascriptの documentElement.clientHeight で区別できなくもないですが、そもそも端末ごとに異なるため WebClip か Safari 直接かをこれだけで厳密に識別することは困難でしょう。
ということで、本稿ではWebクリップがSafari禁止環境でも機能することを紹介しました。
なお蛇足ですが、この仕様に変わったのがiOSのどのバージョンからか弊社では把握できていません。iOS12以降ではWebクリップ単体で動作することを確認しています。AppleがエンタープライズiOS現場の声に対応するのはとても早いので、意外にもっと早いiOSバージョンでも可能になっていたかも知れません。