2010-04-09 70 views
3

我需要一个App Engine应用程序交谈,并与外部数据库共享数据,Google App Engine数据存储和外部数据库的最佳选择?

我能想出的外部数据库中的数据输出到一个XML文件,然后处理这个在我的应用程序引擎的最佳选择应用程序并将其存储在数据存储区内

虽然共享的数据是敏感数据,例如登录详细信息,因此将其输出到xml文件并不是一个好主意,应用程序引擎应用程序是否可以直接查询数据库?或者是否有使用xml文件的安全选项?

OH和使用python/Django和外部数据库IM将在另一个网站下托管的

回答

6

Google Apps的Secure Data Connector(SDC)专为这类任务而设计 - 事实上,当“其他数据库”位于防火墙(企业数据的常见案例)和其他Google Apps(文档,电子表格...)以及App Engine。

由于the docs总结的东西,流量:

  1. 谷歌Apps的转发授权数据从不到 谁是谷歌Apps域到谷歌 隧道协议服务器的用户 请求。

  2. 隧道服务器验证 用户被授权向指定资源发出 请求。 Google隧道服务器通过加密隧道连接到 SDC,其中 在公司的内部 网络中运行。

  3. 隧道协议允许SDC到 连接到谷歌隧道服务器, 身份验证和加密跨因特网流动的数据 。

  4. 如果用户有权向指定资源发出 请求,SDC将使用资源规则验证 。

  5. 可选内联网防火墙可以是 用于提供额外的网络安全性 。

  6. SDC执行网络请求到 指定的资源或服务。

  7. 的服务验证签名 请求,检查的凭据, 如果用户被授权,则返回 的数据。

如果你不担心防火墙,并没有安全无忧任何,你可以只使用urlfetch直接(无隧道简化的东西(如丹尼尔的回答暗示),无验证,无加密,没有过滤,......) - 但您担心“共享的数据是敏感数据,例如登录详细信息”,这表明事实并非如此。

这不是XML与其他格式相关的问题 - 问题在于敏感数据不应该在未受保护的渠道中“清晰地”传播,也不适用于所有和各种各样的应用程序,并且通常需要专门的基础架构处理加密,过滤和授权问题,正如SDC所做的那样,而不是在您自己的应用程序或专用基础架构中间件中编写所有这些代码(并使其完全安全并锁定)。出于这些目的,即使您只需要其功能的一小部分,SDC也会非常有帮助。

+2

还应该注意的是,您需要Google企业应用专业版或教育版才能使用SDC。 – Franck 2010-04-11 21:54:14

3

你可能要考虑对您的数据库托管在外部域曝光了一组Web服务,然后使用App Engine的URL Fetch API通过HTTPS与您的外部域进行通信。

相关问题