2012-02-16 2 views
1

Мы развертываем приложения iOS в воздухе (OTA) на нашем предприятии для сотрудников, и мы контролируем, кто может получить доступ к сайту загрузки через SiteMinder, который аутентифицирует пользователя и авторизует их на основе членства в группе AD. Этот процесс проверки подлинности создает на устройстве файл cookie, указывающий, что пользователь аутентифицирован (и, возможно, тоже авторизован), поэтому они не продолжают получать подсказки снова и снова для каждого запроса.Можете ли вы удалить куки, используемые пользовательским агентом установщика (отличным от Safari) на мобильном устройстве iOS?

Проблема заключается в том, что пользователь может загрузить и установить приложение один раз и после этого никогда не сможет установить приложение еще раз, потому что они попадают в цикл запросов учетных данных. Этот цикл вызван тем, что cookie аутентификации Siteminder истек и не удаляется или не обновляется пользовательским агентом на устройстве.

Из того, что я читал, это связано с тем, что URL-адрес установки OTA, который начинается с «itms-Services: //», использует другой пользовательский агент, чем Mobile-Safari на устройстве, и не отвечает на cookie удаляет вызов с сайта и не удаляет cookie самостоятельно. Это также означает, что удаление файлов cookie, очистка кеша и данных веб-сайта в Safari не позволяет устранить проблему - Safari не владеет файлом cookie.

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

Итак, есть ли способ сообщить пользователю-агенту, что itms-services использует для удаления своих файлов cookie на устройстве, или существует ли какая-либо другая проблема в этой проблеме для развертывания OTA для приложений iOS?

Использование Apple AppStore в этом случае не является жизнеспособным решением.
Изменение параметров в SiteMinder, чем управление именами файлов cookie, так что новый файл cookie также не является жизнеспособным, поскольку это может негативно повлиять на других пользователей с одним знаком входа, которые поддерживает этот домен SiteMinder.

ответ

1

Вы можете удалить куки следующим способом:

for(NSHTTPCookie *cookie in [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]) { 

    if([[cookie domain] rangeOfString:@"mydomain.com"].location!=NSNotFound) { 

     [[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie]; 
    } 
} 
+0

Простите мое невежество, но как и где это должно быть запущено, и это повлияет на хранилище файлов cookie для пользовательского агента установщика услуг itms или только файлов cookie, обработанных Safari, на устройстве iOS? Из того, что я читаю, это может быть только для печей и только для файлов cookie для приложения, запускающего код. – ScottCher

+0

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

+0

В этом проблема - файлы cookie истекают и не могут быть удалены, чтобы обновиться на устройстве, поэтому, как только вы выполните аутентификацию с помощью ссылки itms-services для определенного домена, вы можете (lol) никогда не делать этого снова, видимо. Это проблема, которую я пытаюсь исправить. – ScottCher

3

Мы столкнулись с аналогичной проблемой в последнее время. Мы смогли исправить это, добавив «Allow HEAD» к защищенному ресурсу в siteminder. Администраторы Siteminder могут включить только «GET и POST» в качестве разрешенных операций.

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