2014-02-11 26 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 –