5

組織内でのみ配布したいアプリの企業配布があります。

ipa ファイルと適切な場所を指す plist を作成し、itms-services://?action=download&url={link to our plist} という URL の html ページを作成しました。

ただし、私たちの問題は、配布プロセスを保護することです。会社所有の iPad を使用している従業員が、移動中にアプリをダウンロードできるようにしたいと考えています (彼らは非常にモバイルです)。そのため、plist とアプリを、oauth サービス経由でのログインが必要な公開 Web サイトに配置したいと考えています。

問題は、アプリと plist の URL で認証が必要な場合、itms-services:// url が機能しなくなることです。ユーザーが itms-services リンクをクリックすると、認証されていない plist の要求 (ログインにリダイレクトされる) が表示され、続いてデバイスで「{hostname} に接続できません」というメッセージが表示されます。

現時点で、これが機能していることを確認できる唯一の方法は、ipa ファイルと plist ファイルの認証がチェックされていない場合です。これは、私たちの plist ファイルへの URL を推測する誰かが、独自の itms-services リンクを作成し、許可なくアプリをダウンロードして、Apple との契約に事実上違反させて、従業員にのみ配布する可能性があることを意味します。

したがって、私の質問は、ipa ファイルと plist ファイルを公開しない itms-services リンクを作成するにはどうすればよいですか? 関連する場合、Web サイトは nodejs を使用して構築されており、アプリは PhoneGap アプリです。

4

1 に答える 1

12

私はこれに対する解決策を考え出しました。

iOS のインストール プロセスでは資格情報を入力する機会がないため、oauth 認証は使用できません。

代わりに、ユーザーが itms-services:// リンクを表示するページを要求すると、そのユーザーに一意の文字列を作成し、AES-256 を使用して暗号化してから、データベースに保存します。

URL は次のようになりますitms-services://{url to plist}/{encryptedString}。クエリ文字列を使用してみましたが、iOS インストール ツールがそれを渡さないようです。

インストール ツールが Plist を要求すると、データベースに対して暗号化された文字列を検証し、plist を開き、ipa ファイルへの URL を に書き換えます{url to ipa}/{encryptedString}

これはかなりうまくいくようです。現時点で私が考えることができる唯一の問題は、URL が、アクセス権を持つべきではない誰かと正当なユーザーとして公開される可能性があるということです。URLが時間に敏感であることを確認することで、これを回避できると思います(たとえば、5分間しか利用できないなど)。

最後に、正しい暗号化された文字列のない plist または ipa への要求はすべて拒否されます。

それが誰かに役立つことを願っています!

于 2012-06-03T15:56:50.550 に答える