6

社内アプリケーションの展開に使用するエンタープライズ配布証明書を持っています。一部のアプリケーションには非常に機密性の高い素材が含まれており、社内のほぼ全員がアプリケーションをインストールできないように保護するために、.plist ファイルは Web サーバー上にあり、パスワードで保護された Web サーバー上のディレクトリを使用して .IPA ファイルをホストしています。ウェブサーバーを開きます。私が抱えている問題は次のとおりです。

iOS6 では、インストールするためのリンク (itms-services:// で始まる) をクリックすると、iOS は資格情報の入力を求めてから、アプリケーションのインストールに進みます。

iOS7 では、同じリンクが正常に機能しますが、何らかの理由で、資格情報を 2 回要求されます。資格情報を 2 回入力すると、アプリケーションは正常にインストールされます。

なぜこれが起こっているのか誰にも分かりますか?このプロセスの違いは何ですか?

4

2 に答える 2

5

Webサーバーのアクセスログを確認しました。itunesstoredアプリがTWICEに聞いてきました。(HEAD と GET)

10.0.2.2 - - [06/Feb/2014:14:50:48 +0900] "HEAD /test/app/app.ipa HTTP/1.1" 401 - "-" "itunesstored/1.0 iOS/7.0.4 model/iPhone4,1 (6; dt:73)"
10.0.2.2 - test [06/Feb/2014:14:51:03 +0900] "HEAD /test/app/app.ipa HTTP/1.1" 200 - "-" "itunesstored/1.0 iOS/7.0.4 model/iPhone4,1 (6; dt:73)"
10.0.2.2 - - [06/Feb/2014:14:51:04 +0900] "GET /test/app/app.ipa HTTP/1.1" 401 539 "-" "itunesstored/1.0 iOS/7.0.4 model/iPhone4,1 (6; dt:73)"
10.0.2.2 - test [06/Feb/2014:14:51:09 +0900] "GET /test/app/app.ipa HTTP/1.1" 200 4066787 "-" "itunesstored/1.0 iOS/7.0.4 model/iPhone4,1 (6; dt:73)"

そこで、WEBサーバーがHEADをリクエストした際に基本認証を無視するように設定を変更しました。

前:

<Directory "/Library/WebServer/Documents/test/app/">
    AuthType Basic
    AuthName "BASIC AUTH"
    AuthUserFile "/etc/apache2/htpasswd"
    Require valid-user
</Directory>

後:

SetEnvIf Request_Method HEAD headreq
<Directory "/Library/WebServer/Documents/test/app/">
    Order Allow,Deny
    Allow from env=headreq
    AuthType Basic
    AuthName "BASIC AUTH"
    AuthUserFile "/etc/apache2/htpasswd"
    Require valid-user
    Satisfy Any
</Directory>

その後、itunesstore アプリは 1 回だけ要求しました。(GETのみ)。

于 2014-02-06T07:39:44.633 に答える
1

あなたの質問に対する答えではありませんが、あなたのアプローチは、許可されていない人があなたのアプリをインストールできないことを保証するものではありません。IPA ファイルを保持するディレクトリへのパスワードを知っている誰かがそのファイルを他のユーザーと共有した場合、保護はありません。

私も同様の状況にあり、パスワード保護をアプリに直接入れました。アプリによって生成された一意のキーを使用して、ユーザーは、この一意のキーから生成される (したがって、そのユーザーに固有の) パスワードを要求して、アプリにアクセスします。

于 2014-01-15T19:31:09.770 に答える