クラウド電話帳「SKYCEB」から「SKYPCE」アプリを起動するiOSの「ユニバーサルリンク」の仕組みを解説。設定ファイルAASAを用いた、セキュアでシームレスなアプリ間連携の仕組みを紹介します。
はじめに
当社が提供するクラウド電話帳「SKYCEB」には「SKYPCE」との連携機能がございます。
SKYCEBアプリの連絡先詳細画面には、「SKYPCEで開く」というボタンが用意されており、このボタンをタップすることで、SKYPCEアプリ側で該当する人物の詳細画面をスムーズに確認することができます。
このアプリ間のシームレスな移動は、OSの標準機能(Androidでは「App Links」、iOSでは「ユニバーサルリンク」)を用いて実現されています。
今回は、 iOSで採用されている「ユニバーサルリンク(Universal Links)」 に焦点を当て、SKYCEBアプリからSKYPCEアプリをどのように起動しているのか、その仕組みについてご紹介します。
iOSのユニバーサルリンクとは
標準のWeb URL(https://...)をタップした際に、Safariなどのブラウザを経由せずに、直接iOSアプリを起動できる仕組みです。
この技術の要となるのが、「Apple App Site Association (AASA)」と呼ばれる設定ファイルです。
ユニバーサルリンクを機能させるためには、サーバー上にこのAASAファイルを配置しておく必要があります。
このファイルには、「どのiOSアプリが、どのURLパスを処理してよいか」というルールが記述されています。
iOSは、アプリのインストール時やアップデート時に、このAASAファイルを自動的に取得してWebサイト(ドメイン)とアプリを紐づけます。
この際、端末が直接サーバーへファイルを取りに行くのではなく、Appleの専用サーバー(CDN)にキャッシュされた情報を高速に取得する仕組みになっており、サーバー負荷の抑制とスムーズなアプリ起動が両立されています。
SKYPCEアプリが端末にインストールされていない状態でURLをタップした場合は、OSが自動的にブラウザを立ち上げ、SKYPCEアプリのダウンロードを促すWebページへと遷移する仕組みになっています。
ユニバーサルリンクが生まれた背景と、より安全な連携
アプリ間連携の技術は、セキュリティの観点から大きな進化を遂げてきました。
【セキュリティ上の課題】カスタムURLスキームとハイジャックのリスク
以前のiOSにおけるアプリ間連携では、「カスタムURLスキーム(例:appname://...)」という仕組みが一般的に使われていました。
しかし、この仕組みはどのアプリでも自由に同じカスタムURLスキームを名乗ることができるため、万が一悪意のある別アプリが同じスキームを登録していた場合、意図せずそちらが起動して情報が横取りされてしまうリスクがありました。
【解決策】ドメイン所有権による強固なセキュリティ
このセキュリティ上の課題を解決するために登場したのが、ユニバーサルリンクです。
独自のカスタムURLスキームではなく、 ドメインの所有者しか証明書(AASAファイル)を設置できない標準のWeb URL(https://...) を利用することで、他アプリによる横取りを防ぐ強固なセキュリティを実現しています。
SKYCEBアプリからSKYPCEアプリを呼び出す際も、このユニバーサルリンクの仕組みを利用してセキュアなアプリ間連携を実現しています。
終わりに
本記事では、SKYCEBアプリからSKYPCEアプリをシームレスに起動するための「ユニバーサルリンク」の仕組みについてご紹介しました。
SKYPCEおよびSKYCEBの開発チームでは、今回ご紹介したような技術を適切に活用し、お客様が便利で安心してサービスをご利用いただけるよう、日々開発に取り組んでおります。
これからも、お客様のご要望に1つでも多くお応えできるよう精進してまいりますので、どうぞSKYPCEならびにSKYCEBをよろしくお願いいたします。
