【发布时间】:2013-12-19 09:27:52
【问题描述】:
这是一个与 Python Google AppEngine 应用和 Google 的 BigQuery 之间的服务器到服务器授权有关的问题,但可能与其他云服务相关。
tldr;是否可以让 App Engine 本地开发服务器向远程 BigQuery 服务进行身份验证?更好的是有本地 BigQuery 吗?
我了解 AppAssertionCredentials 目前无法在本地开发服务器上运行,尽管这本身就非常令人沮丧。
适用于本地开发服务器沙箱之外的标准 python 代码的替代方法,详细 here 不适用于本地开发服务器,因为即使启用了 PyCrypto,沙箱也不允许某些 posix 模块,例如'密码'。
我有 AppAssertionCredentials 在远程服务器上工作,而 SignedJwtAssertionCredentials 方法在本地 Python 中工作,因此服务帐户设置正确。
在 try/except 块内的 oauth2client/crypt.py 中导入失败 - 将它们注释掉后,沙箱白名单异常很容易看到。
我一直在尝试将“pwd”添加到白名单中,然后又出现了另一个问题,所以我急忙从那个兔子洞里跑了出来。
我尝试将 PyCrypto 直接包含在项目中,结果相似。
我也尝试过使用 OpenSSL,结果相似。
我一直在寻找本地 appengine 特定的 PyCrypto 无济于事,我错过了吗?我应该说这是在 Mac OSX 上 - 也许我应该启动一个 linux 机器并试一试?
【问题讨论】:
标签: google-app-engine google-oauth google-bigquery google-api-python-client