Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在面向公众的网站上使用oauth保护iOS企业分发?_Ios_Cordova_Oauth_Enterprise_Ios Provisioning - Fatal编程技术网

如何在面向公众的网站上使用oauth保护iOS企业分发?

如何在面向公众的网站上使用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,并创建了带有url:itms services://?action=download&url={链接到plist}的html页面

然而,我们的问题是确保分发过程的安全。我们希望拥有公司自有iPad的员工能够在移动过程中下载应用程序(他们的移动能力很强)。因此,我们希望将plist和应用程序放在一个公共网站上,该网站需要通过oauth服务登录

我们的问题是,如果我们需要对应用程序和plist的url进行身份验证,那么itms services://url将不再有效。发生的情况是,用户单击itms服务链接,我们看到一个未经身份验证的plist请求(被重定向到登录),然后在设备上出现“无法连接到{hostname}”

目前,我唯一能看到这种工作的方法是,如果没有检查ipa和plist文件的身份验证。这意味着(我相信)有人猜测我们的plist文件的URL可能会创建他们自己的itms服务链接,并在未经授权的情况下下载该应用程序,从而导致我们违反我们与苹果的协议,只向我们的员工分发


因此,我的问题是-如何创建不向公众公开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服务://协议的一个严重问题。它肯定支持身份验证。