这是一个关于Python Google AppEngine应用和Google的BigQuery之间的服务器授权问题,但可能还适用于其他云服务。
tldr; 是否可以让App Engine本地开发服务器与远程的BigQuery服务进行身份验证?最好有一个本地的BigQuery吗?
我知道AppAssertionCredentials目前不能在本地开发服务器上工作,虽然这本身就非常令人沮丧。
标准Python代码的替代方法在本地开发服务器沙箱以外有效,详见此处,但在本地开发服务器上不起作用,因为即使启用了PyCrypto,沙箱也不允许一些posix模块,例如“pwd”。
我已经在远程服务器上成功使用了AppAssertionCredentials,并在本地原生Python中使用SignedJwtAssertionCredentials方法,因此服务帐户已正确设置。
在oauth2client/crypt.py中的try/except块内导入失败-注释掉后,沙箱白名单异常很容易被看到。
我尝试将“pwd”添加到白名单中,然后又出现了另一个问题,所以我赶紧从那个兔子洞里溜了出来。
我尝试将PyCrypto直接包含在项目中,但结果类似。
我还尝试了OpenSSL,但结果也相似。
我寻找过专门针对本地Appengine的PyCrypto,但没有发现,我错过了吗?我应该说这是在Mac OSX上-也许我应该启动一个Linux框并进行尝试?
openssl rsa
是唯一有效的方法。谢谢! - Stephen Kaiser