2014-02-11 22 views
0

我正在爲安全要求嚴格的客戶端設計iOS應用程序。我需要使用Omniture記錄分析。該應用程序處理極其敏感的數據,爲了安全起見,我無法直接從應用程序調用Omniture sitecatalyst url。相反,我必須在後端網絡/應用服務器上建立一個服務,然後這個服務器會打電話給Omniture(這種方式是通過一個安全的網關,就像從iOS應用程序調用的其他網絡服務一樣,呼叫路由)iOS:通過代理服務登錄到Omniture

我看到了這樣做的兩個選項。

  1. 我成立了我的應用程序的Omniture的框架,使呼叫(除非我配置呼叫轉接到https://myserverurl.com/analyticsservice代替https://sc.omniture.com),然後我設置一個servlet或JSP在https://myserverurl.com/analyticsservice來處理請求。 servlet(使用Omniture SDK編寫)然後將呼叫傳遞給https://sc.omniture.com

  2. 我沒有在我的應用程序上設置任何Omniture框架。相反,我在我的服務器上設置了一個簡單的分析Web服務。 Web服務(使用Onniture SDK編寫)將採用我從iOS應用傳遞的參數並將跟蹤呼叫轉至https://sc.omniture.com

請參閱圖1和圖2說明每個選項。選項2看起來比較乾淨,而選項1可能需要一些演奏 - 使用偷工減料來讓Omniture工作。我有一個嚴格的時間表,我會很感激任何意見和建議,在我深入到概念證明之前選擇哪些選項(利弊,其他考慮因素等)。

謝謝!

Option 1

Option 2

回答

0

在這兩種方法運行的POC之後 - 我發現方法2是正確的做法。方法1實際上不起作用 - 原因是Omniture客戶端API是在應用程序內的應用程序啓動和本地Omniture數據庫上激活的第一件事。在對用戶進行身份驗證後,應用程序(使用自定義安全API編碼)刪除默認的應用程序容器並將其替換爲自己的容器。因此,當Omniture下一次嘗試記錄任何嘗試寫入數據庫指針時(它創建本地數據庫時),它不知道應用程序在重新創建應用程序容器時已替換該數據庫。這會導致應用程序崩潰。

所以答案結果是方法2。

1

Omniture的URL也HTTPS,我猜。我不確定通過完成所有這些操作(發送到您的服務器併發回omniture)可以獲得任何額外的安全性。在其他方面,您將不得不擁有高容量的後端來處理所有這些數據。

同樣,如果有人能夠從https中竊取數據,他甚至可以從您的連接從後端到全部連接。

我建議您在將事件發送到Omniture之前刪除所有個人身份識別和敏感數據。並直接從您的iOS應用程序發送到omniture服務器。這是你的時間緊迫非常友好以及:-)

(或者是我理解的東西完全錯誤的?)

+0

感謝您的迴應 - 這是他們的政策,我相信它是有根據的,可以將所有發送到外部網站的數據從網絡/服務器內發送出去。我的問題仍然未得到答覆 - 兩個選項中的哪一個會更好地工作(服務器url /重定向或web服務)? – CoolDocMan

+0

好的..如果你將全部使用omniture,我會選擇1(減少開發費用 - 你不需要開發一個包裝)。考慮到你的時間限制,這可能會更好。 Option2的價值在於您的客戶端代碼獨立於Omniture –