edh*_*ose 5 enterprise oauth ios cordova ios-provisioning
我们有一个应用程序的企业分发,我们只想在我们的组织内分发.
我们构建了指向正确位置的ipa文件和plist,并使用url创建了html页面:itms-services://?action = download&url = {link to my plist}.
然而,我们的问题是确保分销过程.我们希望拥有公司自有iPad的员工能够在移动中下载应用程序(它们具有高度移动性).因此,我们希望将plist和app放在公共网站上,这需要通过oauth服务登录.
我们的问题是,如果我们要求对应用程序和plist的URL进行身份验证,那么itms-services:// url将不再有效.发生的情况是用户单击itms-services链接,我们会看到未经过身份验证的plist请求(重定向到登录),然后是设备上的"无法连接到{hostname}".
目前,我能看到这个工作的唯一方法是不检查ipa和plist文件的身份验证.这意味着(我相信)有人猜测我们的plist文件的URL可以创建自己的itms-services链接并在未经授权的情况下下载应用程序,并且有效地导致我们违反与Apple的协议,仅向我们的员工分发.
因此,我的问题是 - 如何创建一个不向公众公开ipa和plist文件的itms-services链接?如果相关,则使用nodejs构建网站,该应用程序是PhoneGap应用程序.
edh*_*ose 10
我已经找到了解决方案.
我们无法使用oauth身份验证,因为iOS安装过程不提供输入凭据的机会.
相反,当用户请求我们显示itms-services://链接的页面时,我们为该用户创建一个唯一的字符串并使用AES-256对其进行加密,然后将其存储在数据库中.
然后我们的网址变为:itms-services://{url to plist}/{encryptedString}
.我们尝试使用查询字符串,但似乎iOS安装工具没有通过它.
当安装工具请求Plist时,我们验证针对数据库的加密字符串,打开plist并将URL重写到ipa文件中{url to ipa}/{encryptedString}
.
这看起来效果很好.我现在唯一能想到的问题是,URL可以公开共享,是与不应该访问的人合法的用户.我认为我们可以通过确保网址对时间敏感(例如仅可用5分钟)来解决这个问题.
最后,对没有正确加密字符串的plist或ipa的任何请求都会被拒绝.
我希望这对某人有用!
归档时间: |
|
查看次数: |
2374 次 |
最近记录: |