我尝试使用类似于的服务帐户从 cmdline 访问 google 云端点
https://code.google.com/p/google-api-python-client/source/browse/samples/service_account/tasks.py
按照示例中的说明,我创建了一个 clientid + pk12 证书,并使用它们通过来自 oauth2client.client 模块的 SignedJwtAsertionCredential 调用创建凭据。
当我调用在本地开发服务器上运行的云端点时按预期工作但是当我调用已部署的 gae 云端点时,我得到
Oauth 框架用户与 oauth 令牌用户不匹配。
似乎在来自 user_id_token._set_bearer_user_vars() 的 oauth.get_client_id(scope) 调用上失败了。
当我在异常上添加回溯时,它看起来来自 _maybe_raise_exception
E 2014-01-02 10:30:53.926 提高 NotAllowedError(error_detail) E 2014-01-02 10:30:53.926 NotAllowedError
有没有办法在不更改应用程序的身份验证类型的情况下解决此错误?由于域限制,似乎不允许请求?
我的目标是在没有用户参与的情况下调用云端点,不确定我是否是使用 SignedJwtAsertionCredential 调用的正确路径,或者是否可能?
附加信息。
端点的身份验证类型设置为“Google App Domain”
user_required 在端点方法上为 True
当我使用https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=ya29时,从 SignedJwtAssertCredential 生成的访问令牌符合预期 。
端点按 api explorer 的预期工作,并且涉及到身份验证流。
使用 endpoints_proto_datastore 库。