2012-09-25 198 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