2013-05-06 71 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