Sim*_*ain 5 basic-authentication ios enterprise-distribution ios6 ios7
我有一个企业分发证书,用于部署内部应用程序.我的某些应用程序具有非常敏感的材料,并且为了保护应用程序不被公司中的任何人安装,我在Web服务器上使用受密码保护的目录来托管.IPA文件,而.plist文件位于打开Web服务器.这是我的问题:
在iOS6上,我单击要安装的链接(以itms-services://开头),iOS提示我输入我的凭据然后继续安装应用程序.
在iOS7上,相同的链接工作正常,但出于某种原因,它要求我的凭据TWICE.一旦我的凭证输入两次,应用程序安装就好了.
任何人都知道为什么会这样吗?这个过程有什么不同?
我检查了Web服务器的访问日志.itunes存储的应用程序问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)"
Run Code Online (Sandbox Code Playgroud)
因此,我更改了Web服务器的设置,以便在重新引用HEAD时忽略基本身份验证.
之前:
<Directory "/Library/WebServer/Documents/test/app/">
AuthType Basic
AuthName "BASIC AUTH"
AuthUserFile "/etc/apache2/htpasswd"
Require valid-user
</Directory>
Run Code Online (Sandbox Code Playgroud)
后:
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>
Run Code Online (Sandbox Code Playgroud)
之后,itunesstored应用程序仅询问ONCE.(只有GET).
| 归档时间: |
|
| 查看次数: |
1103 次 |
| 最近记录: |