如何在面向公众的网站上使用oauth保护iOS企业分发?
我们有一个应用程序的企业发行版,我们只希望在我们的组织内发行 我们构建了ipa文件和指向正确位置的plist,并创建了带有url:itms services://?action=download&url={链接到plist}的html页面 然而,我们的问题是确保分发过程的安全。我们希望拥有公司自有iPad的员工能够在移动过程中下载应用程序(他们的移动能力很强)。因此,我们希望将plist和应用程序放在一个公共网站上,该网站需要通过oauth服务登录 我们的问题是,如果我们需要对应用程序和plist的url进行身份验证,那么itms services://url将不再有效。发生的情况是,用户单击itms服务链接,我们看到一个未经身份验证的plist请求(被重定向到登录),然后在设备上出现“无法连接到{hostname}” 目前,我唯一能看到这种工作的方法是,如果没有检查ipa和plist文件的身份验证。这意味着(我相信)有人猜测我们的plist文件的URL可能会创建他们自己的itms服务链接,并在未经授权的情况下下载该应用程序,从而导致我们违反我们与苹果的协议,只向我们的员工分发如何在面向公众的网站上使用oauth保护iOS企业分发?,ios,cordova,oauth,enterprise,ios-provisioning,Ios,Cordova,Oauth,Enterprise,Ios Provisioning,我们有一个应用程序的企业发行版,我们只希望在我们的组织内发行 我们构建了ipa文件和指向正确位置的plist,并创建了带有url:itms services://?action=download&url={链接到plist}的html页面 然而,我们的问题是确保分发过程的安全。我们希望拥有公司自有iPad的员工能够在移动过程中下载应用程序(他们的移动能力很强)。因此,我们希望将plist和应用程序放在一个公共网站上,该网站需要通过oauth服务登录 我们的问题是,如果我们需要对应用程序和plis
因此,我的问题是-如何创建不向公众公开ipa和plist文件的itms服务链接?如果相关的话,该网站是使用nodejs构建的,该应用程序是PhoneGap应用程序。我已经找到了解决方案 我们不能使用oauth身份验证,因为iOS安装过程没有提供输入凭据的机会 相反,当用户请求显示itms services://链接的页面时,我们为该用户创建一个唯一的字符串,并使用AES-256对其进行加密,然后将其存储在数据库中 然后,我们的URL变成:
itms服务://{URL to plist}/{encryptedString}
。我们尝试使用查询字符串,但iOS安装工具似乎没有传递该字符串
当安装工具请求Plist时,我们根据数据库验证加密字符串,打开Plist并将ipa文件的url重写为{url to ipa}/{encryptedString}
这似乎很有效。目前我能想到的唯一问题是,URL可以作为合法用户与不应该访问的人公开共享。我认为我们可以通过确保url对时间敏感(例如,只有5分钟可用)来解决这个问题
最后,任何没有正确加密字符串的plist或ipa请求都会被拒绝
我希望这对某人有用 所以这就像。。几乎是一个解决方案。我认为这是itms服务://协议的一个严重问题。它肯定支持身份验证。