5

У меня есть сертификат распространения предприятия, который я использую для развертывания внутренних приложений. Некоторые из моих приложений имеют очень чувствительный материал и для защиты приложения от установки практически всем в компании, я использую защищенный паролем каталог на веб-сервере для размещения файла .IPA, в то время как файл .plist находится на открытый веб-сервер. Вот проблема, которую у меня есть:Распределение предприятий iOS 7 на защищенном сервере

На iOS6 я нажимаю ссылку для установки (начинается с itms-services: //), iOS предлагает мне ввести мои учетные данные, затем приступает к установке приложения.

На iOS7 эта же ссылка работает нормально, но по какой-то причине она запрашивает мои учетные данные ДВАЖДЫ. После того, как мои учетные данные были введены дважды, приложение устанавливается просто отлично.

У кого-нибудь есть идеи, почему это происходит? Чем отличается этот процесс?

+0

У меня возникла аналогичная проблема с установкой из App Store на iOS 7. Иногда нажатие кнопки «установить» приведет к тому, что приложение начнет загрузку, и когда эта загрузка будет завершена, она запрашивает у меня учетные данные во второй раз. Приложение затем перезагружает и устанавливает в порядке. Возможно, ваш сайт настроен отлично, и ошибка существует на стороне iOS вещей. – Nick

+0

Да, у меня не было никаких проблем с iOS 6. –

+0

Для всех, кто голосует, чтобы закрыть мой вопрос, потому что это вне темы, где я должен публиковать этот вопрос, если не здесь? Благодарю. –

ответ

5

Я проверил журнал доступа к веб-серверу. Запрошенное приложение itunes спросило TWICE. (Голова и 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)" 

Итак, я изменил настройки веб-сервера игнорировать основную авторизацию, когда он requets ГОЛОВУ.

ДО:

<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> 

После этого, спросил только РАЗ itunesstored приложение. (только GET).

+0

Спасибо, спасибо, спасибо, СПАСИБО !!!! : D –

+0

Хотелось бы, чтобы я мог принять и отложить этот ответ миллион раз. –

1

Не совсем ответ на ваш вопрос, но ваш подход не гарантирует, что несанкционированные пользователи не смогут установить ваше приложение. Если кто-то с паролем в каталоге, в котором находится файл IPA, делится этим файлом с другими - у вас нет защиты.

У меня была аналогичная ситуация, и я поместил защиту паролем непосредственно в приложение. Используя уникальный ключ, созданный приложением, пользователь запросит пароль, который будет сгенерирован с этого уникального ключа (и, следовательно, будет уникальным для этого пользователя), чтобы получить доступ к приложению.

+0

Я не очень обеспокоен этим. Люди, устанавливающие это приложение, не настолько технически подкованны. Это неплохая идея, но не то, что я ищу. Спасибо хоть! –

Смежные вопросы