2012-09-25 48 views
1

我们已经构建了许多Web服务,并将它们托管在我们的内部服务器上,这些服务将被我们的iPhone应用程序使用。 iPhone应用程序的最终用户无需登录应用程序,只需使用该应用程序即可,无需任何凭据。授权Web服务请求

每当Web服务收到请求时;我想授权这些请求来自iPhone应用程序。我怎样才能做到这一点?

谢谢!

回答

3

你想要它有多安全?

死的简单和广泛使用的技术是要求所有的webservice请求都包含一个ApiKey头。然后,服务器必须根据允许的ApiKeys的已知列表验证ApiKey。如果通信是通过SSL完成的,则这是相当安全的(需要反汇编客户端代码以查找密钥),另一方面,如果通信是纯http,ApiKey可以很容易地被嗅探。

+0

我一直想问这个问题:) - 以及如何可以像这样嗅探? –

+0

@Mike,取决于你在哪里以及你有多邪恶:-) 1)如果你使用未加密的WiFi,数据包嗅探器将允许你读取所有未加密的TCP数据流。 2)如果你在同一个子网中的同一个本地网络(有线)上,你也可以使用数据包嗅探器。3)如果你有沿路径访问路由器的路由,流量很容易被嗅探。不同类型的WiFi加密提供不同程度的安全性,但通常可能会被破坏。 – driis

+0

@driis,谢谢!我想我可以尝试使用ApiKey和SSL。 oAuth怎么样?在这些情况下它有用吗?您还可以向我指出解释实施APiKey商店最佳实践的资源。 – Phoenix