2013-05-06 82 views
0

所以,我的公司有一个iPhone应用程序。我们将API发布到我们的服务器,我们需要验证客户端应用程序(不是用户,我们想知道这是否是它声称的iPhone应用程序)。我如何获得iphone公钥访问?

我希望能够做的是让应用程序发送我们的服务器在苹果应用程序商店中的应用程序的公钥作为其初始请求的一部分。然后,我希望我们的服务器能够问苹果商店“这个公钥是我认为应用程序的关键吗?”如果是,那么我们会为所有其他请求发出一个有效的标记,如果没有的话 - 反弹请求。

我意识到这种方法可能被欺骗(因为有人可以从Jailbroken手机中找到公钥并假装成应用程序),但是对于应用程序的初始版本,我们并不关心,因为我们想要人们使用该应用程序。后来,我们想要对来自合作伙伴(有权使用上述方法发送请求的合作伙伴)的API请求进行归因,但现在不需要签署或真正授权请求(使用2或3个合格的oAuth)。

因此,简单地说 - o iPhone应用程序是否有办法向iOS请求用于签署应用程序的公钥? o有没有办法让服务器或其他程序询问苹果商店“这个公钥是我认为应用程序的关键吗?”

我基本上试图使用苹果商店作为身份验证权威。我知道:他们已经在他们必须由Apple签名和批准,但我需要一个服务器请求时间验证。

提前致谢。

回答

1

为什么不只是创建自己的密钥并将其存储在您的应用程序内?然后将该密钥连同对API的所有请求一起传递。

您可以将此方法与传递应用程序的版本一起使用。如果不再支持应用程序密钥,或者允许您阻止应用程序的过时版本,此方法将允许您限制对API的访问。

+0

问题是,充当我自己的证书颁发机构就像接受每一个应用程序一样。我真的需要第三方来验证应用程序的声明。为我们编写应用程序的潜在合作伙伴不一定足够熟练,可以编写我们可以进行身份​​验证的服务器。例如,应用程序从自己的服务器获取令牌并将其传递给我们的服务器,在我们发布自己的服务器之前通过调用服务器来验证它,这是不可能的。 – twajjo 2013-05-06 20:24:26