ios - 您能否删除 iOS 移动设备上安装程序用户代理(不同于 Safari)使用的 cookie?

标签 ios authentication deployment cookies ota

我们正在企业内向员工部署 iOS 应用程序无线 (OTA),我们正在控制谁可以通过 SiteMinder 访问下载站点,SiteMinder 对用户进行身份验证并根据 AD 组成员身份对其进行授权。此身份验证过程会在设备上创建一个 cookie,指示用户已通过身份验证(并且可能他们也已获得授权),因此他们不会继续一遍又一遍地收到每个请求的提示。

问题是用户可以下载并安装该应用程序一次,之后再也无法安装该应用程序,因为他们陷入了凭据提示循环。此循环是由于 Siteminder 身份验证 cookie 已过期且未被设备上的用户代理删除或更新的事实引起的。

根据我的阅读,这是因为以“itms-Services://”开头的 OTA 安装 URL 使用的用户代理与设备上的 mobile-Safari 不同,并且不响应来自的 cookie 删除调用该网站并不会自行删除 cookie。这也意味着在 Safari 下删除 cookie、清除缓存和网站数据并不能解决问题 - Safari 不拥有 cookie。

删除应用程序(如果仍然安装)也不能解决问题,也不能重新启动设备(我还没有尝试删除设备,也无法真正开始要求我们的用户这样做)。

那么,有没有办法告诉用户代理 itms-services 正在使用它来删除设备上的 cookie,或者对于 iOS 应用程序的 OTA 部署是否有其他解决方法?

在这种情况下,使用 Apple AppStore 不是一个可行的解决方案。
更改 SiteMinder 中的参数而不是管理 cookie 的命名以创建新的 cookie 也是不可行的,因为这会对该 SiteMinder 域支持的其他单点登录用户产生不利影响。

最佳答案

我们最近遇到了类似的问题。我们能够通过将“允许 HEAD”添加到站点管理器中的 protected 资源来修复它。 Siteminder 管理员可能只启用了“GET 和 POST”作为允许的操作。

关于ios - 您能否删除 iOS 移动设备上安装程序用户代理(不同于 Safari)使用的 cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9316347/

相关文章:

javascript - 在登录到 React App 时添加基于角色的重定向

deployment - 如何将 Sinatra 应用程序作为 gem 发送并部署它?

PHP 数据库部署 git/capistrano

java - 在java中获取登录用户名

docker - 如何在Docker容器中部署kepler_scientific_workflow_run_engine?

ios - 注册 NSURLProtocol (URLProtocol) 类以与外部应用程序一起使用?

ios - 如何在swift中使用 Collection View 显示文件夹中的图像

ios - 通过 POST 方法的 Alamofire NSURLRequest 不起作用

ios - UIRefreshControl 和 UiTableview 内容插图

authentication - Nginx 配置 : how to use auth_basic authentication if ssl_client_certificate none provided?